题解: 一波优秀的打表技巧 分块打表,分成1000组,打表打出来 另外10^6暴力算 ...
分类:
其他好文 时间:
2018-05-01 23:20:44
阅读次数:
107
验证一个数是不是优美的:设数位之和为sum,若sum mod 2 != 0,则不优美。否则考虑枚举这个数的每一位,将之前所有位任意相加产生的所有 数字和 和 当前位 的和塞到集合里,最终判断集合中是否存在sum/2即可,若暴力,复杂度是1+2+4+...,无法承受,所以可以压位。然后对10^9分块,...
分类:
其他好文 时间:
2015-07-12 18:47:11
阅读次数:
260
首先我们看对于一个数怎么判断。方法是,暴力判断。。。←_←(不要骗我。。。)首先看各位数字之和,如果是奇数就不是"优美"的。否则用dp判断,我们可以状压一下,直接记一个long long大小的数叫f,则f |= (f 11 12 using namespace std;13 typedef lon....
分类:
其他好文 时间:
2014-12-07 17:43:20
阅读次数:
405
题目大意:定义一个数是完美的,当且仅当这个数的每一位可以分成两个集合,使这两个集合之和相等,求[a,b]区间内有多少个数是完美的
数位DP?……不大好搞
分块打表大法好!
首先考虑验证一个数是不是完美的怎么搞
求出数字和 如果是奇数肯定不是 如果是偶数就跑一下背包
背包很慢?没关系,由于最大的和只能有9*8/2=36 所以我们直接状压 令f=1 然后对于每一位x有
f|=f
最后...
分类:
其他好文 时间:
2014-11-27 20:31:42
阅读次数:
165