题意 询问有多少个数位为 \(n\) 的形如 \(11223333444589\) 的数位值不下降的数字在\(\mod p\) 的意义下同余 \(0\). $n\leq 10^{18} ,p\leq 500 $ . 分析 考虑普通的状态,矩乘和考虑每种数字选择什么都没法做,要另辟蹊径. 发现这样的数字都可以拆分成1~9个形如 \(111111\) 的形式,记为 \(\rm gg\). 考虑算出所有此类数字在\(\mod p\) 意义下余数为 \(x\) 的有多少个. 状态呼之欲出: \(f_{i…
P2481 SDOI2010代码拍卖会 $ solution: $ 这道题调了好久好久,久到都要放弃了.洛谷的第五个点是真的强,简简单单一个1,调了快4个小时! 这道题第一眼怎么都是数位DP,奈何数据范围太大,只能找性质.而这道题最重要的一个性质也很套路(敲难想),因为我们所有的方案都是 $ 111112223333 $ 这样的数,我们要求的是它的大小模 $ p $ ,所以我们考虑将它用加法拆解.于是我们惊奇的发现它可以转化成(以上面那个数为例) $ 111111111111+1111111+1…
传送门 神仙DP 注意到\(N \leq 10^{18}\),不能够直接数位DP,于是考虑形成的\(N\)位数的性质. 因为低位一定不会比高位小,所以所有满足条件的\(N\)位数一定是不超过\(9\)个\(f(x)(x \in [1,N])\)的和,其中\(f(x) = \sum\limits_{i=0}^{x-1} 10^i\),且其中一定有一个\(f(N)\). 考虑由\(f(x)\ \bmod\ P\)形成的数列,因为\(f(x) = 10f(x-1) + 1\),所以这个数列一定会存在一…
题面传送门 题意: 给出 \(n,p\),求有多少 \(n\) 位数 \(X=a_1a_2a_3\dots a_n\) 满足: 该 \(n\) 位数不含前导零 \(a_i \leq a_{i+1}\) \(X\) 为 \(p\) 的倍数. 答案对 \(998244353\) 取模. \(1 \leq n \leq 10^{18}\),\(1 \leq p \leq 500\). CSP 之前做的了,隔了好久才把题解补了... 本题的突破口在于怎样处理 \(a_i \leq a_{i+1}\) 这…
题目描述 随着iPig在P++语言上的造诣日益提升,他形成了自己一套完整的代码库.猪王国想参加POI的童鞋们都争先恐后问iPig索要代码库.iPig不想把代码库给所有想要的小猪,只想给其中的一部分既关系好又肯出钱的小猪,于是他决定举行了一个超大型拍卖会. 在拍卖会上,所有的N头小猪将会按照和iPig的好感度从低到高,从左到右地在iPig面前站成一排.每个小猪身上都有9猪币(与人民币汇率不 明),从最左边开始,每个小猪依次举起一块牌子,上面写上想付出的买代码库的猪币数量(1到9之间的一个整数).大…
Description 随着iPig在P++语言上的造诣日益提升,他形成了自己一套完整的代 码库.猪王国想参加POI的童鞋们都争先恐后问iPig索要代码库.iPi g不想把代码库给所有想要的小猪,只想给其中的一部分既关系好又 肯出钱的小猪,于是他决定举行了一个超大型拍卖会. 在拍卖会上 ,所有的N头小猪将会按照和iPig的好感度从低到高,从左到右地在i Pig面前站成一排.每个小猪身上都有9猪币(与人民币汇率不明), 从最左边开始,每个小猪依次举起一块牌子,上面写上想付出的买代 码库的猪币数量(…
洛谷 这大概是我真正意义上的第一道黑题吧! 自己想出了一个大概,状态转移方程打错了一点点,最后还是得看题解. 一句话题意:求出有多少个\(n\)位的数,满足各个位置上的数字从左到右不下降,且被\(p\)整除. 刚开始没有看到数位不下降这个条件,于是自信满满的喊了一句:"这是假黑题吧!" 后来发现了,想了好久好久才找到一条规律... 对于任意一个\(n\)位的数,因为要求满足数位不下降,所以一定可以拆分成\(0,1,11,111,1111,11111--\)的和. 又因为数字最大是\(9…
原题戳这里 绝对是一道好题 需要注意到两个东西 1.符合条件的数可以拆成一堆\(11...11\)相加的形式,比如\(1145=1111+11+11+11+1\) 2.\(1,11,111,1111,...\)模\(p\)会出现循环,循环节长度不超过\(p\) 还有就是\(11...11\)最多为\(9\)个,然后就可以\(dp\)了 首先需要统计长度为\(1-n\)的全\(1\)串中有多少个模\(p\)为\(r\),记为\(cnt[r]\),这个可以\(O(p)\)的预处理出来 接着设\(f[…
luogu 题目中的那个大数一定是若干个1+若干个2+若干个3...+若干个9组成的,显然可以转化成9个\(\underbrace {111...1}_{a_i个1}(0\le a_1\le a_2\le a_3...\le a_9,a_9=n)\)之和 然后模数只有500,所以可以考虑处理出所有\(\mod p =i\)的不同长度的\(111...1\)个数记为\(cnt_i\),考虑dp求答案,设\(f_{i,j,k}\)表示考虑了前\(i\)个剩余类,用了\(j\)个\(111...1\)…
1974: [Sdoi2010]auction 代码拍卖会 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 305  Solved: 122[Submit][Status][Discuss] Description 随着iPig在P++语言上的造诣日益提升,他形成了自己一套完整的代码库.猪王国想参加POI的童鞋们都争先恐后问iPig索要代码库.iPig不想把代码库给所有想要的小猪,只想给其中的一部分既关系好又肯出钱的小猪,于是他决定举行了一个超大型拍…