11 2013 档案
URAL 1993 This cheeseburger you don't need
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1993题意:题目中那么多英语直接就没看,看了样例知道是什么意思了,就是给你一个字符串,算是一个句子,若是复杂句,是有“ ,”作为分割为两个句子的,若是不加任何括号的就原样输出,若是有括号的先输出花括号里的,再输出中括号里的,再输出小括号里的,每一句话只有第一个字母大写。思路 :模拟题吧,一向挺烦的,万一哪个细节没注意到就容易出错。#include#include#define maxn 1000using namespace std;char s[maxn],s1[maxn];int a[max 阅读全文
posted @ 2013-11-30 20:22 枫、 阅读(250) 评论(0) 推荐(0) 编辑
CF 369 B. Valera and Contest
摘要:http://codeforces.com/contest/369/problem/B题意 :n, k, l, r, sall, sk,n代表的是n个人,这n个人的总分是sall,每个人的得分大于 l 小于 r ,其中k个人的分数构成了非递增序列,他们的分数总共为sk,让你求出每个人的分数输出即可,只要输出满足要求的一种即可。思路 :这个题我是比赛完了才做的,据说很多人当时做的时候就因为错在没有特判0上,还有我做的时候越界了,因为没有考虑到如果k=n的话,n-k=0,这样的话sall%n就不对了。就是先看这k个人的,让sk取余k,得到的余数从第一个人开始加1,直到余数没了为止,因为这k个是非递 阅读全文
posted @ 2013-11-30 19:21 枫、 阅读(1396) 评论(0) 推荐(0) 编辑
POJ 3393 Lucky and Good Months by Gregorian Calendar
摘要:http://poj.org/problem?id=3393题意 : 对于这篇长长的英语阅读,表示无语无语再无语,花了好长时间,终于读完了。题目中规定每周的周六日为假日,其他为工作日,若是一个月的第一个工作日是周一,就定义这个月为good,若是一个周的最后一个工作日是周五,就定义这个月为luck。给你一个起始年月,一个终止年月,让你求出在这中间有多少luck月有多少good月。当然了,若是一整片文章就写了这点东西那也就太废话了,所以题目中还给出了几点应该注意的:1.在1582年以前,只要年份取余4为0就为闰年,在1582年以后,年份取余4为0且取余100不为0或者是取余400为0才是闰年。2. 阅读全文
posted @ 2013-11-29 21:21 枫、 阅读(500) 评论(0) 推荐(0) 编辑
HDU 1031 Design T-Shirt
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1031题意 :n个人,每个人对m件衣服打分,每个人对第 i 件衣服的打分要加起来,选取和前 k 高的输出他们的编号 i ,然后这k个的序号要倒序输出思路 :快排一下就行了。这道题坑了我好几遍TLE,原因是我交的语言是G++而不是C++。。。。。。#include #include #include using namespace std ;struct node{ double sati ; int order ;} a[11100] ;bool cmp(const node &x,const n.. 阅读全文
posted @ 2013-11-29 18:04 枫、 阅读(225) 评论(0) 推荐(0) 编辑
SDUT 2523 OOXX
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2523思路 :就是先统计一下方阵中1多少2多少,确定一下下一步谁走,然后再从头开始找是0的位置,往上填下一步该谁走的棋,然后判断一下能不能构成三横三竖或者是对角线#include #include #include using namespace std ;int ch[8][3] = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}} ;int sh[110] ; 阅读全文
posted @ 2013-11-26 17:14 枫、 阅读(199) 评论(0) 推荐(0) 编辑
HDU 1022 Train Problem I
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1022题意 :其实我没看题,看了样例还有下边的那个解释,就知道是什么意思了,这个我也说不清楚,,,,只可意会不可言传,反正就是火车按照第一个字符串进站,看能不能按第二个出来,如果能就输出怎么进出的,不能直接输出NO.。思路 :栈的应用。#include #include #include #include using namespace std ;int main(){ stackQ ; int n ,flag[100]; //memset(flag,0,sizeof(flag)) ; ... 阅读全文
posted @ 2013-11-24 17:02 枫、 阅读(220) 评论(0) 推荐(0) 编辑
POJ 3292 Semi-prime H-numbers
摘要:http://poj.org/problem?id=3292题意 :表示这个题我真的没看懂。。。大意是讲:对于4*n+1(n为自然数)组成的集合H-numbers,乘法在该集合中是封闭的,在该集合内,只能被1和自身整除的为H-primes,然后由两个H-primes的乘积为H-semi-prime,给你一个数k,让你求从1到k有多少个H-semi-prime。思路 :一开始没看懂题也就不知道意思,其实看来这道题就是枚举嘛。#include #include using namespace std;const int maxn = 1000201 ;int h_prime[maxn] ;int 阅读全文
posted @ 2013-11-24 16:24 枫、 阅读(209) 评论(0) 推荐(0) 编辑
POJ2187Beauty Contest
摘要:http://poj.org/problem?id=2187题意 :有一个农场有N个房子,问最远的房子相距多少距离 。思路 :凸包,旋转卡壳,通过寻找所有的对锺点,找出最远的点对。#include #include #include #include #include using namespace std ;typedef long long ll ;const int maxn = 50000 ;struct point{ int x ; int y ;}p[maxn],ch[maxn] ;int det(int x1,int y1,int x2,int y2 )//叉积{ ... 阅读全文
posted @ 2013-11-24 12:45 枫、 阅读(221) 评论(0) 推荐(0) 编辑
CodeForces 279B Books
摘要:http://codeforces.com/problemset/problem/279/B题意 :Valera 有很多的空闲时间,所以他决定看书,给出n本书,编号1到n,和看每本书需要的时间,他看书是随机的,然后是连续的,从第 i 本开始看,看完了会看第i+1本,然后是第i+2本,问他在时间 t 内最多能看多少本书。思路 :一开始没看明白题意,以为把时间排序,从小开始往里加,后来才发现人家要求的是连续的。这个就是循环从头开始加,如果时间超了,就从第一本开始往外删。#include #include #include using namespace std ;int book[101000] 阅读全文
posted @ 2013-11-23 21:43 枫、 阅读(438) 评论(0) 推荐(0) 编辑
SDUT 2527 斗地主
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2527思路 :以前的结训比赛,当时不会做,比完了也没去看,真是悲剧了。这次还是没做出来,因为很多细节问题并没有处理好。输入的时候要注意输入别的时候都是一个字符,但偏偏10不是,也因此容易产生错误,所以就要按字符串输入,然后再仔细一点这题就差不多了。#include #include #include #include using namespace std ;char ch[110] ;int sh[110] ;int main(){ int 阅读全文
posted @ 2013-11-23 21:16 枫、 阅读(195) 评论(0) 推荐(0) 编辑
HDU1020 Encoding
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1020题意 :给定一个字符串,只包含大写字母,如果字符串中又连续相同的字母,个数大于1的话,就输出该字母连续出现了几个,再加上这个字母,如果只出现一次的话就输出该字母即可。例如ABBCCC,A只出现了一次,就输出A,B出现了两次,就输出2B,C出现了三次,就输出3C。思路 :本来我想用哈希来着,结果想想不对,不用那么麻烦,又改了,因为字符串不是很长,所以从头开始找就行。一定要是连续的,ABAG,输出ABAG。//HDU1020#include #include #include using namespace 阅读全文
posted @ 2013-11-23 09:59 枫、 阅读(230) 评论(0) 推荐(0) 编辑
POJ 2635 The Embarrassed Cryptographer
摘要:http://poj.org/problem?id=2635题意 :给你一个大数,它是两个素数的乘积,再给你一个数L,如果这两个素数中较小的那个比L小,就输出BAD和这个小的素数,反之就输出GOOD 。思路 :所谓的高精度取模+同余模定理,表示真的不会。。。看的题解,才知道原来还可以是1000进制,很多人用了10000进制不对,原因是因为余数可能会超范围,而10进制估计会超时吧。http://blog.csdn.net/lyy289065406/article/details/6648530#include #include #include #include using namespace 阅读全文
posted @ 2013-11-22 21:37 枫、 阅读(232) 评论(0) 推荐(0) 编辑
POJ 1942 Paths on a Grid(组合数)
摘要:http://poj.org/problem?id=1942题意 :在一个n*m的矩形上有n*m个网格,从左下角的网格划到右上角的网格,沿着边画,只能向上或向右走,问有多少条不重复的路 。思路 :这种问题记得高中的时候就做过,学组合数的时候讲的,反正就是向上向右走,加起来要走的路必定为n+m条,选择n条向上,必定剩下的m为向右的,所以这个题就转化求C(n,m+n),或者是C(m,m+n),不过个人建议用m,n中小的那个数去做,因为省时。因为这个数据较大,所以求组合的时候就要注意以防超时,如果还像1850那样用杨辉三角就容易超时了,就要用另一种方法去求组合数,我以前整理过4种求组合数的方法,正好 阅读全文
posted @ 2013-11-22 20:03 枫、 阅读(178) 评论(0) 推荐(0) 编辑
POJ 1850 Code(组合数)
摘要:http://poj.org/problem?id=1850题意 :给定字符串,系统是用字符串组成的,字符串是按字典序排的。编码系统有三条规则,1这些的单词的长度是由小到大的,2相同长度的按字母在字典序的顺序排的,3 a-1,b-2,.....z-26,ab-27,..........,az-51,bc-52,............,vwxyz - 83681,.................。输入的是长度不超过10的全为小写英语字母的字符串,让你输出对应的数字,如果并没有按照顺序,则输出0 。思路 :http://hi.baidu.com/lxyzmnwvhokptur/item/18c 阅读全文
posted @ 2013-11-22 18:33 枫、 阅读(264) 评论(0) 推荐(0) 编辑
HDU 1205 吃糖果
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1205思路 :吃糖的话要从数量最多的那种开始吃,如果碰到某些情况就会吃不完,就像你把少的糖先吃了,就没法将多的糖隔开了。例如5 1 1 1 1,你先从5开始吃就能吃完,但是如果你从1开始吃就吃不完。而如果5块糖就只需要4块其他的糖进行分隔就吃得完,所一就要判断最多的那个数sum-max+1>=max就可以了 。//HDU1205#include #include #include using namespace std ;__int64 a[10000100] ;int main(){ int T ; 阅读全文
posted @ 2013-11-22 16:24 枫、 阅读(203) 评论(0) 推荐(0) 编辑
POJ2739Sum of Consecutive Prime Numbers
摘要:http://poj.org/problem?id=2739题意 :一个正整数能够表示为一个或多个连续素数和,给你一个正整数,让你求,有多少个这样的表示。例如:整数53有两种表示方法,5+7+11+13+17和53,41有三种表示方法,2+3+5+7+11+13,11+13+17还有41,而整数20没有这样的表示方法。思路 :因为取值到10000,所以先素数打表,然后枚举所有的表示方法中连续的素数里最小的那个即可。#include using namespace std;const int maxp = 2000,n = 10000 ;int prime[maxp],total = 0 ;bo 阅读全文
posted @ 2013-11-16 21:16 枫、 阅读(244) 评论(0) 推荐(0) 编辑
CodeForces 300A Array
摘要:http://codeforces.com/problemset/problem/300/A题意 :给你n个数字,让你分成3组,第一组各个数之积要小于0,第二组要大于0,第三组要等于0,符合要求的答案可能会有很多种,输出其中一种。思路 :表示一开始以为要把n个数分成3组,第一组里的数都大于0这样子,所以一直卡在这儿。。。。因为这个题也相当于special judge了吧,所以要找一个最不容易出错的输出,把n个数排序,最小的肯定是负的(题目保证至少有一个正确答案),所以直接把它分在第一组就行,然后如果然后最大的数分在第二组,当然了,如果最大的数也不大于0,这时候就要把第二个第三个放在一起,这样乘 阅读全文
posted @ 2013-11-16 19:54 枫、 阅读(247) 评论(0) 推荐(0) 编辑
CodeForces 299B Ksusha the Squirrel
摘要:http://codeforces.com/problemset/problem/299/B题意 :这个题挺简单的,就是说这个姑娘不喜欢走有石头的扇形,所以给你一个k的值,代表她一次可以跳多少扇形。思路 :由于细节问题,那些循环的边界没弄好WA了几次,不过后来终于改对了。。。。#include#include#includeusing namespace std;const int maxn = 301100 ;char ch[maxn] ;int main(){ int n,k ; scanf("%d %d",&n,&k); int flag = 0,j; 阅读全文
posted @ 2013-11-16 19:48 枫、 阅读(312) 评论(0) 推荐(0) 编辑
CodeForces 299A Ksusha and Array
摘要:http://codeforces.com/problemset/problem/299/A题意 :输入n个数,要求找出一个数能让其他所有的数整除,如果没有的话输出-1.有多个的话输出其中一个。思路 :表示一开始看错题了,卡了好久,后来想了想就去翻译了一下,才懂什么意思。。。-.-||。。其实就是要找的话如果有这样一个数就一定是最小的那个数,所以只需要判断一下最小的那个数能不能被后边的数整除就可以了。#include #include #include #include using namespace std ;int a[111000] ;int main(){ int n ; ... 阅读全文
posted @ 2013-11-16 19:23 枫、 阅读(323) 评论(0) 推荐(0) 编辑
HDU1013Digital Roots
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1013题意 : 给你一个数把它的每位数都加起来,如果和不是1位数,就继续把和的每一位数加起来,直到加到一位数为止 。思路 :这个题我一开始想的很简单,虽然它本身就是很简单的,因为题目中并没有给出n的大小,所以我没有在意,结果肯定就是WA,还有,其实这个题是有规律,有兴趣的可以写写看,当n等于0,1,2,3,4,5,6,7,8,9,10,11..................100,101,102,103时,root等于0,1,2,3,4,5,6,7,8,9,1,2................1,2,3, 阅读全文
posted @ 2013-11-16 14:02 枫、 阅读(160) 评论(0) 推荐(0) 编辑
CF 136B Ternary Logic
摘要:http://codeforces.com/problemset/problem/136/B题意 :就是说tor是一个三进制的运算,代表的是两个三进制数的运算,两个三进制数按位逐一相加后对三取余,没有进位,但是如果两个没有相同多的位数的话,短的那个0。而那个样例就是10进制的14和10进制的59进行tor运算,就相当于分别转化成三进制在进行tor运算,a tor b = c,给你a和c,让你求b 。思路 : 其实也没什么好说的,题懂了,基本上思路也就出来了,我也就是把a c都转化成三进制的,然后用c的三进制减a 的三进制,最后再转化成10进制即可 。#include#include#inclu 阅读全文
posted @ 2013-11-10 20:29 枫、 阅读(246) 评论(0) 推荐(0) 编辑
CF 136A Presents
摘要:http://codeforces.com/problemset/problem/136/A题意 :就是输入很多数字,第 i 个数字 pi 代表着第 i 个人的礼物给了第 pi 个人,而让你输出的数字中代表的就是 谁的礼物给了第 i 个人思路 :就这道题我竟然脑子锈了很久才想出来。。。#include#include#includestruct node{ int give ; int given ;}a[110] ;using namespace std ;bool cmp(struct node s,struct node t){ return s.given<t.giv... 阅读全文
posted @ 2013-11-10 20:10 枫、 阅读(265) 评论(0) 推荐(0) 编辑
CF135A Replacement
摘要:http://codeforces.com/problemset/problem/135/A题意 : 我能说我卡在这个题的题意上很久吗。。。。。这个题就是在数组里找一个数,然后找另一个数把他替换掉,然后再对数组进行排序,输出可能的数组最小值。。。。思路 : 一开始没反应过来,不知道要替换掉哪个数,后来一想才明白,要求最后得到的最小,那就把最大的那个替换掉不就行了,而且最简单的还是替换成1,然后要注意的一点是因为题目中说必须要替换掉一个,而且不能用自己替换掉自己,所以要考虑万一输入的全是1,就要替换成2。。。。#include#include#includeusing namespace std 阅读全文
posted @ 2013-11-10 20:04 枫、 阅读(190) 评论(0) 推荐(0) 编辑
SDUT2190救基友记1
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2190思路 : 这个题,一开始以为是博弈,以为大概几行核心代码就搞的定,结果应该算是一个简单数学小题吧,考的是思维。按题中要求,可以得出,主要分为两种情况,一种是考虑这一数串的每个数字之和能被三整除和不能被三整除的,如果能被三整除,就判断被3整除的数字的个数有奇数个还是偶数个,如果是奇数个就是妖怪输。而不能被三整除的时候,就要去看和对3取余余几 ,如果余的数在原串里找得到或者是原串某个数对3取余与这个余数相等,那第一步的WP就必须拿掉这个数才符 阅读全文
posted @ 2013-11-10 19:57 枫、 阅读(220) 评论(0) 推荐(0) 编辑
HDU4502吉哥系列故事——临时工计划
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4502题意 :这个是中文题,我就不再详述了。思路 : 以前做过一个活动区间选择,结果就按着那个思路敲了,后来发现只能保证做足够多的工作,但是无法保证获得的钱最多,才知道是一个动态规划,其实对于我这种菜鸟来说,做动态规划没有什么难不难的,只有找不找的到公式的。。。。。我的代码里dp[h][k]代表的是从第h天干到第k天能赚多少钱,所以存在一个变量h #include#include#includeusing namespace std ;struct node{ int start ; int en... 阅读全文
posted @ 2013-11-09 13:54 枫、 阅读(202) 评论(0) 推荐(0) 编辑
SDUT2191Calendar
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2191题意:给你两个年月日,让你算出其中经历了多少天输出 。思路 :这个题是一个大大的模拟,可惜比赛的时候我都卡了一个半小时,又回去改了好久脑子都废了。今早上才在二师兄的点播之下才知道,原来年月日不一定上边的小,所以要判断一下,我就是因为这个WA了十几遍。。。。T_T。。。。。。。#include#include#includeusing namespace std ;struct node{ int year ; int month ; .. 阅读全文
posted @ 2013-11-08 09:21 枫、 阅读(204) 评论(0) 推荐(0) 编辑
HDU 1004 ballons(map)
摘要:题意:输出颜色最多的那个颜色。思路:水题一道。#include #include #include #include using namespace std;int main(){ int n ;map boll ; while(cin >> n) { if(n == 0) break ; string str,s ; boll.clear() ; for(int i = 0 ; i >str ; boll[str]++ ; } map::iterator ... 阅读全文
posted @ 2013-11-07 13:37 枫、 阅读(145) 评论(0) 推荐(0) 编辑
POJ3122Pie(二分)
摘要:http://poj.org/problem?id=3122题意 :这个题最主要的就是审题要仔细,翻译不要漏句子。题目讲的是我要过生日,要给好友分馅饼(还有自己也想要一块),怕引起不公,所以每个人大小要一样,形状可以不一样,还有一句很重要,就是第一段最后那里,每个人得到的pie应该是馅饼的一块,而不是很多块零零碎碎的那种,因为那样的话就变成求平均值了 。思路:这个理解了题意之后,就猜得到用二分了。表示一开始真的以为是求平均值来着,实际上不是,举个例子,1,2,3,三块馅饼,若每人分得的大小为2,则第一块小于2,丢弃,第二块正好等于2,第三块剩下一个1,丢弃,所以不要理解成求平均值,这个的上下界 阅读全文
posted @ 2013-11-07 00:58 枫、 阅读(329) 评论(1) 推荐(0) 编辑
POJ1905Expanding Rods(二分)
摘要:http://poj.org/problem?id=1905题意 :在两堵实心墙中间有一根杆,长度为L,然后给它加热,温度是n,则两墙之间的杆会弯曲,长度会变为L'=(1+n*C)*L,求前后两个状态杆的中心位置的距离思路 :一部分几何加上最主要的二分 。这个我发现小优姐写的特别好,分析的也很完美,我就不再多解释了,发一下链接吧http://blog.csdn.net/lyy289065406/article/details/6648562#include#include#include#includeusing namespace std ;const double eps = 1e 阅读全文
posted @ 2013-11-07 00:12 枫、 阅读(165) 评论(0) 推荐(0) 编辑
POJ3258River Hopscotch(二分)
摘要:http://poj.org/problem?id=3258题意:有一条很长很直的河距离为L,里边有n块石头,不包括起点和终点的那两块石头,奶牛们会从一个石头跳到另外一个,但因为有的石头隔得太近了,所以需要删除m块石头,来增大石头之间的最小距离。求删掉m块石头之后的其中两块石头的最小距离 。思路 :这个题的和3273思路代码都很像,不过这个可能难理解一点,也是二分的思路。#include#include#include#includeusing namespace std ;int main(){ int l,n,m ; while(scanf("%d %d %d",&am 阅读全文
posted @ 2013-11-05 21:51 枫、 阅读(178) 评论(0) 推荐(0) 编辑
POJ3273Monthly Expense(二分)
摘要:http://poj.org/problem?id=3273题意: 农夫约翰给出了n天的每天花费 ,让你将这n天分成m组,每组中存在的天数必须是连续的,然后让每组里花费的总和尽量的小,最后将花费最大的那个费用输出 。思路 :分在数学计算方法里的这4个题好像都是二分吧,这个题也是用的二分。#include#includeusing namespace std ;int a[110000] ;int main(){ int n ,m; while(scanf("%d %d",&n,&m)!=EOF) { int low = 0,high = 0 ,sum = 0 阅读全文
posted @ 2013-11-05 17:08 枫、 阅读(186) 评论(0) 推荐(0) 编辑
POJ1002487-3279(map)
摘要:http://poj.org/problem?id=1002题意:是说很多公司用了容易记住的电话号码,例如有英文字母的或者是用了很多连字符或没有连字符的。每个电话号码都有标准模式,而为了统计有没有重复的电话号码,就要统计有多少的电话号码是重复的,只要是有重复的就输出他的标准模式,如果所有的字符串都没有重复的,就输出No duplicates.思路:这个题就用了普通的枚举,用的是cin输入的,结果是超时了,后来改成scanf就A了。这个题还可以用map去做,以及在排序的时候转换成整型会省更多的时间,后两种方法,第一种方法用时1454ms,第三种方法用时574ms,至于map我还没写,夜实在是深了 阅读全文
posted @ 2013-11-03 01:02 枫、 阅读(191) 评论(0) 推荐(0) 编辑
HDU 3123 GCC
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3123题意:!代表阶乘,0的阶乘为1,求(0! + 1! + 2! + 3! + 4! + ... + n!)%m的结果。思路:一开始想的复杂了,因为题中n的范围太大了,所以想用大数乘法来着,结果因为阶乘的和还要加起来取余,所以以为还要大数加,再来一个n(a + b) % p = (a % p + b % p) % p这个公式就差不多了,但是想的太多了,真的很复杂,其实没有那么复杂,就是判断一下n和m 的大小,因为如果n比m大的话,从m!+(m+1)!....n!这一些对m取余都是0,所以就不需考虑了,而剩下 阅读全文
posted @ 2013-11-02 20:07 枫、 阅读(301) 评论(0) 推荐(0) 编辑

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