自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【51Nod 1184】第N个质数

Description第1个质数是2,第3个质数是5,给出一个数N,求第N个质数。Solution很明显这个要二分答案。 现在的主要问题就是求f[i]表示i里面有多少个质数。 这里可以用个非正式的洲阁筛。 设 f[i]表示i以内有多少个质数 p[i]表示第i个质数 g[i][j]表示前i个数不被p[1...j]整除的数有多少个 那么先来看看f,首

2017-05-29 15:02:37 932

原创 hdu 1269-tarjan算法

链接:点击打开链接题解:纯tarjan算法代码:#include#include #include#include#includeusing namespace std;const int mx=1e4+10;int n,m;vector vec[mx];int dfn[mx],id[mx],stack[mx],size,type,is;bool v

2017-05-23 18:54:21 407

原创 hdu 3518-后缀数组(无重叠子串)

链接:点击打开链接题解:利用后缀数组先排序,然后求出连续>=k的hight,然后判断最大差距有没有超过就行了。代码:#include #include #include using namespace std; const int N=1e3+10; char s[N];int wx[N],wy[N],sa[N],ws[N],ran[N],hig

2017-05-19 18:08:25 249

原创 Educational Codeforces Round 21-E-贪心背包or

链接:点击打开链接题解:一.可以按单位价值排序,然后一直取到超过m为止,这里可以知道要是正好取到m那么这个配置肯定是最优的,剩下的两种情况就是m-1,和m-2那么就要dp四种情况,1.从剩下的拿出填满它.2.从已取当中拿去一出来从剩下的拿2进去.3...4...以此类推,可以发现我们最后只需要dp剩下1-5的质量就可以了二.考虑质量1和质量2的情况的最优,最后再对质量3枚举就行了。

2017-05-17 21:11:04 286

原创 Educational Codeforces Round 21-G

链接:点击打开链接题解:先处理字符串t的第i个前缀是否和后缀相同,然后再处理s的i-i+m-1是否是t串,然后dp。代码:#include #include #include#include#include #includeusing namespace std; #define lson l,m,rt<<1#define rson m+1,r,r

2017-05-16 20:14:02 230

原创 Educational Codeforces Round 21-D

链接:点击打开链接题解:首先总和肯定是要偶数,然后对切割点位置进行枚举,分两种情况:一种是左边拿一个到右边,一种是右边拿一个到左边。判断这样能不能成立就行了。代码:#include #include #include#include#include #includeusing namespace std; #define lson l,m,rt<<1

2017-05-16 18:16:32 199

原创 hdu 1150-匈牙利算法

链接:点击打开链接题解:将模式之间换成点和点的关系,就是求每两个点连成的线段都至少要有一个端点==最大匹配代码:#include #include #include#include#includeusing namespace std; #define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define

2017-05-15 21:45:00 195

原创 大学生程序设计邀请赛(华东师范大学)-D-线段树

链接:点击打开链接题解:二分预处理出来每个点单次传染到的左右范围,再用线段树维护每个点最终的范围最小值、最大值,利用线段树不断扩大范围并更新。随机一个 1 ~ n 的序列利用线段树更新,这样速度会变得很快,或其他优化方法均可(这里采用sin函数排序差不多就无序了= =)。还有就是注意题目是按原来的i输出,我因为这个被卡了一下午,MDZZ。代码:#incl

2017-05-15 18:54:52 262

原创 大学生程序设计邀请赛(华东师范大学)-F-贪心

链接:点击打开链接直接贪心按r从小到大排,然后再用树状数组维护区间现有路灯数,接着直接暴力就可以了。代码:#includeconst int mx=1e3+10;typedef long long ll; using namespace std;int x,n,m,k,sum[mx];bool vis[mx];struct sec{ int l,r,t;

2017-05-14 10:38:44 242

原创 hdu1251-字典树

链接:点击打开链接解题思路:以类似链表的形式构造出一个字典树,每次将一个字符串加入树中,对该串个每个前缀进行判断(自然没出现过要开辟空间新建节点),然后对该节点维护的sum++就可以了。会建树查询应该也没问题吧~代码:#include#include#include#include#includeusing namespace std; int n;struct

2017-05-11 19:02:59 273

原创 hdu6025-构造or线段树

链接:点击打开链接解题思路:这题可以线段树树可以直接记前驱,后继的GCD然后枚举就OK了。构造代码:#include#include#include#include#include#include#includeconst double eps = 1e-8;typedef long long LL;using namespace std;const

2017-05-11 16:23:02 223

转载 CodeForces - 480E-DP+并查集

解题思路:枚举每点到左上角点的最大正方形,然后用并查集压缩路径求左延伸长度,右延伸长度,以离线递增处理。代码:#includeusing namespace std;#define maxn 2010inline void MIN(int &a,int b){if(a>b)a=b;}inline void MAX(int &a,int b){if(a<b)a=b;}int

2017-05-11 11:11:48 469

原创 hdu 6024-dp

链接:点击打开链接题意:裸DP,枚举i这个位置左边最近一个水果店就行了。(然而被爆int卡了好久,MDZZ)代码:#include#include#include#include#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define inf 0x6f6f6f6fusing namespace std;

2017-05-11 11:05:32 477

原创 CodeForces - 346B -LCS变形+dfs+KMP

题意:这题一看是求LCS但不能包含病毒串,所以我们只能再加一维数组代表此最长序列包含多长的病毒串,这个问题可以暴力也可以kmp,然后dfs输出。代码:#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define lson l,m,rt<<1

2017-05-10 20:39:11 494

原创 CodeForces - 193B-dfs

显然我们发现如果连续两次进行异或操作的抵消的,所以可以插入一对或多对二次异或操作,然后剪枝dfs就可以了。代码:#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define lson l,m,rt<<1#define rson m+1,r

2017-05-07 11:30:23 304

原创 zoj 3614-二维RMQ+容斥

RMQ求出矩阵区间最大,数组sum和pro分别存坐标i,j到右下角的矩阵所有元素和,和平方和,然后根据容斥求出某一矩阵的元素和,平方和。然后根据方差展开求最大坐标,就OK啦。。。。。代码:#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#de

2017-05-06 23:24:33 318

原创 zoj 3633 rmq或线段树

两个方法基本差不多,记住最近一次出现这个数的位置,就可以了。RMQ :#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int mx=5e5+10;int n,m,num[mx],kep[m

2017-05-06 16:54:43 301

原创 uva 11210 暴力搜索

说坑点没不是很明显,玩过麻将的都知道吧。。。(可我被自己坑了好久) 只要每次拿出一个对子出来,然后剩下12张看3张3张去能不能去完这个可以dfs就OK了。题解:#include#include#include#include#include#includeusing namespace std;typedef long long ll;int n,m,num[40]

2017-05-06 11:02:32 374

原创 hdu 1796 容斥原理

题目链接:点击打开链接被这个0坑了好久,题目有矛盾,注意这个0就OK了。题解:#include#include#include#includeusing namespace std;typedef long long ll;int n,m;int num[25];int gcd(int a,int b){ return b==0? a:gcd(

2017-05-05 20:05:55 402

原创 hdu 4027 Can you answer these queries? -线段树

题目链接 :点击打开链接题目要求开根那么再大的一个数不超过十次开根就会变成1,那么此时就不需要再更新了,所以用线段树只需特判这个点就可以了。题解:#include#include#include#include#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1using namespace std;typede

2017-05-05 18:44:38 253

原创 hdu 3015 Disharmony Trees(树状数组+离散)

这里是题目链接:题目链接因为高度只要求取两点中最小的那个所以我们先按高度从小到大排序,那么每次枚举的hi肯定就是最小的啦,然后用树状数组维护区间和和区间数就可以了。题解:#include#include#include#include#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1using namespace s

2017-05-05 12:17:46 377

空空如也

空空如也

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

TA关注的人

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