摘要: dp[dep][ex][sta]表示长度为dep的,前面出现过的数的集合为ex,不满足要求的数字的集合为sta的满足要求的数的个数 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll dp[20] 阅读全文
posted @ 2016-05-12 14:50 Ngshily 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 对于4139,支点为3,(4-2)*4+(3-2)*1+(2-2)*3+(1-2)*9=0 dp[dep][sum][zzz]表示长度为dep,之前的权值为sum,支点为zzz的平衡数的个数 枚举支点求值 注意0的情况 1 #include<bits/stdc++.h> 2 using namesp 阅读全文
posted @ 2016-05-12 14:19 Ngshily 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目要求统计小于等于n的既含有子串13,又是13的倍数的数的个数 ans=n-小于等于n的不含子串13或不是13倍数的数的个数 dp[dep][one][thirteen][yu]表示长度为dep,上一个数是否为1,之前的数是否包含13,之前的数模13的余数为yu的数的个数 之前状态没考率全面,狗带 阅读全文
posted @ 2016-05-12 10:56 Ngshily 阅读(110) 评论(0) 推荐(0) 编辑
摘要: dp[dep][four]表示长度为dep的上一个是否为4的不含子串49的数的个数 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll dp[20][2]; 5 int dig[20]; 6 ll 阅读全文
posted @ 2016-05-11 19:45 Ngshily 阅读(124) 评论(0) 推荐(0) 编辑
摘要: dp[dep][six]表示长度为dep的,上一位是否为6的不含62,不含4的数的个数 1 #include<bits/stdc++.h> 2 using namespace std; 3 int dp[10][2],dig[10]; 4 int dfs(int dep,int six,int fl 阅读全文
posted @ 2016-05-11 19:13 Ngshily 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 先考虑LIS的nlogn解法 我们用dp[len]记录LIS长度为len时的最后一个数的大小,然后不断更新这些值,让每一个值都尽可能小 比如我现在的LIS是1 2 4 6,这时候下一个数是3,那么我们就要更新成1 2 3 6,让前面的数尽可能的小,这样就能让后面的数有更多的机会被加入 因为数字只有1 阅读全文
posted @ 2016-05-11 18:41 Ngshily 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 若一个数n能被它的所有非零数位整除,则n能被它们的最小公倍数x整除 而由1到9中的数组成的最小公倍数最大为2520,且是离散的,实际上只有48个 为了判断这个数能否被它的所有数位整除,我们还需要这个数的值,显然要记录值是不可能的,其实我们只需记录它对2520的模即可 设dp[pos][lcm][mo 阅读全文
posted @ 2016-05-11 15:15 Ngshily 阅读(198) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2016-04-29 22:33 Ngshily 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 给出一个范围在[0,1e6]的数n,需要构造一个数m,使得m是n的倍数,m属于[0,1e16]且m包含[0,9]的所有数字 若不存在,输出-1 当n=0时输出-1 当n属于[1,1e6)时 m=(9876543210*1e5+n)-(9876543210*1e5+n)%n 这样,这个数的前10位不会 阅读全文
posted @ 2016-04-25 11:48 Ngshily 阅读(186) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2016-04-25 11:25 Ngshily 阅读(1) 评论(0) 推荐(0) 编辑