自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 hdu1698Just a Hook

http://acm.hdu.edu.cn/showproblem.php?pid=1698 裸的线段树区间更新#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int maxn=100005;struct Node{ int su

2016-05-27 17:38:24 356

原创 hdu5524 Subtrees

http://acm.hdu.edu.cn/showproblem.php?pid=5524 问n个节点的完全二叉树有多少种节点个数不同子树 首先如果是满二叉树好判断,否则,可以把它看成一个完全二叉树和另一个非完全二叉树,如此递归下去,每递归一次,结果加一,因为结点个数肯定和其他的不一样#include<iostream>#include<cstdio>#include<cstring>#

2016-05-25 21:01:19 509 1

原创 hdu5523Game

http://acm.hdu.edu.cn/showproblem.php?pid=5523 情况比较多,要考虑周全,注意n=1时和s,t相邻时#include <iostream>#include <cmath>using namespace std;int main(){ int s,t,n; while(cin>>n>>s>>t) { if(n=

2016-05-25 19:54:40 240

原创 hdu5512Pagodas

http://acm.hdu.edu.cn/showproblem.php?pid=5512题意,有1~n个塔 开始只有两座塔a,b,两人轮流建塔,只能建现有的任意两座塔x+y号或x-y号,谁先不能建谁输,简单博弈 首先最优的肯定是能建哪个建哪个,因为能建早晚会被建,先手建了就可以让对手再选择,其次,规律,能建的最小号的塔肯定是gcd(a,b);#include <iostream>#inclu

2016-05-24 16:47:52 383

原创 hdu2795Billboard

http://acm.hdu.edu.cn/showproblem.php?pid=2795题意,一块宽w 高h的板,贴上若干宽为1的条,优先一行一行贴,贴不开换下行,问每个条所在的行数。使用线段树,根节点表示1-h,每个节点储存的是最大值,初始每个节点都没贴,也就是w,当找到叶子节点,且有足够大的空间贴广告时,改变域值,返回。如果当前区间的最大可用空间都不够用时,即可return。如果已经找到合适

2016-05-23 20:50:06 374

原创 codeforces389 a

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=117457#problem/A#include<stdio.h>#include<iostream>#include<string.h>#include<string>#include<ctype.h>#include<vector>#include<map>using nam

2016-05-23 11:15:18 222

原创 hdu2838

http://acm.hdu.edu.cn/showproblem.php?pid=2838 题意 n个数的排列,每次可以互换相邻的元素,最终变成一个递增的序列,每次互换的代价为互换的两个数的和,求最小代价。 每次处理前i个,也就是顺序处理就是最小,假如第i个数为a[i],那么需要的代价为a[i]*c+sum(a[i]),c是a[i]前比a[i]大的数的个数,sum(a[i])是a[i]前比a

2016-05-19 17:19:17 560

原创 hdu4046panda

http://acm.hdu.edu.cn/showproblem.php?pid=4046 单点更新,区间求和,可以用树状数组,存wbw字符的组合#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=50005;int c[maxn];int n;char le

2016-05-18 11:32:22 389

原创 hdu3792

http://acm.hdu.edu.cn/showproblem.php?pid=3792 求n以内的孪生素数的对数,孪生素数: p和p+2都为素数. 这题暴力能过,用树状数组处理一下更快#include<stdio.h>#include<string.h>#include <iostream>#include <cmath>using namespace std;const int

2016-05-17 19:42:28 624

原创 树状数组总结

这几天又把树状数组复习一下,感觉又学到了写新东西,把模板写下来,还有自己的一些想法。 首先lowbit函数int lowbit(int x){ reutrn x&amp;(-x);}首先,定位lowbit(natural)为自然数(即1,2,3…n)的二进制形式中最右边出现1的值。 比如:4 = 100,lowbit(4) = 4;36 = 100100,lowbit(...

2016-05-17 18:17:10 290

原创 hdu5510

http://acm.hdu.edu.cn/showproblem.php?pid=5510 给出n个串 求最大的n使 前n-1个串不全是他的子串strstr(m,n)函数如果n是m的子串返回在m中的第一个字符的地址 else NULL 注意如果匹配过得串就不必匹配了,因为他已经是别的串的子串了,他的信息完全可以由他下面的串表示#include<iostream>#include<stdio.

2016-05-16 16:59:48 588 2

原创 poj2774两串最长公共子串

http://poj.org/problem?id=2774 思路:后缀数组。(摘自罗穗骞的国家集训队论文)字符串的任何一个子串都是这个字符串的某个后缀的前缀。求 A 和 B 的最长公共子串等价于求 A 的后缀和 B 的后缀的最长公共前缀的最大值。如果枚举A和 B 的所有的后缀,那么这样做显然效率低下。由于要计算 A 的后缀和 B 的后缀的最长公共前缀,所以先将第二个字符串写在第一个字符串后面,中

2016-05-10 15:26:20 734

原创 hdu5505GT and numbers

http://acm.hdu.edu.cn/showproblem.php?pid=5505题意 给出 n ,m n每次可以成一个数(是n 的因子)问最少多少次乘到m 数据范围m是2^63 而longlong是2^63-1 开成unsigned ll,但是longlong存的话会把2^63存成-2^63,求得时候也没关系,恰好正确。 如果m的素因子中有n的素因子中没有的 肯定不存在 用

2016-05-10 13:16:49 326

原创 poj3261最长重复k次子串

http://poj.org/problem?id=3261求最长重复k次的子串长度。二分答案,变成判定性问题,按照连续的height值不小于k分组,如果存在一组满足k各height大于k就存在#include<iostream>#include<cstdio>#include<cstring>>#include<string>#define maxn 1000010using namesp

2016-05-08 16:11:46 509

原创 poj1743最长不重复公共子串

http://poj.org/problem?id=1743 从题目中的意思可以知道,只要满足相邻的差相等便可以了,那我们建立一个相邻并非的数组,题目要求的便是求最长的重复子串长度,而且不可重叠。 由于 相邻差可能为负,则统一加上100,转变为0-200之间的数即可。 如果允许重叠,显然地,答案就是max(height[i])。这是因为sa数组中相邻的两个串公共前缀一定最大,而最长重复子串就是

2016-05-04 21:30:51 350

原创 spoj 后缀数组

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=115232#problem/B求给出字符串所有的不重复子串,可以重叠,所有后缀的所有前缀就包括了所有字符串 用总字符串的数去减重复字符串的个数 即 所有height【】,#include <iostream>#include <cstdio>#include <cstring>usi

2016-05-03 21:42:02 310

原创 后缀数组学习

参考《算法入门经典》 和http://blog.csdn.net/qq_24451605/article/details/42118325const int maxn = 10010;int wa[maxn], wb[maxn], wv[maxn], ws1[maxn];int cmp(int *r, int a, int b, int l){ return r[a]==r[b]&&

2016-05-03 21:36:41 285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除