ACM各OJ题解
文章平均质量分 52
ColorWaterer
Orz
展开
-
NOJ 1175 Dress, Left Dress!
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1175一些士兵站在一直线上,当每一个人都向左看时,看到的第一个比自己高的那个人就是the first man。并输出the first man的位置,若不存在the first man,输出-1。将所有身高存在一数组里,然后遍历一遍,但是这样会超时!所以,必须要优化算法。 这些身高中,如果一人的原创 2014-11-17 23:26:36 · 592 阅读 · 0 评论 -
NOJ [1315] Cost in Land
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1315首先我们按x,y都递减排序。其中x是宽,y是长然后发现如果一个矩形的长宽都不大于另一个矩形的长宽。那么这个矩形的花费就是0,因为买那个矩形顺便就买了这个小的。所以去除这些不花钱的矩形。剩下的矩形,x是递减的,y是递增的然后可以写出转移方程f[i] = min(f[j] + x[j + 1] *原创 2014-11-17 23:27:45 · 362 阅读 · 0 评论 -
NOJ [1316] D Minimums of Sum
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1316多路归并我们先考虑解决2路合并问题。对于有序数组a, b,可以维护一个优先队列,元素为a[i] + b[j]。先将a[i] + b[1]入队,取出最大元素后改变元素为a[i] + b[j + 1]。对于n路合并,依次2路合并即可。出题代码:#include #include #include #原创 2014-11-17 23:27:47 · 385 阅读 · 0 评论 -
NOJ [1317] Exercise of Sort
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1317线段树如果是按照顺序来寻找位置的话,会发现遗漏了许多的信息。所以,我们应该反过来寻找位置!出题代码:#include #include #include #include #include #include #include #include #include #include #include原创 2014-11-17 23:27:50 · 449 阅读 · 0 评论 -
NOJ [1318] First Choice
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1318此题就是一个欧拉回路。将每一个房间都理解为一个点,然后门就是房间间的连接条件,门的个数就是该点的度,只要所有点的度出现奇数的次数小于3就表示可以走完所有的连接且不重复。那么还有一个条件就是先判断此图是否是完全连通的。DFS一下就可以了。出题代码:#include #include #includ原创 2014-11-17 23:27:52 · 518 阅读 · 0 评论 -
NOJ [1319] Go Through
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1319此题的意思就是,Wodex和他的一个伙伴要经过所有的圆盘(点),他们所走的距离要在M内,所以肯定要求最短路。起先他们可以各自选择一个点作为起始点,然后开始走。然后走的方式是这样的,走过最外面一圈的任意一点的那个人就不能走除最外面那些点以外的点(我们称这些点为内点好了)了,而且Wodex的伙伴因为原创 2014-11-17 23:27:55 · 499 阅读 · 0 评论 -
NOJ [1320] Hole of Black
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1320此题就是一个最短路径BFS求解问题。但是由于黑洞的干扰,当Wodex每走一步,黑洞就会向空格区域蔓延一步。那么我们可以定义一个tmp[][]数组来存储黑洞的情况,对黑洞蔓延BFS一下。上面的值存储的意思表示黑洞在Wodex走那么多步时蔓延到的格子。标记完黑洞的情况以后,我们再对Wodex走迷宫B原创 2014-11-17 23:27:58 · 341 阅读 · 0 评论 -
NOJ [1321] I am You
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1321给你一个N,让你找到最小的M使得(2 ^ N - 1) % (2 ^ M - 1) = 0。2 ^ N的二进制数一定是1后面跟随一些0,那么2 ^ N - 1的二进制数每一位上都是1了,所以要想使(2 ^ N - 1) % (2 ^ M - 1) = 0, 那么其实只要使2 ^ N - 1的二进原创 2014-11-17 23:28:00 · 440 阅读 · 0 评论 -
杭电 1212 Big Number
链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=1212以下是我AC的代码。#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#d原创 2014-11-17 23:28:31 · 526 阅读 · 0 评论 -
ACM第K大数——双二分
数组A和数组B,里面都有n个整数。数组C共有n^2个整数,分别是A[0] * B[0],A[0] * B[1] ......A[1] * B[0],A[1] * B[1]......A[n - 1] * B[n - 1](数组A同数组B的组合)。求数组C中第K大的数。原创 2014-12-12 20:00:10 · 1583 阅读 · 0 评论 -
ACM 寻找众多情侣堆中的两个基佬
这题的意思是有很多情侣,每对情侣手握的牌号是一样的,然后在这群人中,有两个人是搞基的,他们手里握的牌子是不一样的,请找出这两个人,并从小到大输出他们的牌号。原创 2014-12-13 12:35:28 · 698 阅读 · 0 评论 -
NOJ [1313] Anger Begins
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1313线段相交 + 并查集线段斜率可以是0也可以是无穷大。只要有一条路的一个点在另一条路上就算连通。将连通的路并在一起,然后直接就可以判断了。出题代码:#include #include #include #include #include #include #include #include #in原创 2014-11-17 23:27:40 · 571 阅读 · 0 评论 -
NOJ [1016] 缙云烧饼
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1016突然发现自己刚进入ACM队时写的一个代码,现在还是觉得好好笑,翻出来晒晒。#include using namespace std;#define N 1000char a[N][N];int main(){ int n,m,i,j,s; while (scanf("%d",&n)!原创 2014-11-17 23:27:37 · 546 阅读 · 0 评论 -
NOJ [1201] Chihuo II - Eating in China
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1201这题其实不难,总归算法就是凸包加水DP。但是我一直RA,以为是凸包码错了,还新学了一个凸包的算法,发现又错了,最后才知道是忘了初始化。题目意思很容易理解,就是洛天依去中国吃好吃的,然后经过了N个地方,每个地方都有坐标x和y表示。洛天依游走的方法是独特的,她一定要先在最外面一圈的点找一个点开始出发原创 2014-11-17 23:26:59 · 588 阅读 · 0 评论 -
NOJ [1173] Birdlike Angry Pig
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1173愤怒的小鸟与猪头冤冤相报何时了。猪猪们很喜欢鸟鸟的蛋蛋,所以他们让鸟猪隐藏混入小鸟的团队中。鸟鸟们都有编号,所以鸟猪也要有,而鸟猪的编号是这个鸟团里所有鸟编号&运算后得到的数字。鸟鸟们为了抓出鸟猪,便开始搜查。如果有鸟猪在团队里,则输出鸟猪的编号,否则输出”CAUTION: NO BIRDLIK原创 2014-11-17 23:26:39 · 463 阅读 · 0 评论 -
HDU 1266 Reverse Number
链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=1266我刚开始做这题的时候以为碰到第一个0就停止反转,即12001300会输出21001300,结果错了。然后我改变了一下,用另一种意思做做看,即12001300会输出31210000,结果也错了。最后我又改变了一下,认为是12001300会输出31002100,结果AC了。只要考虑末尾有几个0,然后将原创 2014-11-17 23:26:54 · 325 阅读 · 0 评论 -
NOJ [1280] Go for a Psychological Test
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1280此题只要理解了就很简单了。矩阵快速幂。因为T很大,如果一个一个乘的话,那么肯定会超时的。将原始数据存在a数组里,结果存在b数组里。所以我的方法就是将输入的T转换成二进制倒序存在一个数组te[]里。然后对于二进制数位循环,每次都将矩阵a自乘,第一次除外。然后判断te[i]是否为1,如果是第一个1,原创 2014-11-17 23:27:19 · 404 阅读 · 0 评论 -
NOJ [1314] Brave Sword
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1314是不是想起了筷子大作战这一题?(1) 那题的意思就是有很多筷子,除了其中一只,其他都是成对等长出现的。直接异或,所有相同的数都会被抵消(异或运算中,相同位置值相等的结果为0,就是说所有成对出现的都会最终成为0),最后的结果自然是那个落单的数了。然后,我们来看这题。(2) 这题的意思是有很多把钥匙原创 2014-11-17 23:27:42 · 837 阅读 · 0 评论 -
NOJ 1002 将军问题
连接地址: http://ac.nbutoj.com/Problem/view.xhtml?id=1002 在做此题之前,你首先要知道中国象棋的游戏规则吧,不知道的看说明书去。 问题很简单,就是让你判断当时的局面是否存在将军状态。 首先,我们先想想,可以产生将军的棋子是哪些? 兵提步,判断将帅周围的三格是否有对方的兵。 炮跳轰,判断将帅所在的两条坐标线上是否有对方的炮,且将帅与炮中间必须原创 2014-11-17 23:26:31 · 506 阅读 · 0 评论 -
HDU 1003 Max Sum
连接地址: http://acm.hdu.edu.cn/showproblem.php?pid=1003 给你一串数字,你要从中找到该数字串中一连串的数字求和的最大值。 例如:给你6,-1,5,4,-7,最大和是6+ (-1) + 5 + 4 = 14。 我的思路是以第一个数字开始加,一旦和值为负,跳出;然后以第二个数字开始加,重复上述。 但是有个不起眼的坑,我就被坑在这里了。就是至少要取原创 2014-11-17 23:26:34 · 353 阅读 · 0 评论 -
HDU 1116 Play on Words
链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=1116简单的成语接龙变形题,欧拉路的基本题。所谓欧拉路就是每个点的入度等于出度;所谓半欧拉路就是起点的出度比入度大1,终点的入度比出度大1,其他点的入度等于出度。将每个单词取出首字母和尾字母,转换为一条边,然后加入对应的连通分量中。如果这个字母出现过,visit数组标记为true。同时起点出度加1,终点原创 2014-11-17 23:26:41 · 423 阅读 · 0 评论 -
UVA 10557 XYZZY
这题纠结了我一下午还有一晚上,晚饭都没吃就在那一直码代码,要注意的地方很多,而且要用的方法也很多。下午2点多开始码,码到晚上8点多终于AC了,果断码到哭。一开始连样例都过不了,不过后来过了样例提交后便AC了。题目要求先输入房间数N,然后接下来N行,每行第一个数X表示该房间的值,第二个数M表示该房间可以到达的其他房间的数目,接下来后面跟着M个数表示那些房间的编号。下面来讲讲我的解题思路:题目的意思就原创 2014-11-17 23:26:44 · 442 阅读 · 0 评论 -
HDU 1202 The calculation of GPA
链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=1202此题非常好理解,代码也很好敲,但是有很多坑。首先,学分和分数都是double型的(分数可以大于100,更可以小于0)= =其次,分数为-1的,算缺考(但是如果所有科目都是缺考的话,要输出-1、下面是我AC的代码:#include #include #include #include #inclu原创 2014-11-17 23:26:51 · 484 阅读 · 0 评论 -
HDU 1405 坑爹的The Last Practice
链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=1405此题真坑!!!题意很容易就能看懂,坑爹的地方就在“每个数字后都有一个空格,包括最后一个数字”。以下是我AC的代码:#include #include #include #include #include #include #include #include #include #include #i原创 2014-11-17 23:26:56 · 554 阅读 · 0 评论 -
ACM投票——二分法
问题描述有N个城市,每个城市有Ai个人。现在要开始投票,每个人有一张票。作为领导者,你有B个箱子,你必须要将这B个箱子分发到N个城市去,每个城市至少需要一个箱子。每个人都必须要投票,不能弃票,也就是说要把票丢进箱子里去(每个城市有Ai张票)。原创 2014-12-12 19:51:15 · 1445 阅读 · 0 评论