夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

npca div.1 div.2

※カテゴリーの増やしすぎに注意

というわけでつくってませんが、NPCA参加しました。

Div.1は一完31位、Div.2は全完7位でした。
Div.2ははじめたのが1:10ぐらいたってからだったので実質最速・最小ペナ(0個)だったのにこの結果になってしまいICPC形式に恐怖を感じている。

Div.2

やるだけ問題集。省略

Div.1

ほぼずっと諦めてました。
けど解法聞くと結構とけそうな問題がいっぱいで力不足を感じた。

14

ある数iがn~mまで何個の数の約数として含まれているかをがんばって数えるとできる問題。
あきらかに数学問だったので後輩が解けた時「さすが数学勢」って言ったら、解法つぶやく誤爆させてしまって申し訳ない。

#include <cstdio>
typedef long long ll;
ll n, m;
int main() {
    scanf("%lld%lld",&n,&m);
    ll ret=0;
    for (ll i=1; i*i<=m; i++) {
        ret+=m/i*2-i*2+1;
        if (i*i<=n-1) ret-=(n-1)/i*2-i*2+1;
    }
    printf("%lld\n",ret);
}

10

貪欲かなと思いつつ、いやむりだろ、とか思ってスルーしてたら結局貪欲だったらしい。

12

「最大値の最小値」…たしかににぶたんしろと言ってますね、後で実装しよう(懺悔)

13

解法途中までわかってたけど、なぜか「生まれた年から死んだ年までに生まれた人」の人数なんか計算してて馬鹿だった。
すぐ書き直します。

16

バブルソートの交換回数・・・まぁそうだろうなー
始点をO(1)でずらす・・・考えてないからよくわからん

まとめ

Div.2はリハビリにもならず
Div.1は怠けてしまったので反省。

でもこっからまたJOI予選まで競技から離れて暮らしそう。