
Codeforces
文章平均质量分 73
XDU_Skyline
Everything is over, everything is just beginning.
展开
-
2015 NEERC F. Gourmet and Banquet
1.题目描述:点击打开链接2.解题思路:本题利用二分法解决。根据题意,可以发现需要对区间的右端点排序即可。接下来就是二分时间x,那么怎么判断是否合法呢?首先用一个全局变量cnt表示第几次标记(好处是不需要每次都清空数组了),接下来对这段区间中不是cnt的点进行标记,用cur来统计标记的次数,如果最后cur3.代码:#include#include#include#include原创 2015-10-18 00:51:16 · 730 阅读 · 2 评论 -
#309 (div.2) A. Kyoya and Photobooks
1.题目描述:点击打开链接2.解题思路:本题实质上在问:给定一个长为L的字符串,在26个字符中选一个字符插入该串,可以形成多少个新的字符串。这就是一个简单的计数问题,长度为L的字符串有L+1个空位可以插入,一共有26*(L+1)个方法,考虑到相同字符的情况,要减去一个,一共有L种重复的情况,因此最终有26*(L+1)-L=25*(L+1)+1种情况。3.代码:#define _CRT_原创 2015-07-02 11:49:15 · 762 阅读 · 0 评论 -
#308 (div.2) C. Vanya and Scales
1.题目描述:点击打开链接2.解题思路:本题可以事先进行一下简单的数学推导解决。实际上要满足的等式就是如下的式子:a0*w^0+a1*w^1+a2*w^2+...+an*w^n=m上式中,所有的ai均应该是{0,1,-1}中其中一个数,这样推导之后,大致的解题思路便浮出水面了。就是不断地以w取模,然后m/=w,看余数是否满足条件即可。不过这里还要多深入思考一点,首先不难发现,如果w≤3原创 2015-06-29 22:49:57 · 587 阅读 · 0 评论 -
#298 (div.2) A. Exam
1.题目描述:点击打开链接2.解题思路:本题利用构造法解决。对于n≤3的情况可以特判一下。对于大于3的情况,可以让前一半都是偶数,后一半都是奇数即可。因为相邻的两个奇数或偶数的间隔都是2,满足题意。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#inc原创 2015-06-09 20:05:33 · 551 阅读 · 0 评论 -
#306 (div.2) D. Regular Bridge
1.题目描述:点击打开链接2.解题思路:本题属于一道图论的构造题。要求构造出一张无向图,其中所有的顶点的度数均为k,且至少含有一个桥。这道题在比赛时候没有任何思路,因为始终想象不出来k>1的情况。比赛结束后终于尝试画出了k=3的情况。然后摸索出来了做题方法。首先,对于k等于偶数的情况,一定是不存在解的。假设顶点0是桥的一个端点,那么将桥断开后,它和所在的连通分量的2m-1个点相连(设k=2原创 2015-06-09 18:52:29 · 757 阅读 · 0 评论 -
#292 (div.2) D.Drazil and Tiles
1.题目描述:点击打开链接2.解题思路:本题一开始迟迟没有好的思路,随后通过思考,发现应该用贪心法解决:首先应该着力填充周围只有一个空格的点,随后以它的空格为中心,再不断向外拓展,直到整个界面被填充。这样便解决了本题。3.代码:#define _CRT_SECURE_NO_WARNINGS #include#include#include#include#include#i原创 2015-03-02 12:11:04 · 851 阅读 · 0 评论 -
#298 (div.2) D. Handshakes
1.题目描述:点击打开链接2.解题思路:本题是一道模拟题。要求找出一个队列,使得队列中的每个人的握手次数符合输入的情况,如果不存在输出无解。其中每三个人可以在任何时刻组成一个队伍开始比赛,后面的人不能再与他们握手。通过手动操作与观察可以发现,如果把队列中的人的握手次数均取除以3后的余数。那么正好形成0 1 2 0 1 2....的循环序列。所以可以通过这个来模拟该过程。事先用map保存握手次数原创 2015-04-13 19:10:26 · 493 阅读 · 0 评论 -
#300 (div.1 2) B. Quasi Binary
1.题目描述:点击打开链接2.解题思路:本题利用扫描法解决。一开始想复杂了,把所有的01组成的数字全部都列举了出来,想一个个尝试。结果到最后也没能写成,放弃了。比赛后发现思路其实非常简单。把每一位的数字看做一根柱子的高度,逐层扫描即可。如果第j位的数字大于当前层i,那么这一位设置为1,否则设置为0。可以发现,最终的答案就是输入的数字中最大的那一位数,而设置每一位的值恰好可以利用string来方原创 2015-04-27 13:39:58 · 780 阅读 · 0 评论 -
#308 (div.2) A. Vanya and Table
1.题目描述:点击打开链接2.解题思路:本题是一道简单的模拟题,每次扫描一个输入的长方形,然后将内部所有点都+1,最终统计数组所有元素的和即可。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#inc原创 2015-06-29 13:02:10 · 793 阅读 · 0 评论 -
#308 (div.2) D. Vanya and Triangles
1.题目描述:点击打开链接2.解题思路:本题是一道简单的计算几何题,统计一个图中有多少个三角形,由于给的时间很宽,完全可以用O(N^3)的算法来解决,判断是否构成三角形只需要用向量来判断三点是否共线即可。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#原创 2015-06-29 13:14:23 · 937 阅读 · 0 评论 -
#308 (div.2) B. Vanya and Books
1.题目描述:点击打开链接2.解题思路:本题要求统计数位的个数,简单的试验一下发现有如下规律:一个n位数的个数有9*(10^n)个,因此所有n位数的数位是n*9*(10^n)个,因此可以利用两个循环变量base,k来计算,其中base表示n位数的总个数,k表示每一个n位数的数位有k位,循环条件是n-base>0,这样即可完成统计。3.代码:#define _CRT_SECURE_NO_原创 2015-06-29 13:07:20 · 810 阅读 · 0 评论 -
Looksery Cup 2015 G. Happy Line
1.题目描述:点击打开链接2.解题思路:本题利用贪心法解决。不过贪心的思想却是非常巧妙的。想象有一个阶梯,第n个人的阶梯高度是1,然后第n-1个人的阶梯高度是2,第1个人的阶梯高度是n。程序中用base[i]表示第i位的阶梯高度。注意:题目中,“前面”只的是序号大的,“后面”指的是序号小的。那么,如果一个人沿着阶梯下降,说明他在往前移动;反之则是在往后移动。由于不管怎么交换,最终想要达到的状态原创 2015-06-18 18:40:23 · 578 阅读 · 0 评论 -
Looksery Cup 2015 D. Haar Features
1.题目描述:点击打开链接2.解题思路:原创 2015-06-18 12:48:39 · 648 阅读 · 0 评论 -
#140 (div.1) B. Naughty Stone Piles
1.题目描述:点击打开链接2.解题思路:本题利用贪心法解决。根据题意描述,我们知道最终的答案是和摆放顺序无关的,而费用要尽量小,因此直观上的感觉是尽量取小堆放在大堆上。这里我们试图利用递归的思想来解决本题。首先,假设这n个石子已经由小到大排序,当k=n-1时,只需要把前n-1个石子都摞到第n个石子上即可。那么,当k=n-2时该怎么办呢?我们还想办法把它变成之前的简单情况,即变为第n个石原创 2015-06-01 13:22:00 · 668 阅读 · 0 评论 -
Looksery Cup 2015 A. Face Detection
1.题目描述:点击打开链接2.解题思路:本题是一道简单的搜索题,要求找有多少个2*2的方格,其中的四个字母可以拼成单词face。然而我的写法显得比较麻烦,用了四个标记分别判断四个字符是否出现过。其实简便写法是可以将它们有序化,按照字母表顺序排个序,如果最后等于“acef”那么cnt++。随后附上参考代码。3.代码:#define _CRT_SECURE_NO_WARNINGS#inc原创 2015-06-15 21:53:24 · 705 阅读 · 1 评论 -
#309 (div.2) B. Ohana Cleans Up
1.题目描述:点击打开链接2.解题思路:本题是一道简单的找最大值问题。只需要找出完全相同的行中个数那一行即可,输出它的个数。由于给定的范围比较小,可以直接用O(N^3)的算法解决。查找的时候用一个mark数组来标记哪些行已经查找过了,这样可以避免重复查找。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#i原创 2015-07-02 12:38:41 · 830 阅读 · 0 评论 -
#322 (div.2) D. Three Logos
1.题目描述:点击打开链接2.解题思路:本题要求判断能否找一个正方形,使得恰好可以装下三个矩形。如果可以并输出。首先可以知道,正方形的边长一定是矩形中最大的边长,而且一定有一个矩形是一整条边完整覆盖一个正方形的边长的,因此除去这个矩形后,就是枚举剩下2个矩形的摆放方式了。每个矩形有4种摆放方式,逐个测试,如果均不可行,说明无解。3.代码:#include#include#inclu原创 2015-09-29 00:12:28 · 346 阅读 · 0 评论 -
#310 (div.2) D. Case of Fugitive
1.题目描述:点击打开链接2.解题思路:本题利用贪心法+优先队列解决。不过本题的贪心策略的选取是关键,有些看似正确的贪心策略实际上暗含危险。先说说正确的贪心策略:将所有的岛按照顺序求出第i个岛和i+1个岛之间桥的最小最大长度,并按照L从小到大排序,若相同则按照R从小到大排序。然后对桥由小到大排序,将所有的桥扫描一遍,枚举第i个桥时,将L值小于等于当前桥的区间按照(R,id)放入优先队列,R小的原创 2015-08-20 23:48:01 · 746 阅读 · 0 评论 -
#305 (div.2) D. Mike and Feet
1.题目描述:点击打开链接2.解题思路:本题是一道很好的思维题。看好多人用单调栈解决的。这里介绍另一种解决方法:首先,根据题意描述,我们知道连续序列的最小值是关键,如果任意给出一个连续序列,找它的最小值,反而不太方便;但是换个角度,如果知道最小值,求以它为最小值的最大的连续序列!这就简单的多了。即找出这个元素向左可以延伸多远,向右能延伸多远,然后就能求出最大连续序列的长度了。现在的问题是,原创 2015-05-28 13:21:24 · 777 阅读 · 0 评论 -
#290 (div.2) D. Fox And Jumping
1.题目描述:点击打开链接2.解题思路:本题利用扫描与维护解决。根据题意,能够走到所有的格子,一定是挑选出来的牌的步数的最大公约是1,这点很好理解。因为ax+by=1意味着只要有a个x和b个y就可以凑出来步数1。这样以来,只需要利用map来存储所有的公约数对应的最小费用即可。初始时刻base[0]=0,接下来就是从前往后扫描一遍这n个数,然后依次更新base中的每一个最大公约是对应的最小费用即原创 2015-04-12 23:24:59 · 575 阅读 · 0 评论 -
#142 (div.2) A. Dragons
1.题目描述:点击打开链接2.解题思路:本题利用贪心法解决,首先将strength和bonus定义为一个结构体,首先按照strength从小到大排序,若相同,则按照bonus从大到小排序。然后从头到尾扫描一遍即可。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#incl原创 2015-07-30 21:57:17 · 596 阅读 · 0 评论 -
#263 (div.1) A. Appleman and Toastman
1.题目描述:点击打开链接2.解题思路:本题利用贪心法解决。根据题意描述,较大的数应该尽量多加几次,较小的数可以提前抛弃,因此事先对数组由小到大排序,然后一个个的抛弃较小的数即可。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#inc原创 2015-07-30 22:16:01 · 690 阅读 · 0 评论 -
#106 (div.2) A. Business trip
1.题目描述:点击打开链接2.解题思路:本题利用贪心法解决。首先对数组排序,由大到小选择,恰好大于等于k时候停止即可。如果全部相加仍然小于k,则无解。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#原创 2015-07-30 23:04:25 · 603 阅读 · 0 评论 -
#197 (div.2) A. Helpful Maths
1.题目描述:点击打开链接2.解题思路:抽取出所有的数字,排序后输出即可。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#include#include#include#include#in原创 2015-07-29 12:37:23 · 662 阅读 · 0 评论 -
#101 (div.2) A. Amusing Joke
1.题目描述:点击打开链接2.解题思路:先将s1,s2拼接在一起,然后检查拼接后的字符串长度len是否与s的长度len2相同,若相同,则对两字符串按照字典序排序,逐个比较,若每一位都相同,输出YES。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#in原创 2015-07-29 13:04:49 · 723 阅读 · 0 评论 -
#238 (div.2) A. Gravity Flip
1.题目描述:点击打开链接2.解题思路:等价于对数组由小到大排序。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#include#include#include#include#includ原创 2015-07-29 13:18:44 · 579 阅读 · 0 评论 -
#111 (div.2) A. Twins
1.题目描述:点击打开链接2.解题思路:排序后从大到小选取,当take>sum-take时候停止。3.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#include#include#include原创 2015-07-29 12:50:15 · 552 阅读 · 0 评论 -
#317 (div.2) D. Minimization
1.题目描述:点击打开链接2.解题思路:本题利用dp解决。不过首先要做一点分析。根据题意,我们需要在数组中,每相邻k个数要进行一次求和运算,那么,我们不妨把从下标i开始计算的数全部找出来,把他们看做一组,即下标为i,i+k,i+2k,...i+(n-1-i)/k*k这些数看做一个组的,我们发现,最多只能有k组(i只能从0取到k-1,再往后就会出现重复计算)。而且,只有n%k个组是包含n/k+1原创 2015-08-23 14:28:21 · 715 阅读 · 0 评论 -
#317 (div.2) C. Lengthening Sticks
1.题目描述:点击打开链接2.解题思路:本题利用减法原理解决。比赛时候暴力枚举果断超时==。正确的做法是用总体方案-不合理的方案数。显然,总体方案的个数等价于求解x1+x2+x3+x4=l的非负整数解的个数,利用组合数学的结论等于C(l+4-1,4-1)=C(l+3,3)。其中x4表示没有使用的长度,它从0取到l。接下来就是考虑不合理的方案数目。我们先考虑让a增加一个La,变成a+La,我们令原创 2015-08-23 11:19:07 · 855 阅读 · 0 评论 -
#305 (div.2) C. Mike and Frog
1.题目描述:点击打开链接2.解题思路:本题是一道模拟题,虽然看上去像数学,但实际上只需要模拟一下这个过程就好了。首先,我们先让h1变为a1,设需要k1步才可以,如果h2经过k1步也变为a2,那么直接输出答案。否则,我们接下来找h1变化的循环节cycle,即每经过一个cycle,就可以再到达a1。那么我们看h2需要几个cycle才可以从当前位置(即第k1步时候的位置)到达a2,假设只需要k2步原创 2015-05-28 20:17:02 · 664 阅读 · 0 评论 -
#295 (div.2) E.Pluses everywhere
1.题目描述:点击打开链接2.解题思路:本题是一道组合数学题,一开始用递归的思想做,但结果错误。学习了别人的解法后,豁然开朗。正确的解法是关注每一位数对整体的贡献值。比如输入的n位数是D1D2D3...D(n-1)D(n),那么当D(i)作为个位数时,它的前面必然有一个‘+’。剩下的k-1个‘+’被安置在剩下的n-2个空隙中,因此一共有C(n-2,k-1)种情况,D(i)的总贡献值是D(i)*原创 2015-03-06 23:57:44 · 967 阅读 · 0 评论 -
#290 (div.2) C. Fox And Names
1.题目描述:点击打开链接2.解题思路:本题利用拓扑排序解决。本题要求出一个a~z的排列,使得所有名字按照这样的“字典序”是逐渐增加的。显然这里存在着字母之间的大小关系,容易联想到拓扑排序。那么该如何来排序呢?先思考一下简单的情况,假设姓名s,t是相邻的两个名字,如果s是t的一个前缀,那么跳过即可;反之如果t是s的前缀,那么肯定是无解的。如果不是以上这种情况,那么首个不相同的位置处的两个字原创 2015-04-12 22:14:43 · 548 阅读 · 0 评论 -
ZeptoLab Code Rush 2015 A. King of Thieves
1.题目描述:点击打开链接2.解题思路:本题要求在一个串中找出5个等距离的‘*’,如果有,输出yes,否则输出no。思路很清晰,首先枚举步长len,然后枚举起点i,判断是否能够连续不间断地跳跃5次且均为‘*’即可。本题还可以加速寻找,先寻找是否存在‘*****’,如果有,直接输出yes。3.代码:#define _CRT_SECURE_NO_WARNINGS #include#in原创 2015-04-05 11:58:12 · 686 阅读 · 0 评论 -
ZeptoLab Code Rush 2015 B. Om Nom and Dark Park
1.题目描述:点击打开链接2.解题思路:比赛时候这道题没有做出来,第二天早晨补题时才发现就是简单的DFS应用。题目要求出最少需要增加几盏路灯。假设我们已经知道了root的左子结点一共有suml盏路灯,右子结点一共有sumr盏路灯,那么比较一下d[lson(root)]+suml和d[rson(root)]+sumr的大小即可。此时需要增加的路灯数量就是两者差的绝对值。同时返回较大的数即得到ro原创 2015-04-05 11:15:31 · 976 阅读 · 0 评论 -
ZeptoLab Code Rush 2015 C. Om Nom and Candies
1.题目描述:点击打开链接2.解题思路:本题是无限背包问题,根据重量的约束关系,直接暴力搜索。3.代码:#define _CRT_SECURE_NO_WARNINGS #include#include#include#include#include#include#include#include#include#include#include#include#原创 2015-04-05 13:25:42 · 747 阅读 · 0 评论 -
#296 (div.2) C.Glass Carving
1.题目描述:点击打开链接2.解题思路:本题要求每切一刀,输出目前的最大玻璃的面积。这道题的思路很明显:每次切完后找目前的最大长度,最大宽度,相乘即可。不过问题的关键是如何快速的找到这个最大值。一开始我没有太好的思路,想用数组,但总感觉数组力不从心,不知道怎么才能很好地更新切完后的长度值,也不知道如何快速的找到这个最大值。接着想到了STL中的set,可以把所有的切割位置存放在set中,然后原创 2015-03-21 19:01:56 · 653 阅读 · 0 评论 -
#297 (div.2) E. Anya and Cubes
1.题目描述:点击打开链接2.解题思路:本题利用双向查找解决。双向查找一般用于求若干个数之和相加等于一个固定值的题目。一般方法是将n个数分为两部分:1~n/2和n/2+1到n,然后枚举出两部分的所有可能的结果,最后利用二分查找看第一部分的结果是否存在于第二部分中。本题也是让找一些数之和等于S,这个数还可以变成对应的阶乘数,由于阶乘的个数受到k的限制。因此可以利用dfs来枚举所有的情况。由于最后原创 2015-03-27 18:40:13 · 1028 阅读 · 0 评论 -
#295 (div.2) C.DNA Alignment
1.题目描述:点击打开链接2.解题思路:比赛时没有想到好的思路,后来才发现,只需要t串中的字符是s串中出现次数最多的字符即可,根据乘法原理可知:最终结果是pow(num,n),其中num是s串中次数最多的字符的个数。3.代码:#define _CRT_SECURE_NO_WARNINGS #include#include#include#include#include#in原创 2015-03-02 20:25:47 · 548 阅读 · 0 评论 -
#294 (div.2) D.A and B and Interesting Substring
1.题目描述:点击打开链接2.解题思路:本题要求在s中找满足下列条件的字串:(i)i+1~j-1的字符串权值之和为0;(ii)s[i]==s[j];处理带权字符串的一般解法是利用前缀和。但我最初的算法效率十分低下:先求出前i个字符的权和。并将26个字母出现的位置依次保存到vector中。随后从0~len依次枚举每个位置的字符s[i],并枚举它的下一个出现位置,再计算这段子串是否满足条件(1)。原创 2015-03-01 16:15:03 · 729 阅读 · 0 评论 -
#281 (div.2) A.Vasya and football
A. Vasya and Footballtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasya has started watching football g原创 2014-12-06 11:34:55 · 732 阅读 · 0 评论