自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Grit_ICPC的博客

凡物之骤为之而追成焉者,其器小也;物之一览而易尽者,其中无有也

  • 博客(34)
  • 资源 (4)
  • 收藏
  • 关注

原创 POJ 2175 Evacuation Plan(费用流消负环)

大意:给出N个建筑物的坐标和里面的人数。给出M个防空洞的坐标和能容纳的人数。一个人的花费定义为从他的建筑物到目标防空洞的曼哈顿距离再加1。现在有人已经设计了一个避难方案。要你判断他给出的方案是否是所有人花费最少的解决方案,如果不是,请给出一个花费更小的解决方案(不必是最优)。思路:我们可以把,负环中的所有点找到,然后跑费用流,输出残余网络。#include #include#i

2016-05-30 17:46:07 746

原创 PAT 1021 Deepest Root (25) (并查集+DFS)

题意:给出一个无环图,求某个节点使得以它为根节点组成一棵树使得这棵树的深度达到最大。思路:先用并查集判断是不是一个联通快,然后两遍DFS,第一次求出最深根是多少,第二次,求深度与其相等深度搜索深度相等的。#include #include#include#include#include#include#include#include#define i

2016-05-27 17:34:50 347

原创 PAT 1013. Battle Over Cities (25)(并查集||DFS)

题意:给出n个城市之间的路径,假如其中有一座城市被包围了,需要另外修多少条路使得另外的城市是连通的。思路:我们可以每次查询的时候建立并查集,并且将当前点除去,然后进行并查集的统计。#include #include#include#include#include#include#include#include#define inf 0x3f3f3f3f#d

2016-05-27 16:13:53 381

原创 UVA 10806 Dijkstra, Dijkstra. (费用流||最短路)

大意:从1到n然后再返回到1,每条路都只能走一次,最短路是多少。思路1:可以用费用流建图,因为起始点和终点可以走两次所以源汇点流量为2.如果能返回的话肯定flow是>=2的,才能构成回路。思路2:我们可以先找到最短路,然后将路径上的正向权值改为inf,反向权值为原来的相反数。#include #include#include#include#includ

2016-05-26 21:45:36 506

原创 ACdream 1171 Matrix sum (有界费用流)

Descriptionsweet和zero在玩矩阵游戏,sweet画了一个N * M的矩阵,矩阵的每个格子有一个整数。zero给出N个数Ki,和M个数Kj,zero要求sweet选出一些数,满足从第 i 行至少选出了Ki个数,第j列至少选出了Kj个数。 这些数之和就是sweet要付给zero的糖果数。sweet想知道他至少要给zero多少个糖果,您能帮他做出一个最优策略吗?

2016-05-26 19:37:29 361

原创 HDU 4067 Random Maze (最小费用最大流)

#include #include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define LL __int64using namespace std;const int N = 8000;int sum,head[N],cost,flow,cnt;struct node{

2016-05-25 11:36:09 363

原创 HDU 4862 Jump (最大费用流 | 经典建图)

题目大意:有n*m个方格,每个方格都一个的十进制一位的数。你可以操作K次。对于每一次操作,你可以选择一个出发点向下或向右Jump。跳的花费是|x1-x2|+|y1-y2|-1的能量 。如果你跳的这两个位置上数字相同,那么你就会获得数字表示的能量值。对于每一次操作,你可以这样跳任意次 ,但是每个位置只能经过一次在这K次操作中。初始能量值是0,当操作完成后,如果n*m个

2016-05-25 09:30:25 412

原创 HDU 2686 Matrix||HDU 3376 Matrix Again (拆点费用流)

大意:从(0.0)到(n-1,n-1)然后再返回起点,并且每个点只能走一次(从左上到右下走每次只能选右下方的路来走,同理右下到左上选走上的点来走),求最大点权值。思路:针对这一个来回的过程,发现起终两个点走两次,所以流量为2,每点走一次所以可以拆点i'点连接j点这样的话可以保证返回的时候拆的点之间的流量为0,因此不能通过。最后设置一个源点,一个会点,流量也为2即可。(注意:1、数组 2

2016-05-24 10:16:44 392

原创 HDU 5700 区间交 百度之星题解 round2B (set+vector)

小A有一个含有n个非负整数的数列与m个区间。每个区间可以表示为[l,r] 它想选择其中k个区间, 使得这些区间的交的那些位置所对应的数的和最大。 例如样例中,选择[2,5]与[4,5]两个区间就可以啦。Sample Input5 2 31 2 3 4 64 52 51 4 Sample Output10思路:

2016-05-23 14:52:11 652

原创 百度之星 初赛2 瞬间转移 HDU 5698 (组合数+逆元)

大意:有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右下方格子,并瞬移过去(如从下图中的红色格子能直接瞬移到蓝色格子),求到第n行第m列的格子有几种方案,答案对1000000007取模思路:每次都是向右下角走,然后就是S                         1  1   1   1      1   1  2   3   4

2016-05-22 20:46:37 427

原创 HDU 5701 中位数计数 &&HDU 4908 Sequence &&百度之星 1006

中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数。现在有n个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位。思路:我们可以以当前的数为出发点然后先向前枚举,如果比当前数小,则cnt--,若大则cnt++,然后计数器++;再统计当前数后边的  ,和上一步类似的cnt--||++,最后统计区间的个数。

2016-05-22 20:21:00 444

原创 HDU 1853 Cyclic Tour (最小费用最大流+环的判断)

题目大意:找出图中所有的环并且计算他们的最小环的权值和。思路:我们可有用费用流的最终流量和图中点数相比较,如果流量==点数,直接输出费用即可。#include#include#include#include#include#include#include#include#define LL int#define inf 0x3f3f3f3f#de

2016-05-21 21:27:10 418

原创 PAT L3-001. 凑零钱(背包&路径记录)

韩梅梅喜欢满宇宙到处逛街。现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债。韩梅梅手边有104枚来自各个星球的硬币,需要请你帮她盘算一下,是否可能精确凑出要付的款额。输入样例1:8 95 9 8 7 2 3 4 1输出样例1:1 3 5输入样例2:4 87 2 4 3输出样例2:No So

2016-05-20 11:30:18 2146

原创 PAT L2-007. 家庭房产(并查集)

给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 … 孩子k 房产套数 总面积其中 编号 是每个人独有的一个4位数的编号;父 和 母 分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1);k(0<=k<=5)是该人的子女的个数

2016-05-20 10:29:38 1266

原创 PAT L2-007. 家庭房产 (并查集)

#include #include#include#include#include#include#pragma comment(linker, "/STACK:102400000,102400000")using namespace std;struct node{    int id,fid,mid,ch;    int num[6],dor;

2016-05-17 17:51:17 986

原创 PAT L2-005. 集合相似度(哈希+map)

给定两个整数集合,它们的相似度定义为:Nc/Nt*100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式: 输入第一行给出一个正整数N(4),是集合中元素的个数;然后跟M个[0, 109]区间内的整数。之后一行给出一个正整数K(输出格式: 对每一对需要计算的集合,在一

2016-05-17 17:31:03 883

原创 PAT L2-006. 树的遍历

#include#include#includeusing namespace std;char pre[100],mid[100],post[100];int s;int solo(int k,char *mid,char *post){if(kreturn 0;pre[s++]=post[k-1];char *p=strchr(mid,post[k-

2016-05-16 23:04:32 1921

原创 PAT L2-2 链表去重

输入格式: 输入第一行包含链表第一个结点的地址、以及结点个数N(5 的正整数)。结点地址是一个非负的5位整数,NULL指针用-1表示。随后N行,每行按下列格式给出一个结点的信息:Address Key Next其中Address是结点的地址,Key是绝对值不超过104的整数,Next是下一个结点的地址。输出格式: 首先输出去重后的链表,然后输出被删除结点组成的链

2016-05-14 17:06:43 909

原创 PAT L2-1 紧急救援 (SPFA + 多条最短路)

大意: 输入第一行给出4个正整数N、M、S、D,其中N(2第一行输出不同的最短路径的条数和能够召集的最多的救援队数量。第二行输出从S到D的路径中经过的城市编号。数字间以空格分隔,输出首尾不能有多余空格。思路:主要是怎么判断多条最短路的问题,刚开始想的是在if(dis[v]== dis[u]+q[i].w)的时候并且v==d的时候最短路条数++,但是这么想来不能保证这就是

2016-05-14 15:57:10 1400

原创 PAT 沙漏

#include #include#include#includeusing namespace std;int arr[50],num[50];char str[10];int main(){ int n,m,i,j,k,ans; k = 1; ans = 0 ; for(i = 1;i <= 50;++ i){ arr[i] = k;

2016-05-12 17:49:09 425

原创 HDU 3072 Intelligence System (强连通+(贪心||树形图))

大意:在一个联通分量里面的边权值忽略不计,求缩点后的所有联通分量链接在一起的最小权值和。思路:必然先缩点,最后得到的图为DAG,然后就是统计权值,对于那么到达当前的缩点可能有多个入度,所以选择最小的即可。最后避开起始点的dis[star] == inf.累加即可。#include#include#include#include#include#include#i

2016-05-11 10:49:25 2827

原创 HDU 2767 Proving Equivalences (强联通)

大意:至少加几条边让图联通。思路:让图联通的话肯定会与度数有关。所以找到入出度最大的补上即可。#include#include#includeusing namespace std;const int VM=21010;const int EM=51010;const int INF=0x3f3f3f3f;struct node{ int to ,

2016-05-10 18:04:25 750

原创 HDU 迷宫城堡 1269 (强连通图判定)

大意:问图中是不是所有两点都是任意可达的,i到j,同样j也要到达i.就是缩成一个点即可,所以只需要判断scc是不是1即可。不需要找麻烦看度数。#include#include#include#include#include#include#include#include#define LL int#define inf 0x3f3f3f3f#define eps

2016-05-09 18:14:08 874

原创 HDU 2553 N皇后问题 (DFS+回溯)

大意:n皇后在n*n的棋盘上,要任意两皇后不能同行列并且在与x成45度的地方也不能有皇后。思路:主要是判断与对角线平行的地方的皇后是否有冲突,我们可以用一个mp【】数组下标为行值为列。两mp[]值是否相等||mp[X]-X==mp[Y]-Y||mp[X]+X==mp[Y]+Y#include#include#include#include#include#incl

2016-05-09 15:36:42 434

原创 HDU 3394 Railway (点双联通+圈内判边数)

大意:给定M条边,问有有多少边是不在环上(或环内)的,有多少边是有冲突的(什么是冲突?即在一个环内有多条边将环分割开,即这样的边+上环上边的总数)思路:求桥的个数比较容易处理,直接(low[v]>dfn[u]即可)主要是怎么找冲突边,我们知道他们一定在一个联通分量内,所以我们将求出的 一组联通分量拿出来,进行遍历看是否所有的连的边在当前的栈中,在的话边数++,因为是无向图,所以最后要除

2016-05-09 14:09:09 763

原创 HDU 5242 Game (树上贪心|类 树链剖分)

大意:有向图给定n-1条边然后给出每个点的权值,每个点的权值只能累加一次,问从根节点走,可以走k次能累计的最大点权和。思路:本题可以进行两遍dfs操作,第一次为从叶子节点到跟节点的节点权值和。然后根据权值排序,然后根据排序后的下标,来进行第二遍dfs搜索即从当前到根节点的和。输出前k大值即可。#include #include#include#define inf

2016-05-08 21:16:26 761

原创 POJ 2942 Knights of the Round Table(点双联通+二分图+染色)

大意:m个关系的人之间不能再圆桌上坐在相邻的位置上。并且人数为奇数,问至少踢出多少人能够开会。思路:因为人是围着圆桌坐,所以每人的度肯定是2,即度为1和0(单独一人)的都要被踢除。那么可以抽象为点的双联通。在出现桥的时候(即度数为1)将该联通块的人都统计下来,判断是不是奇环(二分染色)(PS:说明为啥不能直接统计个数判断奇环呢?既然是点的双联通那么一定是环,是不是能够直接判断当前的人数

2016-05-07 21:15:10 760

原创 HDU 4738 Caocao's Bridges(双联通分量+并查集)

大意:有n座岛和m条桥,每条桥上有w个兵守着,现在要派不少于守桥的士兵数的人去炸桥,只能炸一条桥,使得这n座岛不连通,求最少要派多少人去。思路:我们就是要缩点后直接求桥上人的最少数量。(PS:1、注意图如果不联通直接输出0。2、如果图中的桥上人为0,个那么要让一个人去。3、重边的问题。这里可以忽略)#include#include#include#include#i

2016-05-06 21:14:14 776

原创 SDUT 2604 Thrall’s Dream (单连通的判断)

大意:给定一些有向图间的关系问任意两点是不是可达的。思路:Tarjan后直接看入度和出度为0的数量关系,如果大于1则肯定是不可能,相连通的。#include#include#include#include#include#include#include#include#define LL int#define inf 0x3f3f3f3f#define

2016-05-06 17:59:08 806

原创 POJ 3352 Road Construction&& POJ 3177 Redundant Paths 双联通分量

大意:给定n点,和m条边的关系图中的一些边随时可能施工导致不能够通过,所以至少加多少条边才能够使得途中任意两条边联通?思路:很明显只要图中的任意两点都是两条边来链接即可。那么我们可以先缩点构建新图,然后统计出度为1的点的个数ans,那么需要加的边数就是(ans+1)/2条;#include#include#include#include#include#inclu

2016-05-06 14:53:53 626

原创 POJ2186 Popular Cows (强连通缩点)

大意:给定n头牛,牛之间为有向的羡慕关系并且关系可以传递,问最后有多少个牛被所有的牛羡慕。思路:羡慕的关系链或者环都可以进行缩点,使得图抽象DAG(有向无环图)。每个节点就是一个联通分量,我们统计每个联通分量的出度,当出度为0的连通分量数目大于1时就表明不是所以牛都羡慕其中的一头牛,结果为0。否则,我们直接找到最后缩点后的图中有多少个点就是最终的结果。#in

2016-05-04 18:02:54 413

原创 储备

POJ2186 Popular Cows

2016-05-03 17:35:08 305

原创 SDUT 2168 Mathmen(贪心)

大意:一个数轴上有n点,然后m行,为m个船的行驶距离和耗费。问能不能经过所有的点。 思路:判断大于等于当前的两岛间的距离,的最小的距离就是最优的。   #include #include #define LL long long using namespace std; LL arr[1000010],dis[1000010];

2016-05-02 23:13:23 339

原创 SDUT 2604 Thrall’s Dream (bfs||单连通)

大意:给定一些点间的关系,问任意两点都是联通的(有向图) 思路:1、bfs搜索搜n次,每次从一个节点开始,然后遍历于此节点关联的,然后再遍历其孙子、重孙节点等于当前节点做标记。之后暴力找没有联通的就是任意两点不能联通。            2、图论书上的单连通模板。 #include#include#include#include#include#include#

2016-05-01 20:50:25 547

orecal考试试题

Orecal的JAVA证书考试原题,需要的同志建议看一下!!

2018-11-03

rar密码破解

密码破解

2017-06-23

根据浏览器宽度调整布局

根据浏览器宽度调整布局

2016-04-13

压缩录频软件

录频软件,简单易操作,画质较好,方便快捷

2015-12-29

空空如也

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

TA关注的人

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