自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UVA 10123 No Tipping

UVA-10123题意:给出双支点天平和上面的若干个物块的重量、位置。求一个取出方案,使得取的过程保持平衡。 解题思路:可以反过来想,拿起来要平衡,和放下去平衡是一样的。首先可以确定,两个支点中间的物品只会增加稳定性,不会破坏平衡,所以两个支点之间的物品直接就放上去。其他的物品分为左边和右边,分别根据几何力距从小到大排序(先放小的,可以想一下,如果小的下去都破坏平衡了,肯定要放另外一边的。)然后就

2016-08-12 11:10:04 534

原创 UVA 208 Firetruck

UVA-208题意:给出一张图,求从1到n的路径方案。 解题思路:这题有点坑。首先n不一定是最大节点。可能n只有4,但是中间点下标是9,8,7。然后样例的输出格式坑人,实际上是1 2 3 4这样两个之间有一个空格,不是它样例看起来的5场宽。输出顺序是字典序从小到大,这么我们要序号从小到大开始DFS。这里又有一个问题,题目中会给出一些路径,很深很复杂,但是到不了n,在这里卡爆时间。处理方法是判断这个

2016-08-12 10:03:40 386

原创 UVA 193 Graph Coloring

UVA-193题意:给出n个点m条边,每条边不允许两端都染色。求最多可以染色多少个点,这些点是哪些。 解题思路:从第一个点开始枚举染或不染,染的条件是它相连的点都未染色。暴力DFS。/************************************************************************* > File Name: UVA-193.cpp >

2016-08-12 09:48:57 309

原创 UVA 140 Bandwidth

UVA-140题意:A:BC表示A和BC有连接。给出若干个类似提示,求给出的所有字母的一个序列,这个序列使得有连接2个字母之间的差值的最大值最小,若存在多个,取字典序最小的。 解题思路:要对所有字母判断是否是新的,新的要存起来。其实就是求全排列,然后求出距离差的最大值,看看是否比ans小。小就替换来。然后next_permutation是真的好用。/************************

2016-08-12 09:34:53 291

原创 UVA 10001 Garden of Eden

UVA-10001题意: 题目我也看了好久才看懂,参看http://www.cnblogs.com/staginner/archive/2011/09/07/2169351.html的解释,想了好久。 大概意思是题目给的那个表格的前3列是固定的,但是它们得到的new state是根据Automaton Identfier的01串在第i位的值来决定的。 如题目中Automaton Identfi

2016-07-27 21:45:20 343

原创 UVA 167 The Sultan's Successors

UVA-167题意:八皇后问题升级版,在有值的8×8矩阵上放置八皇后,求最大值。 解题思路:八皇后问题,多一个记录总和sum,取最大值。/************************************************************************* > File Name: UVA-167.cpp > Author: Narsh >

2016-07-27 21:28:08 325

原创 UVA 165 Stamps

UVA-165题意:有h个贴邮票的位置和k种面值。求怎么安排邮票的面值,使得可以贴出的连续的面值最大。 解题思路:第一个tempval[1]肯定是1。不然你1都弄不出来。之后的每个数的枚举范围 tempval[i-1]+1 到 tempval[i-1]*h+1。tempval[i-1]+1很明显,如果你比前面的小,就每意义了。顶为什么是tempval[i-1]*h+1,因为你可以用前i-1个拼出t

2016-07-27 21:09:34 382

原创 UVA 10012 How Big Is It?

UVA-10012题意:给出一堆圆的半径,求要用多长的矩形能把框住。 解题思路:枚举球的排列顺序(next_permutation大法好),然后判断球的圆心的位置应该在哪里。temp[x]表示圆心的位置,temp是和之前所有的圆求圆心位置中取最大值的那个(可能两个很大的圆中间有一堆小的,只和前一个计算圆心位置不够)。 怎么通过一直圆求新圆的圆心位置:r1,r1 d=r1+r2, t=abs

2016-07-27 21:01:19 345

原创 UVA 331 Mapping the Swaps

UVA-331题意:给出的数据只能相邻2个交换,求经最少次交换使得序列为递增序列的交换方法有多少个。 解题思路:只能相邻两个交换要换到递增顺序的次数是整个串中逆序对的个数 cnt。DFS暴力模拟交换,交换cnt次后,如果序列是递增的,ans++.。最后输出ans。/*******************************************************************

2016-07-27 20:50:39 334

原创 UVA 10344 23 out of 5

UVA-10344题意:求(((((a1 o a2) o a3)o a4 )o a5),其中o的选择范围{+,- ,*},a1-a5由给定的5个数中任意顺序。看能不能使得结果为23。 解题思路:先枚举a1-a5的顺序(STL 里的 next_permutation 简直强大),然后再枚举每个o选+-*中的哪一个。/******************************************

2016-07-27 20:46:27 322

原创 UVA 301 Transportation

UVA-301题意:给出车量承载人数,城市数,订单数,以及每个订单的起始城市,终点城市和人数。城市的到达顺序0->1->2->……>n,每个人每坐到下一个城市需要1个花费,求车子最多能获得多少钱。 解题思路:枚举每个订单接不接,起始站的num[star]+= order_number[i]; 终点站 num[end]-=order_number[i]。然后从0开始一路累加num[i],到城市i,前

2016-07-27 20:42:00 333

原创 UVA 539 The Settlers of Catan

UVA-539题意:每条边只能走一次,求最多能走过多少条边。 解题思路:枚举一个顶点进入dfs,dfs中找还能走的边进行尝试,不知道两个城市之间是否存在多条边,但是记录总数和边走过的次数来控制就不用担心了。记录走的最大边数。最后输出。/************************************************************************* > Fi

2016-07-27 20:34:29 309

原创 UVA 639 Don't Get Rooked

UVA-639题意:给出一个地图,x为障碍物。可以放置一些喷火器(?),可以攻击和它同行同列的东西,攻击会被x障碍物阻隔。求在这个地图上可以放多少个喷火器。 解题思路:因为地图很小,暴力枚举每个点能不能放,放下去之后对它所在的行列的可攻击范围内的计数的pd[i][j]++。只有pd[i][j]==0 的点才可以放。/*****************************************

2016-07-27 20:29:12 245

转载 UVA 216 Getting in Line

UVA-216题意:给出若干个点,只能用一条线连接,求最小费用(?反正是距离+16.0)。 解题思路:深搜暴力枚举第i个连接的点,计算下总和。注意下输出。漏了一个 . 我WA了2次。/************************************************************************* > File Name: UVA-216.cpp >

2016-07-27 20:23:52 351

原创 UVA 110 Meta-Loopless Sorts

UVA-110题意:给出pascal的写法,然后问你一个n个数的排序,只用if,要怎么比较出来。然后要用pascal的写法写输出出来。 解题思路:学过pascal,好久没有用了,本来是一个美好的回忆,却被这题无情摧毁了。 言归正传。很明显每次只是对两个数进行比较,很容易想到DFS逐一控制输出。难度还好,就是第一次遇到这种题有点懵。注意每深入一次DFS前面的空格数会+2。/************

2016-07-26 21:35:13 374

原创 UVA 729 The Hamming Distance Problem

UVA-729题意:balabala了一堆,其实就是求n位01串中有 h 个1的所有序列。 解题思路:STL中有一个求字符串字典序下一个字符的函数。next_permutation(c,c+n)。第一个是起始位置,后一个是结束位置。类似sort。然后只要把第一个(n-h个)0+ (h个)1的串弄出来。就好了。。/*******************************************

2016-07-26 21:24:13 324

原创 UVA 10098 Generating Fast

UVA-10098题意:给出一串字母,求它的全排列。 解题思路:一开始傻傻的直接排序完DFS求全排列WA了。看了题解发现是存在重复字母的,这样去dfs就会出现aabc 这种字符串的全排列中aabc会出现2次。所以要判断重复。要怎么判断呢,DFS做出来的全排列是按字典序来的,那么会重复的两个一定是相邻的,所只要和最后一次生成的答案比较就好了。/****************************

2016-07-26 21:16:41 345

原创 UVA 146 ID Codes

UVA-146题意:给出一个字符串,求它按字典序的下一个串。 解题思路:从后往前找到第一个不满足s[i] >= s[i+1]的位置,用i+1到end中比s[i]大的中最小的那个替换s[i],剩下的i+1到end的字母从小到大排序。/************************************************************************* > File

2016-07-26 21:08:52 284

原创 UVA 131 The Psychic Poker Player

UVA-131题意:给出 5 张手牌和 5 张备用牌。可以任意丢弃手上的 k 张牌,并从备用牌上方抽 k 张补充。求手上能达到的最大牌面。 解题思路: 首先要搞清楚牌面的大小顺序。 同花顺(AKQJ10,花色相同就行)>四条(四张相同的牌,炸弹 = =) > 福尔豪斯 (aaabb的牌型) > 同花(5张花色相同) > 顺子 (连续,无视花色。A可以当1也可以当14)> 三条 (aaabc

2016-07-26 21:02:25 488

原创 CodeForces 560A Currency System in Geraldion

CodeForces 560A题意:给出n个数字,求它组成的货币系统会不会存在无法用给出n个面值凑出来,存在输出第一个无法凑出的数,不存在输出-1。 解题思路:。。。只要有1,都能凑出来,没有1,肯定从1就缺了。/************************************************************************* > File Name: 07

2016-07-23 16:17:02 678

原创 HDU 5319 Painter

HDU-5319题意:画家每次只会画\ 或 /,并且用 R 画\ 用B 画/。如果一个点被BR都涂过,就会变成G。给出一张被画完的图,求它被画了几下。 解题思路:遇到B或G时判断它右上角是不是B或者G,如果都不是就代表要从这个点开始画一笔。R或G时判断左上角。/********************************************************************

2016-07-23 16:13:33 328

原创 UVA 1149 Bin Packing

UVA-1149题意:给出n个物品和箱子长度 l,每个箱子最多装2个,求要用几个箱子装完这些东西。 解题思路:先排序,然后从大的一边取,取到不能取了,换小的一边取取。注意控制次数,一共就取2个。/************************************************************************* > File Name: 0722d.cpp

2016-07-23 16:09:11 281

原创 CodeForces 560C Gerald's Hexagon

CodeForces 560C题意:给出六边形的6个边长,求其中有多少个1×1×1的小正三角形。 解题思路:最简单做法是把它补成大的三角形,然后减去三个小三角形。 我是把它分解成上中下三个部分,上下为梯形,个数为 (上底+下底)×侧长 ,若梯形的左右长度不同时还会有中间部分,个数为 下底×左右侧长度差×2。/********************************************

2016-07-23 16:05:24 364

原创 CodeForces 560B Gerald is into Art

CodeForces 560B题意:给出边框大小和两幅画,问能不能把两幅画放进去。画可以旋转。 解题思路:两幅画要放进去,无外乎就是左右和上下两种方式,然后旋转画看看是否存在一种可行放法。/************************************************************************* > File Name: 0722b.cpp

2016-07-23 16:00:40 442

原创 UVALive 3266 Tian Ji -- The Horse Racing

UVALive-3266题意:田忌赛马的背景,分别给出田忌和齐王的N匹马,赢的一方获得200,输的一方失去200,求田忌的最大获利。 解题思路: 1、如果田忌的最好的马比齐王最好的马好,就用最好的马和齐王最好的马比,赢200。 2、如果田忌的最差的马比齐王最差的马好,就用最差的马和齐王最差的马比,赢200。 3、都不成立,就用最差的马去和齐王最好的马比,输200。 = =。就是这个规则去

2016-07-23 15:55:41 245

原创 UVA 11205 The broken pedometer

UVA-11205题意:给出n个p位的2进制串,求最少保留多少位可以区分这些2进制串。 解题思路:枚举子集。1 -> 2^p 中的每个数字用二进制表示都是一种子集的获取方式。把2进制串转成10进制,用 & 运算的取保留下的值,判断是否都不一样,都不一样计算位数,取最小的一个。/*************************************************************

2016-07-23 15:43:47 286

原创 UVA 10167 Birthday Cake

UVA-10167题意:给出2N 个点,求AB为多少时,Ax+By=0 把点分成相等的两部分。 解题思路:暴力枚举,把点带入直线方程,大于0的是一边,小于0的是另外一边。/************************************************************************* > File Name: UVA-10167.cpp > Aut

2016-07-23 15:39:14 366

原创 UVA 196 Spreadsheet

UVA-196题意:给出一个N*M的矩阵,里面只有整数和公式两种内容。公式要通过它给出来的公式计算出这格的整数值。保证不会存在相互需要调用的情况。 解题思路:记忆化搜索。如果进来的格子算过了,直接返回计算后的值。否则的话,是数字就换算出来,然后返回。是公式把字母和数字分别求出来,把对应的内容加进去。/*************************************************

2016-07-23 15:31:49 353

原创 UVA 10305 Ordering Tasks

UVA-10305题意:给出一些任务,有些任务是需要其他任务完成后才能进行的。保证不会存在需要相互需要作为前提的情况,求完成任务的顺序。 解题思路:a是b的前提任务,则b入度加一,a多一条指向b的边,然后拓扑一下就好了。/************************************************************************* > File Name

2016-07-23 15:20:06 249

原创 UVA 10596 Morning Walk

UVA-10596题意:给出若干个路径,求能不能每个路径走一遍,最后回到出发点。 解题思路:判断欧拉回路,要判断图是否联通。 有个坑点 如果全部都是1 1这样指向自己的其实是没有路的。/************************************************************************* > File Name: UVA-10596.cpp

2016-07-23 15:14:41 270

原创 UVA 10054 The Necklace

UVA-10054题意:给出若干个珠子,每个珠子两端都有颜色,两个珠子相同颜色的一端可以接在一起,问给出的能不能串成一个项链。 解题思路:能不能串成一串,明显又是欧拉回路。所有点的度都要为偶数。是欧拉回路的条件下,DFS遍历输出。/************************************************************************* > File

2016-07-23 15:08:59 305

原创 UVA 10129 Play on Words

UVA-10129题意:给出堆单词,然后问是否能通过一定的排列,除了第一个的首字母和最后一个的尾字母外,其余的首字母等于前一个的尾字母。 解题思路:每个单词其实只有首字母和尾字母有用,整个可以转换成一张最多由26字母组成的有向图,求能不能一笔画成。没错,离散刚刚学过的欧拉图。因为是有向图,所以要能成欧拉图的条件为全部入度=出度或者刚好一个入度=出度+1 并且 一个出度=入度+1。然后要判断给出来的

2016-07-22 10:13:17 291

原创 UVA 10004 Bicoloring

UVA-10004题意:给出m条边,求这个图能不能用2个颜色染色这个图。 解题思路:找到一个未染色的点进行染色,然后进行BFS,相邻的点未染色就染成和它相反的颜色,如果已经染色,就判断颜色是否不一样,如果出现一样,则代表整个图染色失败。图可能存在多个联通块,所以要找到一个未染色的就BFS。/******************************************************

2016-07-22 10:02:29 289

原创 UVA 10047 The Monocycle

UVA-10047题意:独轮车有5个颜色,每一秒独轮车可以向前移动(面朝的方向移动一格)或者原地转90度(左右都行)。初始是绿色朝下,面向北面,初始位置为S。要求用多少秒能到达T并且还是绿色朝下。 解题思路:BFS,只不过除了常规的坐标XY之外多了方向D和颜色C。vis[x][y][d][c]。操作就是向前走一格以及左右旋转。假设初始5个颜色为01234,下一个颜色就是(c+1)%5。方向预设好移

2016-07-22 09:54:34 247

原创 UVA 10557 XYZZY(DFS+BFS 与 SPFA 两种做法)

UVA-10557题意:初始有100点能量,每经过一个房间会加上那个房间的能量,能量小于0就不能动了,给出每个房间的能量和它能到的若干个房间的房间号,求最后能不能到达第n个房间。 解题思路1: 看题解看到的,用DFS+BFS来做。 我们可以发现,如果存在一个正权环(一圈走下来值会增加),那么就可以在这里刷到足够多的能量再往终点走,所以发现一个正权环(DFS),我们只要判断环上的点有没有到n的路

2016-07-22 09:40:12 710

原创 UVA 532 Dungeon Master

UVA-532题意:给出一个有L层,每层为R×C的三位空间,S为初始位置,E为出口,求S到E的最短时间 。 解题思路:= =。三维上的bfs,其实和矩阵上的bfs没什么差别,把每层的矩阵读进来,bfs一下就好了。/************************************************************************* > File Name: UV

2016-07-20 20:08:34 252

原创 UVA 439 Knight Moves

UVA-439题意:给出两个坐标,求骑士从从第一个条到第一个坐标跳(中国象棋中马的走法)到第二个坐标要走多少步。 解题思路:一般遇到求最少步骤的就会先想到bfs。简单的广搜题目。/************************************************************************* > File Name: UVA-439.cpp > A

2016-07-20 20:04:09 270

原创 UVA 705 Slash Maze

UVA-705题意:用/ \给出一个斜着的矩阵,求里面封闭环的个数和最大长度。 解题思路:一开始一脸懵逼系列,非常规的给矩阵方式。一开始想着难道要旋转?不过发现自己不会而且就算旋转完了,还是一脸懵逼。就想着会不会是放大/\,通过其他方式,用2×2,走法有点麻烦。用3×3来做就好了,每次走上下左右,走的距离会是直接/\的三倍。 怎么转换: / 可以把它想象成在像素中,就可以用3×3的矩阵来放。

2016-07-20 20:00:18 288

原创 UVA 784 Maze Exploration

UVA-784题意:给出n个图,每个图以一行_ 结束,其中*是初始位置,X是墙壁,求人可以走到的地方,并用#替换空格,输出整个图。 解题思路:找到人物在的位置,dfs开始遍历,到的地方就改成#。/************************************************************************* > File Name: UVA-784.cpp

2016-07-20 19:50:31 324

原创 UVA 657 The die is cast

UVA-657题意:给出一个由 * . X组成的图,其中每块由*和X组成的部分是独立的一个面,每个面上由X来组成数字表示,求这个图上每个面的数字是多少,并从小到大排序。 解题思路:其实就是抓出每一个由* X组成的部分,求里面X的联通块数是多少(上下左右四个方向)。用dfs1遍历* X部分找到X,再通过dfs2 去遍历X的联通块。做法就是*的走过后标记成 . , X走过后标记成*(因为可能X组成的部

2016-07-20 19:46:40 267

空空如也

空空如也

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

TA关注的人

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