摘要: Volume 1Volume 2 阅读全文
posted @ 2015-03-06 19:06 keambar 阅读(180) 评论(0) 推荐(0) 编辑
摘要: HDU 5288 OO’s Sequence 题意 给定一个数列(长度<$10^5$),求有多少区间[l,r],且区间内有多少数,满足区间内其它数不是他的约数。 数的范围$[1,10000]$。结果对$10^9+7$取模。 Solution 首先可以预处理每个数的约数有哪些。对每个数存下它的位置有哪 阅读全文
posted @ 2015-08-05 16:28 keambar 阅读(392) 评论(0) 推荐(0) 编辑
摘要: [HDU 5351 MZL's Border]题意 定义字符串$f_1=b,f_2=a,f_i=f_{i-1}f_{i-2}$。 对$f_n$的长度为$m$的前缀$s$, 求最大的$k$满足$s[1]=s[m-k+1],s[2]=s[m-k+2]...s[k]=s[m]$Solutio... 阅读全文
posted @ 2015-08-05 16:10 keambar 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 题意: 如图,一列未知的区域长度为n(≤1000),给出第二列的数字,求区域中雷的排列有多少种。Solution: 搜索。这题看上去1000的范围很大,实际上加上合理的剪枝,状态数会变得非常非常少。 一个雷最多能影响3个格子,直接从上往下枚举这个地方有没有雷。有雷的话给影响的格子的数字减一。 ... 阅读全文
posted @ 2015-07-24 15:35 keambar 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n(n≤50000)支队伍参加了两场比赛,分别有两个排名。现在要求输出总排名,如果对任意m,在两个排名的前m个队伍都相同,那么在总排名前m个队伍就是这些队伍。其它情况按字典序排。Solution: 简单题。 先map定位每个队伍在第一个排名中的位置。从第二个排名的第一个开始,找到最小... 阅读全文
posted @ 2015-07-24 14:53 keambar 阅读(206) 评论(0) 推荐(0) 编辑
摘要: # SGU 280.Trade centers 解题报告###题意:n(k,那么p需要在x或它的父亲中建造市场,要么其实他已经被它的兄弟子树覆盖。这个可以通过判断$max(f[p])+min(f[p])+2$是否小于等于2\*k+1来判断。如果x的子树全部被覆盖了,那么$f[x] = min(f[p... 阅读全文
posted @ 2015-07-21 09:37 keambar 阅读(394) 评论(0) 推荐(0) 编辑
摘要: ###题意:有n(n#include #include using namespace std;const int N = 501;int link[N], vis[N];int G[N][N],ans[N];int n, mid;bool DFS ( int x ){ for ( int i... 阅读全文
posted @ 2015-07-20 20:54 keambar 阅读(511) 评论(0) 推荐(0) 编辑
摘要: Problem A:实际上对于一段数字假设和为k,每次取较大的m个进行t次减一操作,最多减去的是min(m*t,k).明白了这个结论就可以直接二分答案了。#include #define LL long longusing namespace std;LL A, B, n;LL l, t, m, a... 阅读全文
posted @ 2015-07-20 16:24 keambar 阅读(239) 评论(0) 推荐(0) 编辑
摘要: Solution: 根据树的遍历道的时间给树的节点编号,记录下进入节点和退出节点的时间。这个时间区间覆盖了这个节点的所有子树,可以当做连续的区间利用线段树进行操作。/* 线段树*/#pragma comment(linker, "/STACK:102400000,102400000")... 阅读全文
posted @ 2015-07-20 15:59 keambar 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n(#include #include using namespace std;const int N = 209;bitset a[N], mask[N];int base[N];int Gauss ( int n ){ for ( int i = 1; i > n; fo... 阅读全文
posted @ 2015-07-19 20:19 keambar 阅读(241) 评论(0) 推荐(0) 编辑
摘要: poj2976普通的01分数规划大意:给定A数组B数组,从中选择N-K个使得R最大,输出Round(100*R);#include #include #include #include using namespace std;const int N = 1009;const double Eps =... 阅读全文
posted @ 2015-07-19 11:01 keambar 阅读(225) 评论(0) 推荐(0) 编辑