04 2014 档案

摘要:---恢复内容开始---A枚举l,r 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 #defin... 阅读全文
posted @ 2014-04-29 21:57 _雨 阅读(247) 评论(0) 推荐(0) 编辑
摘要:二分图模板匈牙利算法 时间复杂度O(n^3)int n1,n2,k;//n1,n2为二分图的顶点集,其中x∈n1,y∈n2int map[N][N],vis[N],link[N];//link记录n2中的点y在n1中所匹配的x点的编号int find(int x){ int i; for... 阅读全文
posted @ 2014-04-26 19:58 _雨 阅读(241) 评论(0) 推荐(0) 编辑
摘要:链接这题纠结了好久,刚开始想到的是正解,不过想到可能会出现一个数支点不唯一的情况,这样就多算了,其实是我想多了,一个数只有一个支点。这样就好像想到了,枚举支点的位置,保存力矩的状态。dp[i][k][s] i为当前处理位 k为支点 s为到目前为止根据支点算出来的部分力矩。有一点需要注意算0的时候 会... 阅读全文
posted @ 2014-04-23 20:59 _雨 阅读(178) 评论(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 101012 #def... 阅读全文
posted @ 2014-04-23 15:42 _雨 阅读(291) 评论(0) 推荐(0) 编辑
摘要:链接这题有一点小坑点 就是AX^B A只能为0或者1 ,剩下的就比较好做的了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using na... 阅读全文
posted @ 2014-04-23 15:32 _雨 阅读(192) 评论(0) 推荐(0) 编辑
摘要:链接这个题因为总和加起来是比较小的9*9 = 81 这样可以保留前面枚举的数对所有的可能出现的和的余数,然后依次向下找。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include ... 阅读全文
posted @ 2014-04-23 15:29 _雨 阅读(294) 评论(0) 推荐(0) 编辑
摘要:链接与前面几个类似,多开几维处理他的要求。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 #de... 阅读全文
posted @ 2014-04-23 15:27 _雨 阅读(194) 评论(0) 推荐(0) 编辑
摘要:链接 这题当时在网络赛时很费劲的推出来的,以递推的形式写出来的,一些边界点特别不好控制,靠看数据改出来的。现在改出dfs形式,也是很简单的。因为f(x)的数不会很大,直接保留前面枚举的数得出的结果即可。 1 #include 2 #include 3 #include 4 #include 5 ... 阅读全文
posted @ 2014-04-23 15:25 _雨 阅读(401) 评论(0) 推荐(0) 编辑
摘要:链接与上一个类似,更简单一些,标记前面是否出现过49和4. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace st... 阅读全文
posted @ 2014-04-23 15:22 _雨 阅读(250) 评论(0) 推荐(0) 编辑
摘要:链接题意求能够整除和包含13的数字。这个比较简单,保留余数及1,然后标记前面是否出现过13就行。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10... 阅读全文
posted @ 2014-04-23 15:20 _雨 阅读(214) 评论(0) 推荐(0) 编辑
摘要:链接这个题最不好想到的是状态的保存,也没有几亿的数组让你开,怎么保存前面出现了哪些数字。题意让你求最长上升子序列的长度为k的数字的数目,可以是不连续的,可以保留一个状态栈,栈顶部依次更新,再保证长度最大的情况下使栈顶元素最小,这样就能保证下次加进来的元素有可能会使长度增加。这个状态就用2进制来表示,... 阅读全文
posted @ 2014-04-23 15:18 _雨 阅读(271) 评论(0) 推荐(0) 编辑
摘要:数位dp中不错的题目求能够整除自身各位数字的数,那换句话来说也就是能够整除各位数的最小公倍数,可以算出1-9所有数字的最小公倍数为2000+从高位向下走的时候,要保留当前第几位i,当前lcm,以及前面对lcm的余数r,不过这个lcm是变换的,状态无法保存。可以看下这个式子 x%m = x%(2*m)... 阅读全文
posted @ 2014-04-23 15:10 _雨 阅读(309) 评论(0) 推荐(0) 编辑
摘要:在这里记录一下做题中遇到的各种性质、定理,数论知识偏多,没有什么顺序,只是做到了就记录一下,不断更新。。费马小定理是数论中的一个重要定理,其内容为: 假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p)。即:假如p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1。... 阅读全文
posted @ 2014-04-20 23:13 _雨 阅读(735) 评论(0) 推荐(1) 编辑
摘要:通常的数位dp写法int dfs(int i, int s, bool e) { if (i==-1) return s==target_s; if (!e && ~f[i][s]) return f[i][s]; int res = 0; int u = e?num[i]:... 阅读全文
posted @ 2014-04-20 21:42 _雨 阅读(261) 评论(0) 推荐(0) 编辑
摘要:1 int euler(int x) 2 { 3 int s = x; 4 for(int i= 2 ; i*i <= x ; i++) 5 { 6 if(x%i==0) 7 { 8 s-=s/i; 9 ... 阅读全文
posted @ 2014-04-20 19:42 _雨 阅读(120) 评论(0) 推荐(0) 编辑
摘要:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=48388前段时间偶然碰到的一道题,今天突然想到没把它记录下来。比较不错的扩展欧几里德求解的应用题意求是否满足ax+by=c gcd(a,b)==1 a>=0&&b>=0数比较大 ... 阅读全文
posted @ 2014-04-17 20:37 _雨 阅读(564) 评论(0) 推荐(0) 编辑
摘要:转自http://blog.csdn.net/zhaoxinfan/article/details/8707605下面先给出数位DP的背景:•在给定区间[A,B]内,找满足要求的数。•要求一般和数大小无关,而与数的组成有关•例如,递增的,1234, 2579…• 双峰的,19280,26193…• ... 阅读全文
posted @ 2014-04-17 19:30 _雨 阅读(356) 评论(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 _雨 阅读(245) 评论(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 _雨 阅读(234) 评论(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 _雨 阅读(179) 评论(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 _雨 阅读(227) 评论(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 _雨 阅读(259) 评论(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 _雨 阅读(609) 评论(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 _雨 阅读(166) 评论(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 _雨 阅读(196) 评论(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 _雨 阅读(227) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示