Submit Search
Upload
Wrapping potato chips is fun
•
0 likes
•
662 views
O
okuraofvegetable
Follow
NPC April Fool's Contest Wrapping potato chips is fun
Read less
Read more
Report
Share
Report
Share
1 of 28
Download now
Download to read offline
Recommended
公開鍵暗号4: 有限体
公開鍵暗号4: 有限体
Joe Suzuki
RUPC2017:L解説
RUPC2017:L解説
Takumi Yamashita
L
公開鍵暗号(2): 有限体
公開鍵暗号(2): 有限体
Joe Suzuki
実験数学3 (大阪大学理学部数学科 3年・4年) 鈴木 譲 2014年4月24日
Ml ch7
Ml ch7
Ryo Higashigawa
大阪 PRML 勉強会使用スライド
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
Yuya Masumura
2018年秋冬学期 最適化ゼミ 輪読用資料 錐線計画, 半正定値計画, Goemans-WilliamsonによるSDP緩和を用いた0.8785-近似アルゴリズムの解説
Seminar on Quantum Computation & Quantum Information part19
Seminar on Quantum Computation & Quantum Information part19
Yuichi Adachi
量子情報勉強会 第十九回 発表資料
Are Sports Relatable To The Business World?
Are Sports Relatable To The Business World?
Jrock0880
Project
Project
Nuria Moreno
my great-grandparents
Recommended
公開鍵暗号4: 有限体
公開鍵暗号4: 有限体
Joe Suzuki
RUPC2017:L解説
RUPC2017:L解説
Takumi Yamashita
L
公開鍵暗号(2): 有限体
公開鍵暗号(2): 有限体
Joe Suzuki
実験数学3 (大阪大学理学部数学科 3年・4年) 鈴木 譲 2014年4月24日
Ml ch7
Ml ch7
Ryo Higashigawa
大阪 PRML 勉強会使用スライド
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
Yuya Masumura
2018年秋冬学期 最適化ゼミ 輪読用資料 錐線計画, 半正定値計画, Goemans-WilliamsonによるSDP緩和を用いた0.8785-近似アルゴリズムの解説
Seminar on Quantum Computation & Quantum Information part19
Seminar on Quantum Computation & Quantum Information part19
Yuichi Adachi
量子情報勉強会 第十九回 発表資料
Are Sports Relatable To The Business World?
Are Sports Relatable To The Business World?
Jrock0880
Project
Project
Nuria Moreno
my great-grandparents
Monadic second-order logic
Monadic second-order logic
okuraofvegetable
演習3 第2回 2020/4/21
パタヘネゼミ 第6章
パタヘネゼミ 第6章
okuraofvegetable
3S ゼミ コンピューターの構成と設計 第5版
パタヘネゼミ 第2回
パタヘネゼミ 第2回
okuraofvegetable
2019/5/8
直交領域探索
直交領域探索
okuraofvegetable
JOI夏季セミナー2016 コンピュータ・ジオメトリ
グレブナー基底
グレブナー基底
okuraofvegetable
JOI summer seminor
NPCA summer 2014
NPCA summer 2014
okuraofvegetable
NPCA summer 2014
JOI summer seminar 2014
JOI summer seminar 2014
okuraofvegetable
JOIss 2014 集合知プログラミング 発表スライド
Lecture2
Lecture2
okuraofvegetable
中1用 NPCA Lecture 2
LT
LT
okuraofvegetable
クソスライド
More Related Content
More from okuraofvegetable
Monadic second-order logic
Monadic second-order logic
okuraofvegetable
演習3 第2回 2020/4/21
パタヘネゼミ 第6章
パタヘネゼミ 第6章
okuraofvegetable
3S ゼミ コンピューターの構成と設計 第5版
パタヘネゼミ 第2回
パタヘネゼミ 第2回
okuraofvegetable
2019/5/8
直交領域探索
直交領域探索
okuraofvegetable
JOI夏季セミナー2016 コンピュータ・ジオメトリ
グレブナー基底
グレブナー基底
okuraofvegetable
JOI summer seminor
NPCA summer 2014
NPCA summer 2014
okuraofvegetable
NPCA summer 2014
JOI summer seminar 2014
JOI summer seminar 2014
okuraofvegetable
JOIss 2014 集合知プログラミング 発表スライド
Lecture2
Lecture2
okuraofvegetable
中1用 NPCA Lecture 2
LT
LT
okuraofvegetable
クソスライド
More from okuraofvegetable
(9)
Monadic second-order logic
Monadic second-order logic
パタヘネゼミ 第6章
パタヘネゼミ 第6章
パタヘネゼミ 第2回
パタヘネゼミ 第2回
直交領域探索
直交領域探索
グレブナー基底
グレブナー基底
NPCA summer 2014
NPCA summer 2014
JOI summer seminar 2014
JOI summer seminar 2014
Lecture2
Lecture2
LT
LT
Wrapping potato chips is fun
1.
楽しいポテトチップスの袋詰め (Wrapping potato chips
is fun) 解説 @okuraofvegetabl
2.
問題概要 2つの自然数 N,K
が与えられる。 1≦N,K≦3*10^6 1≦A1<A2…Ak-1<Ak≦N A(奇数)=奇数、A(偶数)=偶数 を満たす数列Aの数(mod 10^9+7)を求めたい。 ぽてち先生は韓国に行っている。
3.
考察(1) 自明な場合 - KがNより大きいとき、条件を満たす数列が 存在しないのは明らか -
逆に、NがK以上のとき、条件を満たす数列が 少なくとも一つ存在する (A1=1,A2=2…,AK=K)
4.
考察(2) N,Kがそれぞれn,kのときのmodをとる前の解を f(n,k)と表すことにする。 nとkの偶奇が異なるとき、 -
Akの偶奇はkと同じでn以下なのでnは使われない - f(n,k)=f(n-1,k) - したがってn,kの偶奇が一致する場合のみ考えればよい
5.
考察(2) N=Kのとき - 解は
(A1=1,A2=2…,AK=K) の1通りのみ。 - ゆえにf(n,k)=1 - 先程の考察を考慮すると、N=K+1のときも - f(n,k)=1
6.
考察(3) 今後は、n,kの偶奇は一致しているとします。 f(n,k)をA1が1の時とそうでない時に分けて考えてみると …
7.
A1が1のとき 2以上n以下の整数からA2,A3…Akを条件を満たすように 選ぶ方法の数 - この問題は1以上n-1以下の整数からA1A2…Ak-1を 条件を満たすように選ぶ問題に帰着できる。 -
したがってf(n-1,k-1)に等しい
8.
A1が1でないとき 3以上n以下の整数からA1,A2…Akを条件を満たすように 選ぶ方法の数 - A1は奇数なので少なくとも3以上だから -
この問題は1以上n-2以下の整数からA1A2…Akを 条件を満たすように選ぶ問題に帰着できる。 -したがってf(n-2,k)に等しい
9.
考察(4) 以上より、 f(n,k)=f(n-1,k-1)+f(n-2,k) (n≧3)
10.
ん?、これは漸化式…
11.
DPだ!!
12.
え、でもちょっと待てよ、
13.
1≦N,K≦3*10^6 (絶望)
14.
とりあえず埋めてみる K\N 1 2
3 4 5 6 7 1 1 1 2 2 3 3 4 2 × 1 1 3 3 6 6 3 × × 1 1 4 4 10 4 × × × 1 1 5 5
15.
とりあえず埋めてみる K\N 1 2
3 4 5 6 7 1 1 1 2 2 3 3 4 2 × 1 1 3 3 6 6 3 × × 1 1 4 4 10 4 × × × 1 1 5 5
16.
とりあえず埋めてみる K\N 1 2
3 4 5 6 7 1 1 1 2 2 3 3 4 2 × 1 1 3 3 6 6 3 × × 1 1 4 4 10 4 × × × 1 1 5 5 勘のいい方ならもうお気づきかもし れませんが…
17.
パスカルの三角形っぽい
18.
パスカルの三角形
19.
パスカルの三角形
20.
考察(5) 出てくる数字がパスカルの三角形にもある -> nCrの形で表せるのでは? -
実際、あの表を手で書いてみて パスカルの三角形との対応を考えると f(n,k) = (n+k)/2Ck だとわかる。
21.
証明(1) 実は、今までの漸化式などは全く考える必要がなかった。 まず、A0=0、Ak+1=n+1とする。
ここで、階差数列 Bi = Ai+1-Ai (0≦i≦k) を考える。 任意のBiは奇数で、定義より、 B0+B1+…+Bk = Ak+1 - A0 = n+1 である。 Ci=(Bi – 1)/2 (0≦i≦k)とおくと、 C0+C1+…+Ck = {(n+1)-(k+1)}/2 = (n-k)/2
22.
証明(2) 各Ciには非負整数を好きな順で入れられるので、 f(n,k)は、総和が(n-k)/2となる要素数がk+1個の 非負整数列(重複可)の数と一致する。 この場合の数は(n-k)/2個の○と (k+1)-1=k個の|を並べる場合の数に対応する。 ゆえに
f(n,k) = {(n-k)/2+k} Ck = (n+k)/2 Ck
23.
nCr =
n!/(n-r)!/r! これであとは普通に計算するだけですが、 注意すべきことが一つだけあります。 (ある程度問題を解いている方にはあたりまえだろ、 といわれてしまいそうですが…)
24.
MODがらみの計算 ある値のmod hoge
を出力せよという問題は多々ありま す。 hogeが素数の時(本問)、足し算、引き算、掛け算は 普通に計算して逐一modをとれば問題ありません。 では割り算をしたいときはどうすればいいのでしょうか…
25.
MODで割り算 MODのからむ計算で、xで割り算をしたいときは、 1/xと等価な数(逆元,x^-1)を掛けてやることで、 正しく値を求めることができます。 本問ではmod
素数なので、 フェルマーの小定理よりx^(p-1)≡1(mod p) で、xの逆元はx^(p-2)(mod p)となります。
26.
逆元 しかし本問では、n回も割り算をしないといけないので、 累乗に繰り返し2乗法を用いても間に合わないかも 知れません。 実は、xの逆元は1…x-1の逆元から簡単に求めることがで きて、1からxまでの逆元はO(x)で列挙することができま す。
xの逆元をinv[x]で表すと、 inv[x]=MOD-(MOD/x)*inv[MOD%x]%MOD
27.
計算量 1から(N+K)/2までの逆元の列挙でO(N+K) {(N+K)/2}!と{(N-K)/2}!、K!の逆元を求めるのにO(N+K)
あわせてO(N+K)
28.
Submit数 18
AC数 9 FA IH19980412(HIR180) (1:23)
Download now