自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACMer 梁剑锋 的博客

一点点的进步

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

翻译 【求最小割边集】UVA - 10480 Sabotage

Problem Description 输入n, m代表有n个点,m条边。接下来m行,每行输入u, v, w代表u到v边权w(双向)。让你求1-2最小割边集 思路: 先求最小割(也就是最大流),这时候如果是割边,就代表这条边的流量为0。所以图就被割边分开为两个图包含1的图 和 2包含2的图。找出将他们分开的割边就可以了。跑1,能走到的点都标记一下。那么输入的边的点满足一个被标记一个不被标记就

2017-09-27 20:28:26 475

翻译 【dinic && 拆点 && 最小割】HDU - 4289 Control

Problem Description 输入n, m分别代表有n个城市,m条边,输入s,e代表起点,目的点。接下来n行输入w, i行代表城市i的放置检测器所需的价值。接下来m行,输入u,v代表城市u,v之间有边相连接。有恐怖分子要从s-e问你至少需要多少价值来放检测器。 思路: 建图,然后跑dinic就可以了,核心就是建图。拆点,建边流量为点权。超级源点和起点建边,流量为无穷。目的点和超级汇

2017-09-27 19:25:42 261

翻译 【最大流 && 映射】POJ - 1087 A Plug for UNIX

Problem Description 输入n代表插排上有n个插口。接下来输入n行,每行输入一个字符串代表属于什么类型插口。 输入nn代表有nn个电器。接下来nn行,每行输入两个字符串,代表第一个字符串这个电器 可以 插到第二个字符串这种插口。 输入m代表有m种转换器,转换器个数不限,接下来输入m行,每行输入两个字符串,代表可以将第二个字符串的插口转换为第一个字符串这种插口类型。 思

2017-09-25 19:57:05 188

翻译 【最小费流 && 模板题】POJ - 2195 Going Home

Problem Description 输入n,m,给你一个n*m的矩阵m代表人,H代表房子,每个人得进去一个房子,被进去的房子不能在进。人移动一单位距离需要花费1,问你最少花费 思路: 建图,求最大流就好了,找出所有的人的坐标,找出所有的房子的坐标,每个人到所有房子建立一条边,流量为1,费用为距离。超级源点到人建边,流量为1,费用0。房子到超级汇点建边,流量1,费用0。 #include<

2017-09-25 19:45:29 264

翻译 【最小费用流】POJ - 2516 Minimum Cost

Problem Description 本人英语 语文都有点差,参考了这篇大佬博客才知道题目什么意思和样例什么意思http://blog.csdn.net/lyy289065406/article/details/6742534 思路: 我是求每个物品的最小费,然后相加。我觉得核心就是看懂样例,图还是很好建的。店铺拆点限流,流量为店铺的需求量,费用0。供应商拆点限流,流量提供的量,费用0。超

2017-09-25 19:32:43 248

翻译 【主席树入门 && 区间内第k小的数】POJ - 2104 K-th Number

Problem Description 输入n, m代表有n个元素,m个访问。接下来输入n个元素。输入m行访问,每行有三个元素l r k。问你下标l - r里面第k小的数是几? 思路: 学长讲堂blue学长很棒的给我们入了个门。自己也能手敲出来这题,也算理解这题了。主席树由n个线段树组成,每个线段树只有logn的节点,只保存存在该元素的节点。 代码:#include<cstdio> #inc

2017-09-22 11:47:22 271

翻译 【最大流 && 拆点限流】POJ - 3281 Dining

Problem Dscription 输入 n, f, d分别代表有n头牛,f种食物,d种饮料。接下来n行,每行输入F D f[1]..f[F] d[1]..d[D]。代表牛1有F种喜欢的食物,D种喜欢的饮料,分别是f[1]..f[F], d[1]..d[D]。每种食物只能给一个牛吃,每种饮料也只能给一个牛喝,意思就是给了牛A,就不能给牛B了。问你最多有多少头牛。能吃到食物同时喝到饮料?

2017-09-20 21:12:17 320

翻译 【最大流 && 输出路径】POJ - 3436 ACM Computer Factory

Problem Description 输入p, n代表一个机器由p个部件(0代表没有该部件,1代表有),n代表有n种转换方式。接下来n行每行输入,a[i], in[i][1] … in[i][p], out[i][1]…out[i][p]。例如:15 0 0 0 0 1 0,机器人身上的部件满足0 0 0可以转换成0 1 0,最大可以转换15台。问你最后产生1 1 1的机器人有几

2017-09-20 18:02:08 299

翻译 【边双连通分量 && LCA】POJ - 3694 Network

Problem Description 输入n,m分别代表有n台电脑,m条线路。接下来m行,每行u,v代表u-v之间有线路连接。输入q,代表有q次访问,每次访问输入u,v问你连接u-v后,还有几个桥 思路: LCA是用来求缩点u - 缩点v之间有多少条桥先按边双连通分量缩点,按照缩点后建图,然后以1为根,建树,求每个点的父亲和深度。接着就是求LCA,经过过的点标记一下(经过的点另外构成了边双

2017-09-19 11:35:50 387

翻译 【求最小权值割边】HDU - 4738 Caocao's Bridges

Problem Description 输入n, m代表有n个岛屿,m条边,接下来m行,u,v,w,代表岛u-岛v之间有w人。有人需要去把岛屿炸分开,只能炸一次,如果炸一次分不开输出-1。如果能炸分开,让你输出派出最少的人(排出的人数,大于等于岛屿之间的人数,才能炸开)。 思路: 很裸的求割边的题目,但是需要注意几个点。如果岛屿已经分开,输出0,如果没有割边输出-1,如果岛与岛之间没有人至少

2017-09-19 11:22:32 413

翻译 【强连通 && 最多可以加几条边使得图不为强连通图】HDU - 4635 Strongly connected

Problem Description 输入T组测试数据,每组测试数据输入n,m分别代表n个点,m条边。 接下来m行,每行u,v代表u->v有一条单向边,问你最多可以加多少条边,图不能是强连通图。 思路: 要使得图不为强连通图,那么至少得有两个缩点,这题核心就在于,将图如何分成两个缩点,使得边最多。一开始,我的思路,将图缩点,然后找到点最少的缩点。令它为一个缩点(由Min个点构成),其

2017-09-18 21:34:58 637

翻译 【边双连通 && 树的直径】HDU - 4612 Warm up

Problem Description 输入n,m代表有n个点,有m条边。有重边,这里重边指的是1-2,1-2如果出现了两次,代表1-2有两条不同的道路接下面m行,每行u,v代表u-v有一条道路(双向)。问你加一条边,最少还剩下多少个桥 思路: 树的直径参考:http://blog.csdn.net/Triple_WDF/article/details/50118115 将图按双连通分量缩点

2017-09-18 19:49:00 411

翻译 【边双连通 && 加几条边变成边双连通】POJ - 3177 Redundant Paths

Problem Description 输入n个点,m条边,边有重复,问你最少添加几条边,可以使得任意两个点,至少有两条不同的路径到达。其实就是问你最少添加几条边,使得图变成边双连通 思路: 卡了挺久的,就因为有重边,还以为是自己的代码错误。求边双连通的姿势不对。既然有重边,缩点(边双连通缩点)后 判断度得思考思考,有两种方法,一种是用邻接矩阵存边,这样重边就没事了,第二种方法就是,有桥就代

2017-09-18 11:34:08 503

翻译 【最短路 spfa && 水题】hdu-6201 transaction transaction transaction

Problem Description 你可以选择任意两个城市,在这个城市买书,另外一个城市卖书,让你求最大的利润,城市与城市之间的移动需要花费w 裸的spfa,比赛的时候,没好好想想,选择去想card那题了,所幸A出来了,原本自己能A的题目,还以为是自己不会的知识点的题目。比赛结束,圣昭一句话,瞬间懂了。思路: 既然让你求任意两点的最大利润,正常想法就是,floyd看到城市数量有点多,肯定

2017-09-11 10:25:57 691

翻译 【线段树 && 离线处理 && 维护区间规定下标的和】HDU - 4288 Coder

Problem Dscription 给你n个操作,操作分为三种,(1): add x,往集合里面添加元素x。(2): del x,从集合里面移除元素x。(3): sum 求下标mod 5 == 3的对应元素值的和。集合满足从小到大 思路: 离线处理:就是先输入完数据后在处理。线段树维护两个量,num代表该区间有几个数。sum[]代表该区间mod5==1的和,mod5==2的和,mod5==

2017-09-05 11:36:57 233

翻译 【线段树 && 扫描线 && 周长】POJ - 1177 Picture

Problem Description 给你n个矩阵,每个矩阵给你左下角和右上角的下标。让你求所有矩阵并起来后的周长。 思路: 建议先做了hdu 1542再看这题因为这题线段树维护的量没那么多。比较好入门,学习扫描线什么的。这样的话,代码也是在hdu 1542的基础上改动改动而已。线段树维护有效长度len,区间整段是否有效的cover,的基础上多了 ly, lr, num这三个分别代表该区间

2017-09-05 11:12:22 283

翻译 【线段树 && 扫描线 && 面积交】HDU - 1255 覆盖的面积

Problem Dscription 给你n个矩形,每个矩形给你左下角下标和右上角下面,让你求面积交。 思路: 参考博客:http://www.cnblogs.com/scau20110726/archive/2013/04/14/3020998.html,建议先做了hdu 1542再看这题。代码只是轻微的改动了而已。 线段树维护区间cover>=2的len2,cover>0的len,

2017-09-05 10:54:52 225

翻译 【线段树 面积并 扫描线】HDU - 1542 Atlantis

Problem Description 输入一个n,给你n个矩阵的左下角坐标,和右上角坐标。让你求所有面积并的和。 思路: 扫描线参考博客:http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html 博客是从下到上扫描,个人习惯从左到右扫描。我们左边扫描过来的有效长度设为len,那么线段树就是维护区间最长len

2017-09-05 10:41:40 259

翻译 【矩阵快速幂 && 循环节】HDU - 4291 A Short problem

Problem Description Given n (1 <= n <= 10^18), You should solve for g(g(g(n))) mod 10^9 + 7 where g(n) = 3g(n - 1) + g(n - 2) g(1) = 1 g(0) = 0 思路: 参考博客:http://blog.c

2017-09-05 10:17:03 275

翻译 【矩阵快速幂 && 状压dp】hdu-6185 Covering

Problem Description 给你一个4×N的矩阵,你可以填1×2的矩阵或者2×1的矩阵,填满有多少种方案,需要取mod。 思路 POJ - 3420 和这题可以说是一种题,但是代码使用在这题上面超时,很不能理解,后面学习了网上的做法,先找出递推关系,在矩阵快速幂,别人的速度能在1000ms以内,我的居然2000ms。有知道的大佬可以指出为什么。 //ac代码 #include<c

2017-09-05 08:48:15 254

翻译 【状压dp && 矩阵快速幂】 POJ - 3420 Quad Tiling

Problem Description 给你一个4×N的矩阵,你可以填1×2的矩阵 or 2×1的矩阵,问你填满有多少种方案,需要取mod。 思路: poj 2411的基础上加了个矩阵快速幂 #include<cstdio> #include<cstring> using namespace std; struct node { long long a[16][16]; }; nod

2017-09-05 08:40:09 231

翻译 【状态压缩dp 入门】POJ - 2411 Mondriaan's Dream

Problem Description 给你一个h,w的矩阵,你可以使用1*2或者2*1的矩阵将其填满,问你有多少种情况。 参考博客:http://blog.csdn.net/shiwei408/article/details/8821853 pre,now的二进制代表一行怎么放。核心就是枚举出所有的pre->now的情况,然后用path[]数组存起来,然后跑h行,这一行为now这种二进制,

2017-09-02 17:38:55 209

翻译 【素数 && 快速幂】UVA - 10006 Carmichael Numbers

Problem Description 输入一个数,如果这个数不是素数同时满足(x^n)%n == x其中(x > 1, x < n) 思路: 正常就x^n的次方,求n次,会超时,所以用快速幂。 #include<bits/stdc++.h> using namespace std; long long Pow(long long x, long long n, long long mod)

2017-09-01 10:31:34 190

翻译 【位运算】hdu-6186 CS Course

Problem Description 输入n,q。代表有n个数,q次访问。每次访问给你一个下标,让你除去这个下标的数后。所有数进行&, |, ^运算的结果,并输出。 思路: 一个数^0这个数还是不变的。一个数^本身,等于0。所以所有数的^在^一次除去的数。就是^的结果。&,|,这个的话,统计一下n个数的二进制0的个数,1的个数。看看他们对结果有没有影响,有影响就改变,没影响就不变。具体实现

2017-09-01 09:26:42 641

翻译 【贪心】hdu - 6188 Duizi and Shunzi

Problem Description 输入一个n,接下来有n个数,让你求出能组成最多的对子或者顺子的和。 对子: (2,2),顺子: (1,2,3)。 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6188思路: 从小跑到大。例如1,1,2,3。跑到1的时候有对子,这时候优先要对子。不然你牺牲对子去换顺子,也就是一比一,根本不会赚。例如

2017-09-01 09:03:51 1202

空空如也

空空如也

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

TA关注的人

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