自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 10098 - Generating Fast

题目:10098 - Generating Fast题目大意:输出一个字符串的全排序,按升序输出。解题思路:这和之前的两题都差不多,就是枚举排列,这里我用了next_permutation(s, s + len);原本没看到书上有提供直接调用来生成排列的函数。#include#include#includeusing namespace std;con

2014-02-27 16:25:19 590

原创 10167 - Birthday Cake(直接枚举)

题目:10167 - Birthday Cake题目大意:就是直线ax+by = 0 这条直线将所给的点平局分成两部分,不允许在线上,求这样直线的a,b;解题思路:这题可以用直接枚举,本来题意的枚举量是500*500*200,这个数会超时,但是鉴于这里枚举的值有对称的,而且一满足要求就直接退出了,不在进行枚举。所以不需要找到最后。#includeconst

2014-02-27 16:09:00 666

原创 131 - The Psychic Poker Player(直接枚举)

题目:131 - The Psychic Poker Player题目大意:刚开始我一点都不懂题目要我们做什么,后来看了别人的题解,发现原来是打某种类型的纸牌,手上有5张牌,桌上也五张牌,这个人可艺从手中丢弃某些牌,从轴上摸去相等数量的牌,桌上的牌是有顺序的,然后问手上最好的牌是什么。解题思路:直接枚举丢牌和摸牌的情况,一共有2的5次方种,这里我用了位运算,用一个数来代替舍

2014-02-26 15:26:57 706

转载 146 - ID Codes

题目:146 - ID Codes题目大意:给出一个字符的全排列,字符可以重复,但是排列方式有先后顺序,就是从小到大的排,例如1个a, 2个b,排列:aab, aba, baa,题目问的是给出一个序列,看后面还有没序列,有输出紧接着的一个,如果是最后一个就输出No Successor。思路:就是uva书上的7.2.2的改造,将重排范围缩小到从后向前找到的第一个反常的字符,后

2014-02-23 23:26:38 661

原创 11205 - The broken pedometer

题目:11205 - The broken pedometer题目大意:就是最少几盏灯可以表示所给的所有数字,这些灯可以不连续。解题思路:枚举出每一盏灯的好坏情况,好的灯的话就说明可以亮,然后这题别人和我说的是巧用二进制位运算,后面发现真的很方便也很快。但是我做的不是这样的,=比较麻烦,用数组保存灯的状态,然后判断的时候逐个数相与, 保存在数组中,再转换成十进制,这样确实麻

2014-02-23 21:16:51 678

原创 196 - Spreadsheet(dfs)

题目:196 - Spreadsheet题目大意:就是电子表格,有的有数字,有的有公式, 要求最后输出的都是数字,公式用相等的数字代替。解题思路:首先要处理后面的公式,一点都不好处理,写了好久,然后就是计算公式,公式里面可能还会有公式,所以用dfs.注意判断的时候要两次判断,不能判断不行了就直接跳过,因为回来后就可以了。这题里面公式可能会有=10 + A1+ B1的,所

2014-02-20 21:27:30 651

原创 10054 - The Necklace(欧拉回路+回路打印)

题目:10054 - The Necklace题目大意:给出N给珠子,每个珠子都有两种颜色,各半,看能不能找出每种组合使珠子连成一串,颜色相同的珠子才能相邻。解题思路:欧拉回路+ 回路打印。刚开始的时候我直接以珠子的个数来考虑是否有欧拉回路,这样的话1000*1000次判断导致超时了。这里可以判断颜色,颜色都访问过了,就说明这串珠子是连通的。然后要输出的时候就在按照珠子

2014-02-19 20:36:31 702

原创 10129 - Play on Words(欧拉道路<有向图>)

题目:10129 - Play on Words题目大意:词语接龙。解题思路:刚开始没想到欧拉道路,直接找,结果超时了。这题满足要求的话就是把每个单词看做一条路,每条路连在一起走一遍就符合要求, 欧拉回路也是符合要求的。满足欧拉道路:1,至多只有两个点的出度入度相差1。   2, 这个有向图的无向图连通。(刚开始一直在想,如果有两条一样的路,这样怎么处理

2014-02-19 17:57:12 651

原创 657 - The die is cast(dfs)

题目:657 - The die is cast题目大意:就是看图中的骰子点数。解题思路:两次深度遍历,第一次先找骰子,第二次在找点数,本来是用一个数组来记录这个地方是否访问过,但是后面发现这样对于两次的dfs会出现问题,所以就将访问过的X改成*,访问过的*改成点,这样就可以达到二次遍历。先找不是 .(点) 的字符,然后在这里面找X的块数,这个就是点数。再次明确

2014-02-18 19:42:39 651

原创 10557 - XYZZY(dfs + bfs)

题目:10557 - XYZZY题目大意:就是一款游戏,冒险本来的能量是100,每进一间屋子就可以把屋子里的能量占为己有,但是屋子能量有正有负,然后给起点终点,看能否成功的到达终点。并且一间屋子可以重复进去多次。解题思路:刚开始想用dfs, 但是题目里面会有环,会出现死循环,一直没想到思路。后来看了别人的代码。才发现可以巧妙的用dfs和bfs。bfs()是用来只寻找是否有到达终

2014-02-15 19:08:27 786

原创 10047 - The Monocycle(BFS +状态判断)

题目:10047 - The Monocycle题目大意:还是迷宫问题,只是这次有要求方向和轮子着地的颜色。解题思路:BFS ,但是需要判断状态, 并且一个格子不在是走过一次就不可以走了,而是要判断走过这个格子的轮子的方向啊,颜色啊,所以那个是否走过格子的数组是四元数组,刚开始没有想到这个,不知道到了终点后颜色不符合要求该怎么办,后面看了别人的代码,才发现可以都遍历一遍,看

2014-02-15 13:45:34 591

原创 705 - Slash Maze

题目:705 - Slash Maze题目大意:给一个斜线迷宫,求这个迷宫是否有环,最长环的长度。解题思路:将斜线放大三倍,用数组来储存。这样的话就不需要八个方向遍历,只需要上下左右四个方向就可以了。然后如果有遍历到数组边界的就可以认定不是环了。#include#includeconst int N = 250;char str[N];int visi

2014-02-13 17:38:00 753 1

原创 784 - Maze Exploration(bfs)

题目:784 - Maze Exploration题目大意:类似走迷宫, 八个方向走,空格的表示可以走,‘X’不可以走,‘*’是起点。解题思路:BFS;#include#include#includeusing namespace std;const int N = 35;const int M = 85;int t, k;char maze[

2014-02-12 20:38:26 608

原创 10004 - Bicoloring(BFS)

题目:10004 - Bicoloring题目大意:将给定的图的节点染色,颜色只有两种,并且要求相邻的节点颜色不同,且无向图里面没有自环且是强连通的;解题思路:因为是强连通的,所以用BFS可以访问到每个节点,并且相邻节点还可以染成不同的颜色。当染色冲突时,就说明这个图不可以二染色,如果顺利的都染色了,没有冲突,这个图就可以二染色。#include#include#i

2014-02-12 18:50:14 671

原创 532 - Dungeon Master(bfs)

题目:532 - Dungeon Master题目大意:三维的迷宫。解题思路:BFS。和前面一题二维的一样,就是改成三维的。#include#include#includeusing namespace std;const int N = 35;int l, r, c;struct dungeon{ char s[N][N];}d[N]

2014-02-12 15:52:13 541

原创 10305 - Ordering Tasks(拓扑序列)

题目:10305 - Ordering Tasks题目大意:给出几个任务的先后顺序,推出可能的排序。解题思路:1,找出没有前驱,且没有访问过的点,放在拓扑序列的头部,,,2,删掉他所有想关连的边,并标记访问过。再次找出没有前驱的点,重复前面两个步骤,直到所有的点都访问过位置,输出拓扑序列。#include#includeconst int N = 105;int

2014-02-11 21:30:08 616

原创 10596 - Morning Walk(欧拉回路 + dfs)

题目:10596 - Morning Walk题目大意:给R条路,看是否能每条路走一遍, 从起点回答终点。解题思路:每条路只能走一遍,且要求形成回路,这就是欧拉回路。对于无向图来说(因为是道路,不是有向的)。每个点的度都为偶数,且这个图是连通的, 这个图就一定是欧拉回路。#include#includeconst int N = 205;int G[N]

2014-02-11 19:10:19 617

原创 439 - Knight Moves

题目:439 - Knight Moves题目大意:就是给起点,终点,看最少走几步能从起点到终点。走的方式是采用国际象棋,走日字型。解题思路:BFS,广度优先遍历。#include#include#includeusing namespace std;struct bit { int x, y;};const int N = 8;int d

2014-02-11 16:44:44 587

原创 572 - Oil Deposits

题目:572 - Oil Deposits题目大意:就是求大块油田的个数。大块的油田指的是(水平,垂直,或对角相邻的油田组成的)。#include#includeconst int N = 105;int m, n;int s[N][N], visit[N][N];void dfs(int x, int y) { if(!s[x][y] || visit[x][y

2014-02-11 13:02:15 595

原创 112 - Tree Summing

题目:112 - Tree Summing题目大意:给出一棵树,求从根到叶子节点的和是否等于给定的值,只要有一个符合就输出yes,否则输出no。解题思路:题目给出的是前序遍历,所以可以用递归输入。(根(左孩子)(右孩子))大概是这样的输入。我参考了别人的写法,不用建树的。自己想的话估计会建树,当初也先过用递归,可能还不太会用所以没成功。#include#inc

2014-02-09 21:50:14 585

原创 327 - Evaluating Simple C Expressions

题目:327 - Evaluating Simple C Expressions题目大意:就是求给定的表达式的值。解题思路:首先先去掉空格,不然会出现一些错误。然后用一个数组来存放字母对应的值。再来先做自增自减,把存放字母的那个数组里的值改掉,然后如果是先自增减在用的就还需要把要用来计算的那个算式的值改掉,先用在自增减的就不需要改变,然后再把“++”, “--”去掉。计算的时候原本

2014-02-09 17:10:06 660

原创 699 - The Falling Leaves

题目:699 - The Falling Leaves题目大意:给一棵树,要求算在同一竖直位置的值得和,从左到右打印出来;解题思路:先建树,然后重点就是调用递归来将同一竖直位置的值加起来,用一个数组来存放,根放在数组最中间,左边的孩子就中间-1,右边的就中间的加1,这样同一竖直的位置的就会加到相同的数组元素里,并且要同时记录最左边的数,以便后面输出时控制最后的回车。#i

2014-02-05 15:50:07 540

原创 839 - Not so Mobile

题目:839 - Not so Mobile题目大意:给出一个杠杆,判断是否平衡。解题思路:分别建两棵树,里面放重量,和对应的距离。然后后序的方式判断每一个小杠杆是否平衡。因此要先判断00情况,然后0x情况,然后x0情况,最后才是xy情况。反着的话,当0x的情况解决完后,情况就变成例了yx的情况,所以xy要放在最后。#includeint t;struct t

2014-02-04 21:21:58 613

原创 297 - Quadtrees

题目:297 - Quadtrees题目大意:给两个四叉树,合并成一个四叉数,并求最后的那个四叉树的黑色的面积。解题思路:1、我是先忽略第一个根节点来建树的,所以要考虑第一个为1,和为0的情况。   2、将字符串转换成对应的数的数组,p为2,f为1,e为0, 需要buildtree();建树的时候可以用递归,因为每个p对应都有四个孩子,如果孩子里面还有p的话就再次调用b

2014-02-04 18:55:54 599

原创 548 - Tree

题目:548 - Tree题目大意:给树中序后续遍历,然后找出叶子节点到裉节点的和最小的,如果和相同就看哪个叶子节点数值小,就输出那个叶子节点的值。解题思路:先利用中序后序建树,在遍历找和最小的。注意:释放叶子节点时,要赋值为NULL;否则指针就变成野指针了。#include #include #include const int N = 10005;

2014-02-04 17:49:00 612

原创 712 - S-Trees

题目:712 - S-Trees题目大意:题目给出x1,x2,x3,···xn的顺序,再给出按这样建树的结果,最后给出VVAs,求它的值。解题思路:例如x1如果是1,就说明往右走,0就是往左走。这样的话就不需要建树,如果xi是1的话,就 + pow(2,xi的高度 - 1);0就不需要处理。#include#include#includeconst in

2014-02-02 18:05:36 635

原创 10562 - Undraw the Trees

题目:10562 - Undraw the Trees题目大意:将题目所给的树转换成有括号的树。解题思路:将题目给的数保存在数组中,然后分层次来判断。首先先给出带判断的根节点(不一定是最上面的)的范围,确定了范围就好办了。然后找到不是空格的数,判断下方是否有‘|’, 有的话就需要递归的调用函数解决这样类似的问题。这时就需要确定这次递归的范围了,范围就是‘-----’的首尾。

2014-02-02 15:10:29 641

空空如也

空空如也

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

TA关注的人

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