ACM题
Debugger717
呐 慢慢来呗
展开
-
专题四 第四道题
1.题目编号:10042.简单题意:某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。3.解题思路形成过程:这道题是一个求最小生成树的题目,但是每次输入的是两边的点和权,这次更加简便,用Kruskal算法原创 2016-06-23 00:22:08 · 939 阅读 · 0 评论 -
专题二 第十道题
1.题目编号:10022.简单题意:有一个方程F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x ,当100>=x>=0时,找出X的最小值。给你T组数据,每组只给你一个Y值,且03.解题思路形成过程:这道题和专题二的1001题差不多,都运用了二分法,但是这个可能麻烦一丢丢,因为这个需要求导数,才能得到y+f'(x)等于多少4.感悟:数学数学,还是得学,又来了导数问原创 2016-04-23 23:56:22 · 242 阅读 · 0 评论 -
专题三 第十一题
1.题目编号:10012.简单题意:给一个序列a[1],a[2]...a[n],计算该序列的最长子序列的最大值,但是如果有超过一个子序列的,选择第一个子序列。3.解题思路形成过程:看到这个题,就是用动态规划求最大子序列,开始用的方法一直超时,嵩哥说我写的太麻烦,应该用老师上课讲的,输入的n个数相加放在一个sum数组里面,如果sum[i-1]+a[i]的值为负的就将sum[i]=a[i],否原创 2016-05-08 16:49:03 · 379 阅读 · 0 评论 -
专题一 贪心算法总结
贪心算法总结一、解释:在求问题最优解的时候,从问题的初始状态出发,去求每一步的最优解,通过若干次的贪心选择最终得到整个问题最优解的方法二、理论基础:1.每一步都采用当前状态下最好的选择,2.通过局部最优得到全局最优。3.并不能保证总是能够得到所有问题的最理想结果4.利用贪心算法需要知道:(1).该题是否适合贪心算法.(2)如何选择贪心标准。5.贪心算法的每一原创 2016-05-31 13:21:15 · 507 阅读 · 0 评论 -
专题三 总结动态规划
动态规划总结 一、解释:解决多阶段策略问题的一种方法,运用最优性原理,排除重复计算,用空间换时间的算法。二、适用的题目类型:1.问题具有多阶段的决策2.每个阶段对应一个状态(状态变量)3.每个阶段有一个决策(不同的决策导致下一个阶段不同的状态)4.每个阶段的最优解可以递归地归结为下一个阶段各个可能状态的最优解问题三、一般的解题步骤1.判断问题是否具最优子结构性质原创 2016-05-28 23:10:20 · 248 阅读 · 0 评论 -
专题二 第九道题
1.题目编号:10112.简单题意:有一个公司承担了检测石油资源的工作,工作时他们一次就探测一个矩形的区域,并将这个区域分成一个网格,分析每一个小网格决定是不是存在石油资源,含油的叫做pockets,但是如果相邻则为一个石油资源。给出网格的行列数m,n,其中每个网格中有#和@,@表示有石油,#表示没有石油,计算出有多少个石油资源3.解题思路形成过程:刚看这个题的时候感觉它和red and原创 2016-04-21 22:38:54 · 215 阅读 · 0 评论 -
专题二 第七道题和第八道题
1.题目编号:10142.简单题意:有一个奇怪的电梯,电梯可以停在你想停的任意一层,每一层都有一个数k[i],并且每一层只有向上和向下两个按钮,当你在i层时你按向上的按钮它会向上送你k[i]层,你将会到达第i+k[i]层,如果你按向下则会向下k[i]层,你将会到达第i-k[i]层,当然了,电梯不会上升到比n层还高也不会低于第1层。给你三个数N,A,B,然后是N个k[i],N为建筑物的高度,A为原创 2016-04-21 21:38:17 · 375 阅读 · 0 评论 -
专题二 第六道题
1.题目编号:10042.简单题意:Bob射击,假设他在(0,0)位置,他想射击在最近的一棵树上的水果,并且他可以调整角度来修正射击轨道,不幸的是他总是失败。现在给出一个物体的坐标,编写程序计算Bob所在点的x轴和箭之间的角度。T组数据,每组数据给出水果的想x,y坐标和箭头发射的速度v3.解题思路形成过程:这是一道涉及物理的题目,首先进行分析角度、速度和箭向上和向前飞出的距离关系。将速度正原创 2016-04-21 16:51:38 · 307 阅读 · 0 评论 -
专题三 十六题
1.题目编号:2.简单题意:3.简单思路形成过程:4.感悟:5.AC的代码:原题:原创 2016-05-28 23:42:41 · 281 阅读 · 0 评论 -
专题三 第十题
1.题目编号:10032.简单题意:有一个下棋的游戏,每个棋子都会有一个值,从开始到结束,棋手将会访问路上的棋子,棋子只能跳到比他现在位置值大的位置,棋子不能往后退,求出走过的路径的最大值。3.解题思路形成过程:看到这个题,就可以想到老师讲的最大子段和的问题,可以通过两个for循环判断是否前一个位置比后一个位置的值小,前面的和加后一个位置的和是否比后一位置的值大就可将最大值求出来。4.原创 2016-05-05 09:49:24 · 283 阅读 · 0 评论 -
专题二 第五题
1.题目编号:10162.简单题意:有一个矩形的房间,铺着正方形的瓷砖,每一个瓷砖的颜色不是红色就是黑色。一个人站在一个黑色的瓷砖上,他可以移动到相邻的四个瓷砖的一个,但是他不能移动到红色的瓷砖上,他只能移动到黑色的瓷砖上,写一个程序来计算这个人通过不断循环移动上述描述到达黑色瓷砖的数目。给你w,h为h行每行w个瓷砖,其中“.”表示黑色瓷砖,“@”表示这个人站在的那个黑色瓷砖,“#”代表红色瓷原创 2016-04-21 00:12:14 · 591 阅读 · 0 评论 -
专题二 第十一道题
1.题目编号:10202.简单题意:输入一个正整数n,把整数1,2,3,4……,n组成一个环,使得相邻的两个整数之和均为素数。输出时从证书1开始逆时针排列。同一个环应恰好输出一次。n3.解题思路形成过程:这道题在算法经典入门里有,他上面写的是用到了回溯法,其实就是按照深度优先的顺序遍历。需要注意的是不要忘记测试第一个数和最后一个数4.感悟:一直wa,感觉写的挺对的啦……原来是输出的格式原创 2016-04-24 13:49:14 · 606 阅读 · 0 评论 -
专题二 第十二道题
1.题目编号:10152.简单题意:你的一个朋友正在做TKP研究,需要你在n*n正方形的封闭棋盘上寻找骑士最少的移动次数,他认为最困难的是解决两个给定的方格之间寻找最少移动次数。给出两个方块a,b,(a-h)表示列,(1-8)表示行,确定从a到b骑士移动的最短路径。3.解题思路形成过程:又是一个运用广度搜索的题目,在国际象棋的棋盘上,一匹马一共有8个可能跳跃的方向,而且马走日字。。可以定义原创 2016-04-24 15:03:05 · 478 阅读 · 0 评论 -
专题四 第三个题
1.题目编号:10032.简单题意:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?3.解题思路形成过程:又是一个最小生成树问题,老师讲过这个问题,当时讲的是并查集引出了这个问题。将全部城镇分为N个,将N个城镇全原创 2016-06-22 00:12:53 · 463 阅读 · 0 评论 -
专题四 第十二道题
1.题目编号:2.简单题意:3.解题思路形成过程:4.感悟:5.AC的代码:原创 2016-07-07 00:10:20 · 344 阅读 · 0 评论 -
专题四 第十一道题
1.题目编号:10232.简单题意:在2007年第十二届浙江大学生运动会,在浙江师范大学有一个新的体育场建成。这是一个可以容纳成千上万人的现代体育场。观众席作了一个圆,列的总数为300,编号为1—300,计数顺时针,我们假设行数是无限的。这些天,Busoniya想在这个体育场举行大型文艺演出。将会有n个人去那里,编号为1到n,Busoniya已经预订了几个座位。为了让它有趣,他为这些座位提了M原创 2016-07-03 23:16:47 · 358 阅读 · 0 评论 -
专题四 第十道题
1.题目编号:10072.简单题意:在2100年由于海平面上升,大多数的城市消失了,尽管有些存活下来的城市是相连的,但是大多数的城市是不相连的,政府想建一些道路将这些城市再次连接起来,但是他们并不像花太多的钱。题目给出了n个存活的城市,m条可以选择建的道路,和k个一直相连的城市。然后接下来m行,每行有三个数c,p,q,即从p到q健道路需要花费c元,接下来是k行,t个相连接的城市的数量,及他们的原创 2016-07-03 22:32:50 · 325 阅读 · 0 评论 -
ACM课程总结
ACM程序设计总结 在大一下学期的时候,老师就开了ACM程序设计这门课,当时也跟着老师上了几节课。一开始还是挺有兴趣的,感觉可以学到很多知识,但是学了几节课之后发现自己有好多知识都不知道,完全跟不上老师的思路,虽然C++在那个时候已经学习的差不多了,但是自己能够真正掌握的还是很少的。而且自己在上大学之前对程序设计语言一点都不了解,又不像男生头脑灵活,所以学习起来很吃力。直到大二又有了选原创 2016-07-03 21:02:08 · 2581 阅读 · 0 评论 -
专题四 总结
专题四总结图论总结:图论的相关算法:1.广度优先搜索:用队列实现(广度优先搜索树不唯一)从起点开始,标记已经访问过了;当队列非空的时候,就取首元素,然后元素出队,所有与该元素相邻且未被访问过的点入队列;标记入队的元素已经被访问过了。2.深度优先搜索:用栈实现,(递归实现)将顶点入栈,如果有相邻的点,就将其入栈,直到没有相邻点就将其出栈,然后找在栈顶的元素其他的相邻点原创 2016-07-03 20:56:42 · 365 阅读 · 0 评论 -
专题四 第八道题
1.题目编号:10162.简单题意:XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边,现在8600 想出去旅游,面对这这么多的路,他想找一条最安全的路。但是8600原创 2016-06-29 22:18:14 · 475 阅读 · 0 评论 -
专题四 第一道题
1.题目编号:10012.简单题意:有N个村庄,你需要建造道路使所有的村庄可以连在一起,如果有ABC三个村庄,AB之间有一条道路,AC之间也有一条道路,那么BC之间因为这两条线也能连在一起。我们已经知道有的村庄之间有已经建造的道路,求使所有村庄连在一起需要再建造的道路的最小值。3.解题思路形成过程:看到这个题,就想着有N座城市,给出的是每个城市之间的距离,然后有给出了城市之间已经建完的道路原创 2016-06-11 21:04:05 · 497 阅读 · 0 评论 -
专题二 总结(搜索)
2016-04-24这个专题主要就讲了两个搜索:广度搜索和深度搜索(bfs and dfs)。通过做了这么多题,总结一下,其实广度搜索和深度搜索都是一种盲目搜索,也可以叫暴力搜索吧?需要把每个结点都搜一遍,老师说很多题都能用搜索来解决,比如最近上课讲的动态规划问题许多就能用搜索来解决。但它们不适合解决一些非常大数量的问题。而且遇到用这两种搜索的题目时,就像用模板一样把它写出来,但是,虽然好原创 2016-04-24 19:52:43 · 293 阅读 · 0 评论 -
专题二 第十三道题
1.题目编号:10172.简单题意:S毫升的可乐,将其用M,N,S毫升三个容器平分,且S=M+N。如果能就输出倒可乐的最少的次数,如果不行就输出NO3.解题思路形成过程:这是一个老师讲过的题目,一开始看到这个题的时候一点思路都没有,运用了广度搜索,记得老师讲如果倒的话首先预处理一下,使M4.感悟:这道题目比较复杂,老师讲的时候也是云里雾里,正好借这个题,自己打一遍加深一下印象~原创 2016-04-24 15:21:13 · 310 阅读 · 0 评论 -
专题二 第四道题
1.题目编号:10052.简单题意:一天Mr.West开着新车在环城中遇到了一个拐角,车在的那条街宽x,要拐进去的那条街宽y,车长l宽d求一下Mr.West能不能通过这个街角3.解题思路形成过程:这是一个涉及数学角度的问题,只要求得轿车拐弯时的最大高度即可。根据常识我们知道当x,y都小于d时肯定过不去,再通过画图分析可得到两个计算公式:s = l * cos(θ) + w * sin(θ)原创 2016-04-20 23:33:10 · 406 阅读 · 0 评论 -
专题三 第15题
1.题目编号:10232.简单题意:Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到原创 2016-05-15 23:41:39 · 530 阅读 · 0 评论 -
专题三 第二题
1.题目编号:10112.简单题意:根据提供的蜂房的结构,计算蜜蜂从a蜂房到b蜂房的可能路线数。蜜蜂只能向右侧相邻的蜂房爬行,即只能按顺序例如1,2,3不能2,1,3爬行。3.解题思路形成过程:这道题比较简单,是大一的时候老师给讲过的一道题,貌似考试的时候还考到了,最重要的是找到各蜂房路线之间的关系:f(i)=f(i-1)+f(i-2)4.感悟:哈哈,终于遇到一个我看一遍就想到思路的题原创 2016-04-28 16:30:52 · 1052 阅读 · 1 评论 -
专题三 第一题
1.题目编号:10062.简单题意:将数塔从顶层走到底层,每步只能走相邻的结点,求经过的结点的数字之和最大是多少。3.解题思路形成过程:在周天的时候刚刚学了动态规划,而且老师讲的一个题和这个特别像~最主要的是建立一个递推公式,通过观察,从最下层开始将最大的找出来逐层向上加就能够得到数字最大值和,公式为:F[i][j]=a[i][j]+max(F[i+1][j],F[i+1][j+1].原创 2016-04-27 23:53:51 · 242 阅读 · 0 评论 -
第七道ACM程序题
1.题目编号:1001和1008Problem DescriptionThere is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one原创 2016-03-27 17:42:42 · 572 阅读 · 0 评论 -
第六道ACM程序题
1.题目编号:10002.简单题意:一层楼沿着走廊南北向的两边各200个房间,为了装修,经理需要在各个办公室之间搬运办公桌,走廊一次只能通过一张办公桌,从一个房间到另一个房间最多用时10分钟,编写一道程序使用时最短。3.简单思路形成过程:使用贪心算法,为了用时最短则需要搬运办公桌同时进行,使单独搬运的办公桌的次数最少,另外将走廊排上号,每个对面房间的走廊为一个号,便于计算4.感想:这道原创 2016-03-27 15:58:02 · 348 阅读 · 0 评论 -
专题二 第一道题
1.题目编号:1008Problem DescriptionA有1数m,B来猜.B每猜一次,A就说"太大","太小"或"对了" 。 问B猜n次可以猜到的最大数。 Input第1行是整数T,表示有T组数据,下面有T行 每行一个整数n (1 ≤ n ≤ 30) O原创 2016-04-07 00:36:42 · 310 阅读 · 0 评论 -
第四道ACM程序题
1.题目编号:10132.简单题意:某公司连续5个月有一个盈亏报表,每年有八次。每次的盈亏报表总是亏的,但每个月要么是亏,要么是赢,在这种情况下,给出盈利s和亏损d来计算全年公司最高盈利多少,输出盈利,否则输出Deficit3.解题思路形成过程:要想得到最高的盈利,则需要使每五个月里出现最少的亏损月数。又因为每五个月既有亏又有赢,所以每五个月里亏损的月数有1、2、3、4当亏损月数为1时原创 2016-03-22 22:54:16 · 350 阅读 · 0 评论 -
第九道ACM程序题
1.题目编号:1015Problem DescriptionThe cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the next N (1 <= N <= 10,000) weeks, the price of milk and labor will fluctuat原创 2016-04-01 23:35:34 · 671 阅读 · 0 评论 -
第三道ACM程序题
1.题目编号:10062.简单题意:给出一组楼层数,计算电梯所要花费的时间,每上一层花费6秒,每层楼停5秒,每下一层需要4秒。3.简单思路形成过程:将给的楼层数放在一个动态数组里面,只需要知道比较一下相邻数据的大小就可以知道要用层数乘以6还是4。4.感悟:看似简单的一道题,其实往往暗藏着一些容易被人忽略的细节,比如连续的两个数相同,则也需要将时间加上5。还有给时间初始化的时候需要将它写原创 2016-03-20 17:01:02 · 348 阅读 · 0 评论 -
第八道ACM程序题
1.题目编号:1017原题:Problem DescriptionA factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products are always delivered原创 2016-03-30 10:51:23 · 360 阅读 · 0 评论 -
第二道ACM程序题
1.题目编号:10122.简单题意:输入两个数据n和p,计算出p是哪个数的n次方,并输出这个数。3.解题思路形成:用power函数可以计算k^n,但要求的是k,因为p^(1/n)=k,故可用pow(p,1/n)计算k。4.感悟:看似这个题目非常简单,但是根据自己以往的想法写代码肯定会超时,老师讲过二分法,但是当时的时候我就没理解,自己找资料也看不懂,就用指数和对数相互转换,可是,第一次原创 2016-03-17 11:01:40 · 310 阅读 · 0 评论 -
专题三 第三题
1.题目编号:10122.简单题意:给定一个2*n的长方形,将1*2的骨牌铺满长方形,求出可以有多少种铺法。3.解题思路形成过程:看到这个题,首先计算一下n为不同值的时候有多少铺法,n=1时num=1,n=2时num=2,n=3时,num=3……经过发现,它和1011题目差不多,找到不同n之间的关系为:f(i)=f(i-1)+f(i-2).4.感悟:结合上一题目的经验,我将存放铺法的数原创 2016-04-28 16:45:22 · 362 阅读 · 0 评论 -
专题三 第四题
1.题目编号:10102.简单题意:一个有M级的楼梯,从第一级到M级每次只能跨一层或二层,求共有多少走法?3.解题思路形成过程:看到这个题之后,想了想,假设走法为num,当M=1时,num=0;M=2时,num=1;M=3时,num=2;M=4时,num=3……可以发现从第四层就有规律,道德级数和前面的级数关系为:f(m)=f(m-1)+f(m-2).动态规划呢,其实它和前两道题思想一样,原创 2016-04-28 17:16:05 · 346 阅读 · 1 评论 -
专题三 第十四题
1.题目编号:10182.简单题意:ACM做事之前都需要做一个预算,主要的收入是有限制的,这种想法的背后是很简单的,无论什么时候,只要ACM成员有一些小钱就存放到存钱罐里,并且这个过程是不可逆的,除非把存钱罐给打破。在足够的时间之后,存钱罐里应该有足够的钱去支付所有的东西,但是这其中有一个很大的问题,就是不可能确定里面有多少钱,有可能我们会打破存钱罐当里面还没有足够的钱,很明显,我们想打破这个原创 2016-05-15 22:55:57 · 347 阅读 · 0 评论 -
专题三 第九题
1.题目编号:10172.简单题意:一个人用一个体积为V的袋子收集骨骼,不同的骨骼有不同的体积和价值,计算体积V的袋子能收集骨骼的最大价值。3.解题思路形成过程:看到这道题就想到老师讲的背包问题,记得在课件上老师讲过背包问题可以用动态规划算法,也可以用贪心算法。获得最优值用了性价比,如果用动态规划,则需要找到状态转移方程,因为将前i个骨骼放在体积为V的袋子里,若只考虑第i个骨骼的策略可以转原创 2016-05-04 23:50:21 · 227 阅读 · 0 评论 -
专题三 第十三题
1.题目编号:10042.简单题意:一个数的因数为2,3.解题思路形成过程:4.感悟:5.AC的代码:原题:原创 2016-05-13 12:43:17 · 263 阅读 · 0 评论