自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ - 3259:Wormholes

John有n个农场,同时有m条道路存在于这些农场间,某天他发现农场间出现了w个可以使时光倒退的虫洞,求John是否能穿越时间,即判断图中是否存在负权回路。//Bellman-Ford#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>us...

2018-05-11 11:42:05 136

原创 POJ-3268:Silver Cow Party

给出一张有向图,求起点到终点再回来的最短距离,两次dijkstra即可#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int M,N,X;int v[1010],m[1010][1010],d[...

2018-05-11 10:53:55 125

原创 POJ-2195:Going Home

题目给出一张图,其中H代表房子,M代表人,求在人尽可能多的进入到房子里的情况下的人走的最小总路程。建图 超级源连接所有人,容量为1花费为0 超级汇连接所有房子,容量为1花费为0 所有人分别连接所有房子,容量为1花费为人到房子的最短距离#include <cmath>#include <queue>#include <cstdio>#inclu...

2018-05-09 20:34:05 121

原创 POJ-1087:A Plug for UNIX

房间里有n个插头m个插座与k个转换器,转换器能将特定的插头接到特定的插座上,求最少剩几个插头无法匹配。建图 连接超级源与所有插头且容量为1 连接所有插座与超级汇且容量为1 连接所有配对的插头与转换器且容量为1 连接所有能配对的转换器与插头或插座且容量为INF/********** Dinic**********/#include <queue>#includ...

2018-05-09 20:11:01 108

原创 POJ-3281:Dining

一共有N头牛,F种食物与D种饮料,给头牛只吃特定的食物与饮料,每种食物或饮料只有一份,求最多能满足多少头牛。最大流问题首先要建图 首先确定一个超级源S与超级汇E: S连接所有食物点并且容量为1,E连接所有饮料点容量为1。图的两边建好了接下来是中间表示牛的部分,由于每头牛都有食物与饮料我们将其拆点: N头牛拆为2*N个点,1~N表示食物,N+1~N+N表示饮料,并在每头牛的食物(S+F...

2018-05-09 19:09:28 138

原创 最大流Dinic

2018-05-09 17:13:39 240

原创 ZKW线段树

一般的线段树采用的是自顶向下递归建树的办法,但这样写起来比较麻烦,于是有人就想着能不能有自底向上的建树,ZKW线段树就出现了。基于二叉树的性质我们知道,对于一个叶子节点数为n(2的k次方)的满二叉树,它的第一个叶子节点标号同样为n,于是对于一个有m个点的区间,我们可以假设它是一个满二叉树,只不过一部分数据为0,于是我们只需要找到大于m的最小n,并顺序输入即可建树void down(in...

2018-04-04 09:52:11 145

原创 普通线段树

线段树是一种二叉搜索树,对于一段区间,父节点区间的区间由左节点的区间加上右节点组成,基于二叉树的性质,建立一般的线段树。可用于维护类似区间和,区间最大值最小值之类的数据 于是可以基于二叉树性质建树void build(int nood,int l,int r){ tree[nood].L=l; tree[nood].R=r; if(l==r) {tree[noo...

2018-04-03 21:17:54 170

原创 PJO-2253:Frogger

输入一些点的坐标,求点一到点二的最短路//Dijkstra#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;int v[210],x[210],y[210]...

2018-03-30 09:52:51 131

原创 PO-J2387:Til the Cows Come Home

 给n个点,求出a到b的最短距离。 Dijkstra算法:适用于无负权回路的单源最短路径,其思路是开始时标记源节点,然后对于当前被标记节点i,遍历所有未被标记节点并且标记与i距离最短节点k,重复至所有节点都被标记。#include <iostream>#include <cstdio>#include <cstring>#include <algor...

2018-03-30 09:45:48 130

原创 POJ-25282:Mayor's posters

大意为给定一堆海报张贴顺序与张贴区间,求最后有几张海报没完全被挡住(来啊互相伤害啊!)。由于数据太大而且海报都是几个点连在一起的,用以前的思路开树过于浪费,于是我们先将数据离散化(大概就是将一段连续的cut成一个点)再开线段树,由于我们写的是当一片区域没有完全cover的时候s++并且将其cober,所以注意cover的时候从后往前#include <cstdio>#include ...

2018-03-20 21:28:54 213 1

原创 POJ-3469:A Simple Problem with Integers

题目大意为给定一个数组,对这个数组有两种操作,C为向数组下标为a-b的数加上c,Q为求出数组下标a-b的和。这种题目用单点跟新来写会TL(没错一开始我就是这么做的。。。),所以得用区间跟新,同时注意由于题目数据限制得用long long#include <cstdio>#include <cstring>#include <iostream>#includ...

2018-03-20 21:16:36 136

原创 HDU-1754:I Hate It

单点跟新的一点小变形,当成单点跟新来写稍微改下就行#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define maxn 200000int v[maxn+100];struct tr{ ...

2018-03-20 21:10:55 129

原创 HDU-1166:敌兵布阵

线段树里面的单点跟新,第一次写线段树觉得这真是个#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define maxn 50005int v[maxn*2];struct tr{ i...

2018-03-20 21:05:07 101

原创 HDU3038-How Many Answers Are Wrong

题目大意:给出一些线段的数值,求其中冲突的个数。解题思路:带权并查集,注意在合并两个集合与维护时带上线段所有的权值即可#include #include using namespace std;int f[200010],val[200010],s;int find(int a){ int r; if(f[a]==a) return a; r=find(f[

2018-01-04 21:07:53 181

原创 M - Find a way

记下两人坐标同时BFS即可,注意有的KCF可能到不了的情况#include #include #include #include using namespace std;int m,n,vis[210][210],t[210][210],t1[210][210];char a[210][210];struct point{ int x; int y;}

2017-12-25 17:06:36 562

原创 L - Oil Deposits

遍历整张图,若judge=1则输出s的值,若不为1则对第一个没被遍历过的为@的点进行搜索。值得注意的是样例最后一个5 5后面多跟了一个空格。。。还以为自己错了改了好久#include #include #include using namespace std;int m,n,a[120][120];int dx[8]={-1,0,1,-1,1,-1,0,1};int dy[8]

2017-12-25 16:16:19 145

原创 POJ 3279 Fliptile

题目大意:给定一个M*N个棋子组成的矩形,每个棋子只有0或者1两种状态,每个棋子皆可被翻转,但同时会翻转其相邻的四个棋子,要求输出一个M*N的矩形,在矩形的每个点上1代表翻转改点0代表不翻转,使得翻转后原棋盘所有棋子状态为0,求翻转总次数最低的矩形,无解输出IMPOSSIBLE解题思路:先枚举第一行中2^N中可能,从第二行开始每一行棋子状况用以保证上一行棋子状况为0,遍历完最后一行后判

2017-11-29 23:50:25 131

原创 POJ 2251 Dungeon Master

DescriptionYou are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one un

2017-11-26 22:09:00 131

原创 HDU-6033 Add More Zero

题目大意为找出不大于2的n次方的最大的10的k次方的数,即k=n*log10(2);代码如下#include #include #include using namespace std;int main(){ int i=0,n,k; while(~scanf("%d",&n)) { i++; k=n*log10(

2017-11-21 14:59:44 202

原创 NYOJ-D的小L

代码如下#include #include #include using namespace std;int main(){ int i,n,a[20],k; scanf("%d",&n); while(n--) { scanf("%d",&i); for(k=0;k<i-1;k++) {a[k]=k+1;printf("%

2017-11-18 21:29:01 174

原创 NYOJ-找球号(一)

代码如下#include #include #include #include #include #include using namespace std;int main(){ int n,i,m,a,b; setq; set::iterator k; scanf("%d %d",&m,&n); for(i=0;i<m;i++) {scan

2017-11-18 14:08:33 213

原创 NYOJ-汉诺塔(三)

描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就

2017-11-17 00:25:22 181

原创 NYOJ-Binary String Matching

描述 Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘1001110110’ while

2017-11-16 23:11:24 204

原创 NYOJ-括号配对问题

代码如下南阳OJ上很简单的题目,创建一个栈,从左往右线性扫描字符串,遇到'【 '或者'(  ' 就压入栈顶,否则取出栈顶元素判断是否配对,注意当栈为空时无法取出栈顶元素(就是这个原因害我一直没有AC。。。),最后判断栈是否为空,每个循环完后清空栈。

2017-11-16 22:13:29 253

空空如也

空空如也

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

TA关注的人

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