- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 c++字符串学习
#include #include #include #include using namespace std;int d,t;char s[100000];int main(){ scanf("%d",&d); d=d% 26; scanf("%s",s); for (int i=0;i<strlen(s);i++) { t
2015-08-29 22:50:11 296
原创 hdu5423
题目大意:给出一张n个点n条边的无向图,判断这张图中是否存在哈密顿回路。分析:存在哈密顿回路:这张图要连通,有一条回路经过每个点一次。dfs的时候每次只能从点x向一个未访问过的点y走,不能再由y回溯到x走x的其它相邻点,保证只经过每个点一次。所以dfs是在循环外调用的。为了优化,每次取x相邻的未访问过的度数最小的点扩展。#include #include #include
2015-08-29 21:56:25 493
原创 hiho一下第六十周
题目大意:给出两个字符串,求出满足下列条件的最长的公共子序列:①公共子序列连续的部分长度>=3②断开处单调递增分析:看起来好像经典问题最长公共子序列——但是不是。一开始想到直接写转移方程,发现如果前面长度为2,1之类,即使和后面连起来长度大于3了,这种状态也不能被找到;又想到先求最长公共子序列,然后减去小于3 的段,但是发现不仅程序中定位断开部分难写,而且会产生错解。所以接着第一个
2015-08-29 00:44:01 378
原创 51nod1459
spfa只是加上求权值的部分我有傻傻的开小了边数的数组——N^2学会了用queue#include #include #include #include using namespace std;#define INF 0x7fffffffint tmp;struct point{int y,z,next;}edge[250010];int l,n,m,st,ed;in
2015-08-28 23:19:43 774
原创 vijos1058粘贴文本
发帖来水,这是多年前我认为纯模拟会超时的题。。。然而就这样过了#include #include #include #include using namespace std;int n,k,a,b,c;int t[100000],order[100000];int main(){ cin>>n>>k; for (int i=1;i<=n;i++)
2015-08-28 04:20:11 393
原创 bzoj1293【SCOI2009】生日礼物
想了很久都没有想到。。。看了hzw的题解恍然大悟居然只是枚举起始位置,然后要取这个位置之前(之后)与它最近的k种珠子的位置的最大值作为这一个起始位置的答案,最后这些答案取min找最近的珠子:因为题目中已知Ti的珠子位置按升序排序,所以用静态链表把每一种珠子存起来,这样是尾插法,遍历的时候从大到小。同时为了方便,也需要将所有坐标排序,和遍历的顺序一样从大到小枚举起始位置,这样找之前最近比较方
2015-08-24 22:09:14 1116
原创 noi2015程序自动分析
并查集只是要离散化或者hash(这个比较慢)#include #include #include #include using namespace std;#define MAXN 2000007struct point{int x,y,z;}a[100100];int t,n,flag,u,v;int father[MAXN];int hashnum[MAXN]
2015-08-24 19:50:08 1419
原创 uva11992区间修改线段树
数据范围很大,但是可以每行建一个线段树,化为线性的set的优先级高于addpushdown的时候相当于在add和sett中对一个整个的区间进行“赋值”一样,所以还要加上改sum,min1,max1的部分三个询问可以一起做。。。#include #include #include #include #include using namespace std;#define
2015-08-22 03:55:58 459
原创 poj1151矩形面积并
学习了一种新的离散化第一次写有关线段的线段树个人理解的扫描线:每添加一条边(或权值)就算当前这一部分的东西,然后再添加,一个循环#include #include #include #include #include using namespace std;#define MAXN 200int n,T,t;double x1,x2,y1,y2,ans;struct
2015-08-19 00:28:03 428
原创 hdu某道题
题目大意:给出一棵树,求以i为根节点的子树中有多少个节点标号比i小 得到dfs序之后,用树状数组求第i个数之前比第i个数小的数的个数 ans[i]=ed[i]-st[i];#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;#define MAXN 100
2015-08-09 23:17:55 413
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人