随笔 - 386  文章 - 0  评论 - 21  阅读 - 21万 

随笔分类 -  OJ————ZOJ

ZOJ 2588 Burning Bridges (tarjan求割边)
摘要:题目链接题意 : N个点M条边,允许有重边,让你求出割边的数目以及每条割边的编号(编号是输入顺序从1到M)。思路 :tarjan求割边,对于除重边以为中生成树的边(u,v),若满足dfn[u] 2 #include 3 #include 4 #include 5 6 using names... 阅读全文
posted @ 2014-08-11 17:12 枫、 阅读(182) 评论(0) 推荐(0) 编辑
ZOJ 1610 Count the Colors (线段树区间更新)
摘要:题目链接题意 : 一根木棍,长8000,然后分别在不同的区间涂上不同的颜色,问你最后能够看到多少颜色,然后每个颜色有多少段,颜色大小从头到尾输出。思路 :线段树区间更新一下,然后标记一下,最后从头输出。//ZOJ 1610#include #include #include using namesp... 阅读全文
posted @ 2014-08-03 21:27 枫、 阅读(179) 评论(0) 推荐(0) 编辑
HDU 1116 || POJ 1386 || ZOJ 2016 Play on Words (欧拉回路+并查集)
摘要:题目链接题意 : 有很多门,每个门上有很多磁盘,每个盘上一个单词,必须重新排列磁盘使得每个单词的第一个字母与前一个单词的最后一个字母相同。给你一组单词问能不能排成上述形式。思路 :把每个单词看成有首字母指向尾字母的有向边,每个字母看成一个点,题中要求等效于判断图中是否存在一条路径经过每一条一次且仅一... 阅读全文
posted @ 2014-07-30 10:20 枫、 阅读(1122) 评论(0) 推荐(0) 编辑
ZOJ 3791 An Easy Game(DP)
摘要:题目链接题意 : 给你两个长度为N的字符串,将第一个字符串每次只能变化M个,问变换K次之后变成第二个字符串一共有几种方法。思路 : DP。dp[i][j]表示变了 i 次之后有j个不一样的字母的方法数。状态转移方程:dp[i+1][j+M-2*k] += (dp[i][j]*(c[j][k]*c[N... 阅读全文
posted @ 2014-06-21 19:43 枫、 阅读(349) 评论(0) 推荐(0) 编辑
ZOJ 3757 Alice and Bob and Cue Sports(模拟)
摘要:题目链接题意 : 玩台球。Alice 和 Bob,一共可以进行m次,Alice 先打。有一个白球和n个标有不同标号的球,称目标球为当前在桌子上的除了白球以外的数值最小的球,默认白球的标号为0。如果白球落入洞中,要把白球拿出来放在桌子上,如果是其他的球就不拿哪怕是犯规打进去的。每打一局(每一局代表每人... 阅读全文
posted @ 2014-05-17 21:30 枫、 阅读(292) 评论(0) 推荐(0) 编辑
ZOJ 1642 Match for Bonus (DP)
摘要:题目链接题意 : 给你两个字符串,两个字符串都有共同的字母,给你每个字母的值,规则是,找出两个字符串中的共同的一个字母,然后这个字母的值就可以加到自己的分数上,但是这步操作之后,这两个字母及其之前的字母都要删除掉,问你能够得到的最大的值是什么。思路:最长公共子序列,加了一个权值。 1 #includ... 阅读全文
posted @ 2014-05-03 21:19 枫、 阅读(211) 评论(0) 推荐(0) 编辑
ZOJ 1008 Gnome Tetravex(DFS)
摘要:题目链接题意 : 将n*n个正方形进行排列,需要判断相邻的正方形的相邻三角形上边的数字是不是都相等。思路 : 只知道是个深搜,一开始不知道怎么搜,后来看了题解才明白,就是说不是自己去搜,而是将给定的正方形按照要求一个个往上摆,如果摆不下去了肯定是没有结果的。还有可以将一样的放一起,如果一个在某个位置... 阅读全文
posted @ 2014-04-17 21:33 枫、 阅读(638) 评论(0) 推荐(0) 编辑
POJ 1562 && ZOJ 1709 Oil Deposits(简单DFS)
摘要:题目链接题意 : 问一个m×n的矩形中,有多少个pocket,如果两块油田相连(上下左右或者对角连着也算),就算一个pocket 。思路 : 写好8个方向搜就可以了,每次找的时候可以先把那个点直接变为*,这样可以避免重复搜索。 1 //POJ 1562 ZOJ 1709 2 3 #include ... 阅读全文
posted @ 2014-04-17 19:46 枫、 阅读(272) 评论(0) 推荐(0) 编辑
POJ 3191 The Moronic Cowmpouter(进制转换)
摘要:题目链接题意 : 将一个10进制整数转化为-2进制的数。思路 :如果你将-2进制下的123转化为十进制是1*(-2)^2+2*(-2)^1+3*(-2)^0.所以十进制转化为-2进制就是一个逆过程。找到最小的非负整数x使得当前数减x能被2整除,这个x将作为新的最高位写到结果中,然后当前数减去x再除以... 阅读全文
posted @ 2014-04-15 21:37 枫、 阅读(219) 评论(0) 推荐(0) 编辑
ZOJ 3778 Talented Chef
摘要:题目链接题意 : 这个人需要做n道菜,每道菜Ai步,他可以同时做M道不同的菜的其中一步,问你最少需要多少时间能做完所有的菜。思路 : 这个题比赛的时候禁锢思路了,根本没想出来,就是当M > N时,需要的时间一定是N道菜里边步骤最多的那道菜的步骤数。如果不是就判断平均需要的时间,如果平均需要的时间不如... 阅读全文
posted @ 2014-04-15 21:08 枫、 阅读(271) 评论(0) 推荐(0) 编辑
ZOJ 2750 Idiomatic Phrases Game(Dijkstra)
摘要:点我看题目题意 : 给定一本字典,字典里有很多成语,要求从字典里的第一个成语开始,运用字典里的成语变到最后一个成语,变得过程就是成语接龙,后一个成语的第一个字必须有前一个成语的最后一个字相等,给定的成语是4位16进制位,每个成语前边跟的数字代表着找到这个成语之后再找到下个成语还需要t分钟。思路 :将所有的成语看成一个点,如果找到下一个成语,就建一条有向边,然后用dijkstra求最短路。#include #include #include using namespace std;struct node{ char f[5],b[5] ; int timee ;} dicti[101... 阅读全文
posted @ 2014-03-30 11:17 枫、 阅读(256) 评论(0) 推荐(0) 编辑
ZOJ 2110 Tempter of the Bone(DFS)
摘要:点我看题目题意 : 一个N×M的迷宫,D是门的位置,门会在第T秒开启,而开启时间小于1秒,问能否在T秒的时候到达门的位置,如果能输出YES,否则NO。思路 :DFS一下就可以,不过要注意下一终止条件再判断一下时间,还有因为题目中要求走过的路要变成墙,所以每次走的时候要注意一下把路变成墙,但是如果你不走这条路了,要记得变回来。还有这个题必须剪枝,否则超时超到疯啊,DFS函数中那个剪枝不怎么好想,T-t代表的是在当前位置还需要T-t步路。而fabs(ex-x)+fabs(ey-y)指的是当前位置离终点最短还有着些步数,如果两者之差不小于0的话,T-t应该等于fabs(ex-x)+fabs 阅读全文
posted @ 2014-03-26 21:36 枫、 阅读(333) 评论(0) 推荐(0) 编辑
ZOJ 3490 String Successor
摘要:点我看题目题意 : 给你一个字符串,让你按照给定规则进行处理。如果字符串里有字母或者是数字就忽略非字符数字,如果没有,就让最右边的那个字符+1.增量都是从最右边的字母或者数字开始的。增加一个数字的方法是加1到另一个数字('0' -> '1', '1' -> '2' ... '9' -> '0')。增加一个大写字母的方法是加一位到另一个字母('A' -> 'B', 'B' -> 'C' ... 'Z& 阅读全文
posted @ 2014-03-13 20:07 枫、 阅读(214) 评论(0) 推荐(0) 编辑
ZOJ 3609 Modular Inverse
摘要:点我看题目题意 : 这个题是求逆元的,怎么说呢,题目看着很别扭。。。。就是给你a和m,让你求一个最小的x满足a-1≡x(modm).或者ax≡1 (modm).通俗点说呢,就是找一个最小的x,他满足的条件的是a*x取余m等于1.思路 :这个题反正数据不是很大,枚举就行了,因为维基百科中说的,两个数必须是互质的,所以判断一下,还有这个题特别逗的是m是1的时候x肯定也是1,我觉得任何一个数取余1都应该是0,可是这里显然不是这样的。这个题还可以用扩展的欧几里德算法,也可以做。#include #include #include #include using namespace std ;int gc 阅读全文
posted @ 2014-03-08 20:15 枫、 阅读(248) 评论(0) 推荐(0) 编辑
ZOJ 3603 Draw Something Cheat
摘要:点我看题目题意 : 给你n个字符串,让你找出在每个字符串中出现的字母,按字典序输出来。思路 :一开始想差了,以为记录下每个字符出现次数,然后找次数大于1的,可是我忘了可能在一个字符串中有AA,而另一个字符串中一个A都没有的情况。稍微改一下就是出现过的标记一下次数,然后存到另一个数组里,反正就才26个字母,因为有可能出现我说的A的那种情况,但最后就只能输出一个A,所以每次都比较一下,找出字符串里出现次数最少的。#include #include #include #include #include #include #define INF 99999999using namespace std; 阅读全文
posted @ 2014-03-08 20:03 枫、 阅读(419) 评论(0) 推荐(0) 编辑
ZOJ 3705 Applications
摘要:点我看题目题意 : 真是一道又臭又长的模拟题啊,不过比赛的时候没看,赛完了补的。给你N个候选人,让你从中选M个候选人,根据四个大规则来确定每个人的分数,然后选分数前M个人的输出。1、在MOJ上做过题的根据以下规则来计算加分:如果题目是MAOMAO中的,做对一道加2.5分如果题目是Old Surgeon Contest中的做对一个加1.5分,当然在MAOMAO中没有与Old Surgeon Contest中相同的题如果不是两个中的题,但是题号是素数的做对一道加1分如果不是上边三种情况中的任何一种,做对一道加0.3分。2、Marjar学校每年都会举办比赛,如果申请人中有得了奖的,一等奖加36分,二 阅读全文
posted @ 2014-03-08 19:42 枫、 阅读(195) 评论(0) 推荐(0) 编辑
ZOJ 3170 Friends
摘要:点我看题目题意 : 就是有n个人,m对关系,每对关系的两个人是好朋友,这个关系是相互的,如果有两个人的共同好朋友超过k个,那这两个人也会是好朋友的,给你m对关系,给你足够长的时间,问你还能增加几对关系。思路 : 暴力,一开始忘了增加了新关系之后要回到第0个点开始找,因为时间足够长。#include #include #include #include #include using namespace std;const int maxn = 110 ;int a[maxn],map[maxn][maxn] ;int main(){ int T,n,m,k ; scanf("%d&qu 阅读全文
posted @ 2014-03-06 20:15 枫、 阅读(238) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示