上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 71 下一页
摘要: 转自http://blog.csdn.net/zhaoxinfan/article/details/8707605下面先给出数位DP的背景:•在给定区间[A,B]内,找满足要求的数。•要求一般和数大小无关,而与数的组成有关•例如,递增的,1234, 2579…• 双峰的,19280,26193…• ... 阅读全文
posted @ 2014-04-17 19:30 _雨 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 由简单到稍微难点。从网上搜了10到数位dp的题目,有几道还是很难想到的,前几道基本都是模板题,供入门用。点开即可看题解。hdu3555 Bombhdu3652 B-numberhdu2089 不要62hdu4734 F(x)hdu4389 X mod f(x)ural1057 Amount of D... 阅读全文
posted @ 2014-04-17 19:25 _雨 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 链接这题通过暴力可以看出最多不超过3 具体为什么。。等着看大牛的题解。可以预处理出来两个数之和 用bool存下 然后枚举一个数 二分剩余数的位置就可以了 勉强可过 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 #define N 12345678912 #define M 1600013 #define LL long long14 #define INF 0xfffffff15 const . 阅读全文
posted @ 2014-04-06 20:20 _雨 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 链接表达式类似于斐波那契 但是多了一个变量 不能用快速幂来解 不过可以用线段树进行维护对于每一个点够一个2*2的矩阵1 a[i]1 0 这个矩阵应该不陌生 类似于构造斐波那契的那个数列 还是比较容易能想到的然后就用线段树进行维护 注意矩阵不满足交换律 在乘的时候要倒序。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 using namespace std; 11 #define N 100010 12 #define... 阅读全文
posted @ 2014-04-06 20:16 _雨 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 链接也算是组合 以前按组合做过一次 忘记怎么做的了这次按dp写的 dp[i][j][g][k] 表示第i位为k(0|1)而且有j个1,g个0的情况数貌似写的麻烦了。。。这一类的题,进行逐位计算就可以 不过要很细心,边界处理 特殊情况处理什么的 。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 #define N 10000012 #define LL long long13 #define I. 阅读全文
posted @ 2014-04-04 21:36 _雨 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 链接计算0-9每一个数字出现的次数 逐位进行处理 对于每一位取几时依次算下组合的情况 注意0的情况需要特殊处理一下 因为0000 00 这样都是等于0的 前面的几位是多余的 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 #define N 10000012 #define LL long long13 #define INF 0xfffffff14 const double eps = 1e-. 阅读全文
posted @ 2014-04-04 21:32 _雨 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 专题链接第一题--poj3744 Scout YYF I链接(简单题)算是递推题 如果直接推的话 会TLE 会发现 在两个长距离陷阱中间 很长一部分都是重复的 我用 a表示到达i-2步的概率 b表示到达i-1步的概率 c表示到达i步的概率如果数很大的话 中间肯定会有重复的a,b,c 直接将i挪到最近... 阅读全文
posted @ 2014-04-04 09:55 _雨 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 链接题意从尾部找第一个非0的数 这样就可以考虑下怎样会形成0 这个都知道 只有因子2和因子5相遇会形成0 那这样可以先把所有的2和5先抽出来,这样就保证了其它的数相乘就不会再出现0了 这样就可以转换成尾数相乘的结果 当然可能2的个数会剩余 这一部分留到最后去算step1 抽出所有的5和2 n!里因子x的个数 求法: n/x+gn(n/x);这样结果就为1 3 7 9 之一 这样就需要求一下尾部3,,7,9的出现的次数,并且可以发现它们都是以4为周期的 包括2step2 尾部3 7 9出现的次数 f[n] + find(n/2) 因为抽走了2 x出现的次数g[n][x] = n/10+(n%10 阅读全文
posted @ 2014-04-03 23:51 _雨 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 链接好久没写这种逐位计数的了。先统计出总的数 ,s-n+1,倒着计算的 ,感觉倒着比较符合计算方式,总数为15*A(15,i) (1==n的 就找到了 该字符串的长度 然后再逐位进行找下一位 首位不为0. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 #define N 10000012 #define LL long long13 #define INF 0xfffffff14 const . 阅读全文
posted @ 2014-04-03 23:21 _雨 阅读(192) 评论(0) 推荐(0) 编辑
摘要: A 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 #define N 10512 #define LL long long13 #define INF 0xfffffff14 const double eps = 1e-8;15 const double pi = acos(-1.0);16 const double inf = ~0u>>2;17 char s[N];18 int 阅读全文
posted @ 2014-04-01 19:18 _雨 阅读(225) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 71 下一页