自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 poj 2912 Rochambeau(带权并查集 + 暴力)

题目:poj 2912 Rochambeau(带权并查集 + 暴力)题目大意:题目给出三个团队和一个裁判,这三个团队和裁判一起玩剪刀石头布,然后规定每个团队必须出一样的,只有裁判可以任意出。然后给出关系,x > y 代表 x 赢y , x 解题思路:这题重点是裁判在里面会扰乱关系,并且n * m 才 100000,完全可以暴力。每次假设i是裁判,然后和裁判相关的关系都忽略,

2014-04-27 22:35:38 942

原创 POJ - 1733 Parity game (带权并查集)

题目: POJ - 1733 Parity game (带权并查集)题目大意:给出n代表这个字符串长度为n,然后给m条关系表示x -- y 这样的位置中1出现的次数的奇偶性。问这样的关系中,是否有出现前k条都是符合条件的, 而第k + 1产生了矛盾,有的输出k,没有的话输出m。解题思路:这题重点弄明白一下两点:1、这题的n非常的大,以题目所给的资源是不能开这样的数组的,然而这题

2014-04-27 22:18:15 640

原创 uva 10012 - How Big Is It?(排列 + 回溯)

题目:uva 10012 - How Big Is It?题目大意:给出n个圆的半径,要求圆要和地面相切,求这样的圆怎么组合能够使得盒子的宽度最短。解题思路:这题里面情况会有两个大圆相切,然后中间夹多个小圆,这样这些小圆的距离就不用算入盒子的宽度了,这里先用排列组合的方式将这几个圆全部的组合方式排列出来,这样这些圆的前后关系就定了,但是现在就需要判断这样的情况下的盒子的宽度

2014-04-24 15:59:26 996

原创 uva 1316 - Supermarket(贪心)

题目:uva 1316 - Supermarket(贪心)题目大意:给出n间商品,分别有商品的利润和股

2014-04-23 09:15:44 977

原创 poj 2524 Ubiquitous Religions(并查集)

题目: poj 2524 Ubiquitous Religions(并查集)题目

2014-04-23 09:07:47 900

原创 poj 2492 A Bug's Life(带权并查集)

题目:poj 2492 A Bug's Life(带权并查集)题目大意:一个博士研究虫子里面是否有同性恋,给出多次虫子的交配关系。解题思路:如果这两只虫子之前没有确定关系的话,每次交配就说明这两只虫子的性别不同,这样用c【x】 = 1 代表和根不同, 0 就是相同的意思,在每次的交配关系中如果发现两只c数组值相同的虫子进行交配,就有同性恋。这题和poj1703的解题思路是一

2014-04-23 09:03:27 743

原创 poj 2236 Wireless Network(并查集)

题目:poj 2236 Wireless Network(并查集)题目大意:地震后,学校的电脑全部都坏了,然后需要修理,修理的时候还需要测试一下两台电脑之间是否可以联通,这需要这两台电脑都是好的,而且规定在距离d 之间的电脑才可以直接联通,否则就需要借助其它的点脑使这两台电脑联通也行。解题思路:将每次修理的电脑做记录,然后每次修好电脑就和其他的修好的距离合适的电脑进行连接,

2014-04-22 23:38:32 962

原创 poj 1988 Cube Stacking(带权并查集)

题目:poj 1988 Cube Stacking(带权并查集)题目大意:给出n个方块,然后执行操作, M x y 就是将这个x那一堆 移到 y的上方。然后c X 就是问x下方有对少方块。解题思路:根节点记录下它的下方有多少个方块,然后这个集合里的每个方块都有权值,代表这个方块距离根之间有多少的方块。这样查讯到这个节点的时候就只要将根节点的个数减去权值 就得到答案 ( +

2014-04-22 23:25:45 891

原创 poj 1703 Find them, Catch them(带权并查集)

题目: poj 1703 Find them, Catch them(带权并查集)题目大意:题目已知有两个帮派,D x y 代表这两个属于不同的帮派,A  X Y 是询问X Y 属于相同还是不同还是不确定的帮派。解题思路:这题要用到带权并查集,例如 c【x】= 1 的话就说明他与根是不属于同一个帮派的,0就反之。 每次给出一个D X Y 的话就需要把 c【q】 = ( c[

2014-04-22 23:13:39 856

原创 poj 1611 The Suspects(并查集)

题目:poj 1611 The Suspects(并查集)题目大意:现在0好

2014-04-22 23:03:53 625

原创 poj 1308 Is It A Tree?(并查集)

题目: poj 1308 Is It A Tree?(并查集)

2014-04-22 22:55:53 565

原创 poj 1182 食物链(带权并查集)

题目:poj 1182 食物链(带权并查集)中文题目

2014-04-22 22:48:31 529

原创 poj 4586 Play the Dice(数论)

题目:poj 4586 Play the Dice题

2014-04-17 16:49:04 562

原创 poj 4588 Count The Carries(数论)

题目:poj Count The Carries题目大意:给出x - y,问x一直加到y,二进制的加法,总共进了多少次位。解题思路:这题需要想到从x加到y,这里的二进制数的每一位有周期性的变化,例如:从1 - 3(十进制)(00,01,10,11),这里的最后一位就是0、1、0、1。而第二位是0、0、1、1。可以发现最后一位是以两个为一周期,往前一位是以4个为一周期,这样第

2014-04-17 16:27:45 743

原创 poj 1740 A New Stone Game(博弈)

poj 1740 A New Stone Game题目大意:两个人玩拔旗游戏,给出n堆旗子,每个人都可以操作这些旗子,但是每个人每次操作都必须拔掉一个旗子,然后也可以把这堆里的其他旗子分配给别的堆,当某一堆旗子已经被拔光了,就不可以再往里面放旗子了。当某个人没法对旗子进行操作时,这个人就输了。判断一下先手能赢吗?解题思路:如果只有一堆旗子的话,第一个操作的人就可以将旗子拔光

2014-04-17 15:55:52 745

原创 UVA - 10608-Friends(并查集)

题目:UVA - 10608-Friends题目大意:给定n个人,和m个关系,m个关系代表谁和谁认识之类的,求这样的关系中,朋友圈人数最多的人数。解题思路:这题用并查集来判断这两个人是否属于同一个朋友圈,刚开始每个人自己形成一个朋友圈,所以朋友圈人数为1,然后每碰到一个关系就判断这两个人是否属于同一个朋友圈,如果不是,就把其中一个的f【t】(t为这个圈子的根)改为另一个朋友

2014-04-13 19:58:33 780

原创 uva208Firetruck(并查集 + DFS)

题目:Firetruck题目大意:给出终点,起点的编码永远都是1,问有多少走法可以从起点到终点,并输出路径。解题思路:这题就是用dfs,但是如果不进行剪枝的话,21个城市这样dfs的话会超时,所以这里就用并查集来判断起点和终点是否相通,这里的判断方法是给两个数组用来代表每个数组的父节点,一个是用来判断是否与起点相同,另一个是用来判断与终点是否相通,相通即在同一个集合中。

2014-04-13 19:43:49 1814 6

原创 10001 - Garden of Eden(dfs)

题目:10001 - Garden of Eden题目大意:题目给出元胞自动机的种类,和要处理的元胞长度,和元胞字符串,问这个元胞是否可以由其他的元胞转换而来,是的话输出REACHABLE,否则输出GARDEN OF EDEN。这题最让人困惑的就是题意了,去搜别人的解题报告看题意结果还是看不懂,最后只能结合代码来理解题意。所以以下是我结合代码理解的题意,可能和题目原本的意思有些

2014-04-12 10:44:35 1015

原创 216 - Getting in Line(dfs)

题目:216 - Getting in Line题目大意:给出一系列的点的坐标,怎样把这些点串起来达到长度之和最小。解题思路:这题就是dfs,然后就是记录哪个点串哪个点,这两个点长度多少的问题。#include #include #include const int N = 10;int n, vis[N], dis[N], tem[N];float min

2014-04-11 14:12:26 822

原创 301 - Transportation(dfs)

题目:301 - Transportation题目大意:给出车的限载人数,n个b城市,和m张订单,问如何选择订单可以使得盈利最大。 盈利 = 各个订单的金额之和 每个订单金额 = 路径 * 人数 ,每个图都有A城市。解题思路:这题用dfs,每张订单可以选也可以不选,选择的话又的分能不能选,要在限定的数目内才可以接受订单。还有订单要排序,因为车始终是从A到B,这样的话当然是起点越小的

2014-04-11 09:11:15 724

原创 10344 - 23 out of 5

题目:10344 - 23 out of 5题目大意:给出五个数,问能否通过上述的公式就是包含加减乘来产生23.解题思路:生成五个数所有的排列,然后再dfs()加减乘,判断是否能达到23,可以直接退出,不能的话就继续dfs。注意:stl里面给的next_permutation()是需要数组s本身有序这个前提的,否则生成的排序会不全。#include#inclu

2014-04-09 10:48:06 732

原创 165 - Stamps(dfs)

题目;165 - Stamps题目大意:给出h,h代表每份文档最多可以贴的邮票数目,k代表供选择的邮票种类。求由这两个条件下可以得到邮票面值最大值。这个最大值是指连续的最大值,就是如果7是最大值,就说明1-7连续都是可以产生的,而八不可以。解题思路:这题就是搜索,但是遇到了枚举邮票的面值上限的问题,一开始只考虑了到了最后一张邮票,结果就超时了,考虑的不够周到。后来看了别人的题解

2014-04-06 18:27:35 752

原创 331 - Mapping the Swaps(回溯+ dfs)

题目:331 - Mapping the Swaps题目大意:给出一个序列,要求只能相邻的进行交换,求交换次数最少的不同的交换方式有多少种。解题思路:每次都可以从头选两个需要交换的位置进行交换,(只有前一个的值大于后一个的值才需要交换),选的第一个交换的数的位置不一样,所对应的map也是不一样的。然后这里有可以剪枝的地方:如果在交换的过程中交换的次数已经大于之前的最小的交换次数就可

2014-04-06 13:27:23 797

原创 140 - Bandwidth(排列(带宽问题))

题目:140 - Bandwidth题目大意:给出一些点,点和点之间是否相连,求这些点怎么排列可以使的所有点形成的图的带宽最小。如果有多种情况按照字典序输出。图的带宽指的是点的带宽的最大值,点的带宽指的是,所有和这个点联通的其他的点到这个点的距离的最大值。解题思路:转换成全排列问题。将这里点和点的联通关系存放在邻接表中,注意这里的边是无向的就说明点和点之间的连通关系是双向的

2014-04-06 09:05:44 1165

原创 167 - The Sultan's Successors(八皇后问题(回溯))

题目167 - The Sultan's Successors题目大意:就是八皇后的问题,只是加上求八个皇后所对应的位置对应的值相加的最大值。阶梯思路:八皇后问题转换成全排列问题,C【i】 = j 表示第i行 的皇后在第j列,这样排列的话每行的皇后不会互相冲突,就需要判断每列的皇后和两条对角线是否有冲突的皇后,所以这需要开一个数组vis【3】【MAXN】, 每次判断vis【

2014-04-04 18:44:40 1139

原创 639 - Don't Get Rooked(搜索回溯)

题目:639 - Don't Get Rooked题目大意:在给定的棋盘中,看最多可以放多少个棋子。放棋子规则:同一行同一列不可以有两个以上的棋子,除非中间有墙隔着。阶梯思路:让每个棋子从不同的起点开始,然后往后遍历,例如如果是按先行再列的顺序遍历的话,如果当前已经便利完x,y;那么下一个遍历开始的位置就是x,y+ 1.注意判断完前面的位置之后,只需要从这个位置的后面开始判

2014-04-04 09:59:14 1136

原创 10887 - Concatenation of Languages(stl set)

题目;10887 - Concatenation of Languages题目大意:给出语言A和语言B,求这两种语言拼接可以有多少不同的复合语言。阶梯思路:用set来剔除重复的,注意这里的输入要用gets(),因为语言会有空串。还有不要进行多余的,不必要的复制,会超时。#include#include#include#includeusing namespace std

2014-04-03 17:58:32 864

原创 539 - The Settlers of Catan

题目:539 - The Settlers of Catan题目大意:给出一系列的点和相应的边,求最长的路径,路径是由相连的边构成的,每个边最多被用一次。阶梯思路:回溯,每次都从一个点开始dfs,如果发现走过相同的边,就把长度记录下来,然后把状态恢复,走别的路。最后去这些路径中最长的。注意:每个点都有可能成为最长路径的起点。#include#include

2014-04-03 17:52:38 1010

原创 10125 - Sumsets

题目:10125 - Sumsets题目大意:从给出的数的集合中,找出里面某个值d,d = a + b+ c;(a,b, c也是属于这个集合)。要求求最大的d。阶梯思路:把集合里的数排序,然后d从小到大的尝试, b + c = d - a。 a的话也从做大的尝试,这样能快速找到不符合的,然后 b 和c 从两头开始判断,b取最小的,c去最大的,然后如果版 b  + c> d -

2014-04-03 09:09:30 759

原创 10391 - Compound Words(stl map)

题目:10391 - Compound Words题目大意:找出有里面出现过的两个单词组成的符合串找出来,按字典序打印。解题思路:把出现过的单词用map记录下来,然后把每个单词都分两半来考虑是否出现过,两半可以长短不一。注意:审题要仔细,这题当初就是漏了符合串是由两个单词组成的。#include#include#include#include#includeusing

2014-04-01 22:36:53 875

原创 188 - Perfect Hash

题目:188 - Perfect Hash题目大一:根据题目的算法,找出最小的C。解题思路:因为题目有说C至少要是w集合的某一个的倍数,又要找最小的,所以现在w内找个最小的,然后在根据所给的条件遍历判度所有的w是否满足要求,如果不满足就根据要求更换C,然后再次判断。#include#includeconst int N = 100000;char s[N];int wor

2014-04-01 22:25:49 1050

空空如也

空空如也

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

TA关注的人

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