2020年2月11日

组合数学——cf893E

摘要: /* 不定方程 x1+...+xy=c 的正整数解有C(y+c-1,y-1)个 质因子分解后每种因子都独立算贡献,再相乘 最后因为可以随意加偶数个-1,所以再乘2^y-1 */ #include<bits/stdc++.h> using namespace std; #define ll long 阅读全文

posted @ 2020-02-11 21:51 zsben 阅读(287) 评论(0) 推荐(0) 编辑

前缀和+贪心+线段树——cf893D

摘要: /* 贪心策略: 如果检查的那天不用加,那就不加 反之加上尽可能多的钱 如何确定这个值? 处理出前缀和,第i天可以加的钱=d-[i+1,n]天里前缀和的最大值 加上这个值后,要再一次更新前缀和数组,用线段树维护前缀和数组即可 */ #include<bits/stdc++.h> using name 阅读全文

posted @ 2020-02-11 20:43 zsben 阅读(145) 评论(0) 推荐(0) 编辑

期望线性性+线段树双tag标记——cf895E

摘要: /* 从区间[l1,r1]取出一个数,这个数的期望值为 e1=(sum[r1]-sum[l1-1])/(r1-l1+1) 同理从区间[l2,r2]里取出一个数,这个数期望为 e2=(sum[r2]-sum[l2-1])/(r2-l2+1) 根据期望线性性,[l1,r1]里每个数被选中的概率是1/le 阅读全文

posted @ 2020-02-11 17:30 zsben 阅读(143) 评论(0) 推荐(0) 编辑

状压dp+数论——cf895C好题!

摘要: 把模数写成了1e9+9,气死我了 /* 1-70里只有19个质数,首先考虑状压dp 第i个质数出现奇数次,那么第i位为1,反之为0 每个数在质因子分解后都可以得到一个对应的mask dp[i][s]表示当前选的数是i,且其状态为s时的方案数 那么选择偶数个i对s的状态无影响,有C(cnti,0)+C 阅读全文

posted @ 2020-02-11 16:08 zsben 阅读(179) 评论(0) 推荐(0) 编辑

组合数计数+卡常优化+dp——cf895D

摘要: 大致思路是数位dp里当前位limit的那一套思想,从前往后递推计算,卡常数比较恶心 /* i:1->n 枚举第i位[a,z] 第i位<s[i]:那么后面就是个全排列,维护一个当前已经用掉的字符桶use,算出贡献直接加到答案里 算贡献:(n-i)!/(cnta-usea)!...(cntz-usez) 阅读全文

posted @ 2020-02-11 15:58 zsben 阅读(237) 评论(0) 推荐(0) 编辑

导航