2014年3月11日

HYSBZ 1026: windy数(数位DP)

摘要: 类型:数位DP题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。问[A,B]之间windy数的个数。(1 #include #include using namespace std;int num[100];long long dp[20][10][2];long long dfs(int i, int d, bool preAllZero, bool isQuery) { if (!isQuery && ~dp[i][d][preAllZero]) return dp[i][d][preAllZero]; if (i == 1) { return... 阅读全文

posted @ 2014-03-11 23:53 ShineCheng 阅读(408) 评论(0) 推荐(0) 编辑

HDU 3652:B-number(数位DP)

摘要: 亮点:收获:降一些时间复杂度可能带来编程复杂度。如果编程复杂度太高,而且时间允许的话,试着用一些冗余的状态来降低编程复杂度。查询和正常DP的差别就在于:查询的时候有限制(最大不能超过那个数),而正常的时候没有类型:数位DP题意:找1~n内有多少能被13整除且含“13”这个子串的数。方法:(我的,想的比较乱的方法)dp[i][d][mod] 表示d开头的i位数中含有“13”这个子串且%13==mod的数的个数则:那么下一个余数nextMod = ((mod-j*10i-1)%13+13)%13dp[i][d][mod] = 1) d != 1: ∑dp[i-1][j=(0~9)][nextMo. 阅读全文

posted @ 2014-03-11 22:01 ShineCheng 阅读(247) 评论(0) 推荐(0) 编辑

导航