好像這場完多校就結束了,然而好頹廢,題一場都沒補
比賽記錄
我做 A,第一問很好解決,枚舉 \(k\),再定義只在字典序最小的方案處統計答案,枚舉方案中 \(k\) 出現的位置,再乘個組合系數就行。
這時候 bzy 說 D tle了,有高論,准備等等看
第二問,一開始進行了錯誤的轉化,看到榜上沒一血,找zzs幫忙dp一個計數問題,但這個其實沒用,zzs忙着切 C,再看已經有一血了,就自己慢慢做了。然后發現對於一類合法方案,根據對稱性,剩下位置填數對 \(1\cdots k\) 的貢獻應該是一樣的,所以只要在第一問中加個 \(\frac{tmp_i}i \times n\) 就好,發現 \(p\) 不一定是質數,改利用乘的系數除掉 \(i\) 即可,中間因為 \(n=1\) 和少乘系數導致 WA 了兩發
然后 zzs C tle,丟給 bzy,去寫 H
我看到 C,感覺可以 bitset 就去寫,然后 bzy 說他在寫,我就去看 D 了。中間突然感興趣回來看 zzs 之前 TLE 的代碼,哦是 bitset 啊,那沒我事了,然后看到群里 bzy:“發現是n^4/w的,T 了”,zzs:“你都不看看我之前為啥 T 了嗎”。 然后我自己血了一個試圖加個 O3 卡過去,本地 0.8s 他跑不出來,好奇哪個人之前說評測機挺快的,然后看那個枚舉 for j 1..i
和dp拆分數的思想一樣,這個只用前一半和 \(i\),就可以常數 除以 2,加上O3,就過了
期間 zzs 過了 H,然后 我搞 D,zzs 搞 F,bzy 搞 G
bzy:“G找到一篇tarjan老爺子的論文”,然后就失蹤了
我寫了半天 D 假的枚舉 \(\frac{n}{i}\) 的段,希望在 \(2^{16}\) 中不多,然后跑出來按時間估計比暴力還慢,發現自己是個 sb,冷靜分析一下就知道段很多
期間 zzs 發了點 F 的轉化我還沒細想,就提出和 zzs 換着看下題
去看 F,式子着實嚇人,感覺一下子承受不了,那邊 zzs 還開始寫 D 了,就想偷偷下班了。水了下群,看了看高中那邊比賽情況,zzs就說他假了。。。然后我回來繼續搞 D
期間想了記憶化,但是看 zzs 說的復雜度太優秀了,就沒管,現在回來寫,差不多就是直接記錄 \(F(k,n)\),轉移就是 \(F(k,n) = F(k-1,n) - F(k-1,\frac{n}{p_k})\),在加一個把 \(n\) 降成 \(n\bmod \prod_{i=1}^k p_i\),再分別用數組記錄 \(n\le M\) 的答案 和 map 記錄 \(> M\) 的,然后跑十幾s,然后想到可能記錄 大於 \(M\) 的答案沒用,去掉 map 發現速度起飛,提交,改掉 MLE 就過了
實在不想想 F,去讀了下 J 沒發現滿足單調性的地方,咕咕了
之后 bzy G RE了,在群里發自己調不動了,我以為只是 RE,想隨手拿 gdb 看看咋回事然后發現他樣例都沒過,,,就提前下班了