Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Good Sequences(Div1 B, Div2 D)DEGwer
問題概要• good sequenceとは、狭義単調増加な自然数列で  どの隣り合う2項も互いに素でないものとします• 10^5以下の自然数からなる集合が与えられます• すべての要素がこの集合に含まれるようなgood  sequenceのうち最...
想定TLE解法• DP• dp[i]を自然数iを最後に使ったときのgood  sequenceの最大長としてDP• dp[k]を求めるのにdp[1]からdp[k-1]までのうち  GCD(k,i)!=1であるようなdp[i]の最大値を求める  ...
想定TLE解法• dp[k]を求めるのに最大で10^5個の組のGCDを  求めなければいけない• これを10^5回繰り返す• n=10^5としてO(n^2 log n)• TLE
想定解法• やはりDP• ただし、先ほどとはちょっと違うDP
想定解法• newdp[k]をkを約数にもつような自然数iに対す  るdp[i]の最大値と定義• dp[k]を計算するときは、kがiの倍数であるよう  なiに対してnewdp[i]の最大値をとって1をたす• その後、そのnewdp[i]たちをd...
想定解法• ぱっと見O(n^2)• しかし実は、1からnまでの約数の個数の総和は  ならしでO(n log n) ▫ 各約数ごとに、1からnまでにそれぞれn/2,n/3…回   ずつ現れる ▫ これは調和級数• よって、DPは全体でO(n lo...
コーナーケース• 与えられた集合が{1}の場合、答えは1 ▫ 約数でDPするとどこにも属さない• pretestに入ってる
Statastics• First acceptance: Petr
Upcoming SlideShare
Loading in …5
×

Good Sequences

520 views

Published on

  • Be the first to comment

  • Be the first to like this

Good Sequences

  1. 1. Good Sequences(Div1 B, Div2 D)DEGwer
  2. 2. 問題概要• good sequenceとは、狭義単調増加な自然数列で どの隣り合う2項も互いに素でないものとします• 10^5以下の自然数からなる集合が与えられます• すべての要素がこの集合に含まれるようなgood sequenceのうち最長のものの長さを求めてくだ さい
  3. 3. 想定TLE解法• DP• dp[i]を自然数iを最後に使ったときのgood sequenceの最大長としてDP• dp[k]を求めるのにdp[1]からdp[k-1]までのうち GCD(k,i)!=1であるようなdp[i]の最大値を求める 必要がある
  4. 4. 想定TLE解法• dp[k]を求めるのに最大で10^5個の組のGCDを 求めなければいけない• これを10^5回繰り返す• n=10^5としてO(n^2 log n)• TLE
  5. 5. 想定解法• やはりDP• ただし、先ほどとはちょっと違うDP
  6. 6. 想定解法• newdp[k]をkを約数にもつような自然数iに対す るdp[i]の最大値と定義• dp[k]を計算するときは、kがiの倍数であるよう なiに対してnewdp[i]の最大値をとって1をたす• その後、そのnewdp[i]たちをdp[k]の値で埋める
  7. 7. 想定解法• ぱっと見O(n^2)• しかし実は、1からnまでの約数の個数の総和は ならしでO(n log n) ▫ 各約数ごとに、1からnまでにそれぞれn/2,n/3…回 ずつ現れる ▫ これは調和級数• よって、DPは全体でO(n log n)で処理できる!• 約数を求めるところも同様にO(n log n)で前処理 できる
  8. 8. コーナーケース• 与えられた集合が{1}の場合、答えは1 ▫ 約数でDPするとどこにも属さない• pretestに入ってる
  9. 9. Statastics• First acceptance: Petr

×