上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 26 下一页
摘要: 思路黑书上有,这两道题目,我是用同一个代码ac的,也讲讲我自己的想法吧:首先a1+a2肯定会等于一个最小的值,然后a1+a3会是次小的值,这样,我们只要求出a1的值,那么枚举a2+a3的值,只要有解,那么可以求出a1的值,将已经求出来的a1、a2、a3两两相加的值去掉,遇到的下一个最小的值就会是a1+a4了,因为a1+a2,a1+a3,a2+a3的值已经被标记了,那么第一个未被标记的值一定会是最小的a1+a4的值,这样a4也出来了,再标记a1+a4,a2+a4,a3+a4.....然后遇到的下一个未被标记的值会是a1+a5........一次类推,然是所有的值两两相加后能在他们的和里找到,说明 阅读全文
posted @ 2013-05-28 02:10 紫忆 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 这是黑书课后习题锁链......他们都说是递推题目,好吧,我必须得承认可以用递推做,只是我不明白他们怎么推的,现在我说说我的做法:首先,需要看一看《九连环与格雷码不得不说的故事》(这是我转载的):分析解九连环的完全记法,由于每次只动一个环,故两步的表示也只有一个数字不同。下面以五个环为例分析。左边起第一列的五位数是5个环的状态,依次由第一环到第五环。第二列是把这个表示反转次序的五位数,似乎是二进制数,但是与第四列比较就可以看出这不是步数的二进制数表示。第三列是从初始状态到这个状态所用的步数。最右边一列才是步数的二进制表示。 00000-00000-0-00000 10000-00001-1.. 阅读全文
posted @ 2013-05-28 01:55 紫忆 阅读(1492) 评论(1) 推荐(1) 编辑
摘要: 很恶心的模拟题.......不过编完后,有着一些收获,以后的年月日题目都可以以这个代码为模板了。注意:这道题目加日期很好编,只要注意每次在加的时候,在月的时候,先转为某个月份的最后一天,然后再去判断大于这个的月份就直接减去这个月份,在年的转化中,都将它转为****/12/31,再去一年一年的加减.......加法的测试数据:383928228378减法的时候,就要注意好多了,我一开始按照加法的细节处理来处理减法,发现各种细节错误,在月份的时候,要转为钱一个月的最后一天,就是当day “大于等于"这个月份的时候,将这个月份减去(注意,这里不同于加法),这样可以避免出现2013/02/0 阅读全文
posted @ 2013-05-28 01:32 紫忆 阅读(438) 评论(0) 推荐(0) 编辑
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1181这是一道递归题?倒不如说是模拟题,不知道是哪个(混蛋)学长和我说的,模拟题是最容易,容易个毛线........好吧,废话不说了思路:黑书上有它的思路P20,但我还是说说自己的想法吧。先是按照黑书的思路,要是可以将一个n边形的问题规模转化为n-1,n-2......3,也就是说可以讲符合条件的三角形切掉,然后再去找下一个符合条件的三角形,再切掉.......但是有个问题,什么时候不切了??黑书中描述的很清楚,有一种特殊的情况,三种颜色,有一种颜色只出现一次,那么我们可以以这种颜色为顶点,分切 阅读全文
posted @ 2013-05-21 19:32 紫忆 阅读(375) 评论(0) 推荐(0) 编辑
摘要: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=15&problem=1323&mosmsg=Submission+received+with+ID+11785741题意:有n个喷水装置,可以喷出以r为半径的园的水,然后给出一个常为l,宽为w的长方形,求要多少个喷水装置.......这题水过,很是开心,主要是在精度那里我吸取了黑书第一题的教训,将精度分的很细,所以水了.......思路:将被喷水的圆转化到长方形上 阅读全文
posted @ 2013-05-19 21:35 紫忆 阅读(805) 评论(0) 推荐(0) 编辑
摘要: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=13&problem=1089&mosmsg=Submission+received+with+ID+11785491题意:有n段区间,每段区间至少要有k个广告牌,要求你在这些区间放置广告牌,但是广告牌的数量要是最少的,而且将其位置输出来。思路:经典贪心,区间选点问题。《算法入门经典》P154。假设每个区间是【ai, bi】, 那么先按照每个区间的bi从小到大排序。 阅读全文
posted @ 2013-05-19 20:20 紫忆 阅读(1479) 评论(0) 推荐(0) 编辑
摘要: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=12&problem=961&mosmsg=Submission+received+with+ID+11784999题意:有n段区间,用这n段区间去覆盖区间为0~~m的区间,求最少的区间段数。思路:把区间记为【xi,yi】;那么思考,只要按照xi从小到达排序,如果第一个区间起点不包含0就是无解的,否则则选择包含起点的最长区间,选择完后,新的起点就是yi了,在选择下一 阅读全文
posted @ 2013-05-19 18:07 紫忆 阅读(959) 评论(0) 推荐(0) 编辑
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1010思路:就是相邻的点的斜率必定最大,然后在这两点之间的点必定在它下方(其实看清题意,仔细思考下,就会明白,相邻两点之间由于都是整数,是没有点的.......)代码:#include<stdio.h>#include<iostream>#include<string.h>using namespace std;typedef __int64 ss;ss dp[200000];ss deal(ss m){ if(m<0) m=-m; return m;} 阅读全文
posted @ 2013-05-16 02:43 紫忆 阅读(190) 评论(0) 推荐(0) 编辑
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1011题意:就是有个城市有市民当售票员,比例超过总人数的p%而不到q%,求这个城市至少多少人?思路:很明显的枚举,只要存在第一个num*p/100==num*1/100的情况,就可以输出num,但是其精度害死人,具体看代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>using namespace std;int main(){ double n,m; w 阅读全文
posted @ 2013-05-16 01:25 紫忆 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 题意:有t组测试数据,每组测试数据中有n门功课,第一排完成它们的时间限制,第二排是未在限制的时间内完成的要扣除的分数,然后是需要求扣的分数最少。思路:一开始在想着用dp做,结果没有d出来,于是去看解题报告,发现可以用贪心做,但是我也没有想到思路......是这样的,对分数按从大到小排次序,然后枚举限定的时间,若是某一天没有被标记,就用这一天来完成这一门作业,若是枚举到0了,说明在限定时间内没有哪一天可以完成这门作业,那么就扣除这门课的分数......具体看代码吧:#include<stdio.h>#include<iostream>#include<string. 阅读全文
posted @ 2013-05-15 19:55 紫忆 阅读(2590) 评论(0) 推荐(1) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 26 下一页