Codeforces Round #460 (Div. 2) 919 筆記
阿新 • • 發佈:2018-04-11
數據 arr sub 輸出 nts 完美 無限 tutorial 目標
輸入n,m <3e5 表示n點m條有向邊
第二行輸入由小寫字母形成的字符串,表示每個點上的字符
接著輸入邊
路徑的值為路徑上出現最多字母的個數,求路徑的最大值,無窮輸出-1
E. Congruence Equation
輸入a,b,p,x (2?≤?p?≤?10e6?+?3, 1?≤?a,?b?<?p, 1?≤?x?≤?10e12).
求多少個n(1<=n<=x)滿足n(a^n)=b(mod p)(p是素數)
F. A Game With Numbers
A和B玩遊戲,每人8張牌,每張牌的值為0到4,當輪到某人時,要從兩人手中各拿一張牌a和b,要求ab!=0,然後用c=(a+b)%5替換掉自己拿的牌,如果有人手上全是0,就贏了。給出T組數據,每組給出兩人手上各牌的值,給出誰先手,問在最優策略下,誰能贏,或者打平。
(1<=T<=1e5)
A. Supermarket
輸入n,m, (1?≤?n?≤?5?000, 1?≤?m?≤?100)表示n組價格數據和目標重量m
接下來n組價格數據,表示為a元b千克,每組無限取
求最小花費
B. Perfect Number
輸入k,1?≤?k?≤?10?000,求第k個完美數
完美數定義為數位和=10
(tutorial中說難度可以升級為k<1e18)->用數位dp可解
C. Seat Arrangements
輸入n,m,k (1?≤?n,?m,?k?≤?2?000)表示nm的課室,有k人
要求k人橫著坐或豎著坐,求方案數
輸入.表示空位,表示已坐
(如果是任意連著坐,難度好像很大?)
D. Substring
輸入n,m <3e5 表示n點m條有向邊
第二行輸入由小寫字母形成的字符串,表示每個點上的字符
接著輸入邊
路徑的值為路徑上出現最多字母的個數,求路徑的最大值,無窮輸出-1
E. Congruence Equation
輸入a,b,p,x (2?≤?p?≤?10e6?+?3, 1?≤?a,?b?<?p, 1?≤?x?≤?10e12).
求多少個n(1<=n<=x)滿足n(a^n)=b(mod p)(p是素數)
F. A Game With Numbers
A和B玩遊戲,每人8張牌,每張牌的值為0到4,當輪到某人時,要從兩人手中各拿一張牌a和b,要求ab!=0,然後用c=(a+b)%5替換掉自己拿的牌,如果有人手上全是0,就贏了。給出T組數據,每組給出兩人手上各牌的值,給出誰先手,問在最優策略下,誰能贏,或者打平。
(1<=T<=1e5)
筆記(非題解):
A B 水題
C 橫著、豎著暴力枚舉即可
D 原先做法dp[i]表示當前i到之後路徑上最大值,另用輔助數組d[i][j]表示i最優時顏色j的數目
實際上只要d[i][j]即可,表示到i時j的最大值,轉移維護即可
是DAG用上法,有環則-1
E
- n%p的周期為p,
- a^n%p的周期為p-1,
- 整個左式的周期為p(p-1)
由1知n=ip+j
a^(p-1)%p=1
令n=i(p-1)+j
由歐拉降冪公式知a^n%p->a^(n%(p-1))%p->a^j%p
(i(p-1)+j)a^j==b
->j-i==b/(a^j)
->i==j-b/(a^j)
枚舉j求i,求n,然後不斷+p
F 留坑
Codeforces Round #460 (Div. 2) 919 筆記