题目大意:一个纸牌游戏,52张纸牌排成一列,每张纸牌有面值和花色两种属性。每次操作可以用最后一张纸牌将倒数第二张或者倒数第四张替换,但前提是两张牌的花色或者面值相同。问最终能否只剩一张牌。 题目分析:取当前所剩纸牌张数和最后三张牌作为状态,显然深搜要超时。记忆化搜索即可。 代码如下: ...
分类:
其他好文 时间:
2016-05-05 00:30:42
阅读次数:
156
A题(hdu2600 war):用数组记录标记即可,开始不知道是多组数据以为是Coderforces的题数wa,以后周赛还是都写成多数据吧也好调试,然而多数据就要多注意初始化了。罗大神一直挂在名字可能有多个单词。
我这种开数组模拟的方法如果数据再大点就会ML,最好把开始和结尾存到一个结构体数组中,以终点为标准来结构体排序(如果终点相同起点小的靠前),然后从数组的最右边开始扫,如果第一个数都终点小于...
分类:
其他好文 时间:
2015-04-28 09:57:59
阅读次数:
158
A题:主要是没有注意到数据有10的12次方那么大,中间要善用取余。
B题:一道思想很巧妙的题,暴力方法O(n^2)超时,用set优化了查找之后O(nlogn)超时,最后无计可施看答案。。。
思路:这个最大的巧妙点是字符串虽然可以很长,但是元素是由小写字母组成的只有26种,而上下不相同的字母组成最多只有26*26种,所以用一个C[26][26]来记录每一种可能不同字母对出现的位置,这样如果有C[...
分类:
其他好文 时间:
2015-03-31 18:08:40
阅读次数:
125
背景:esay
学习:
1.杨辉三角与组合数与二项式公式:
a:二项式公式:,组合数是二项式公式的系数,而杨辉三角是组合数的图形表示。
b:组合数公式:...
分类:
其他好文 时间:
2015-02-01 17:55:37
阅读次数:
141
背景:开始没有仔细想,后来@liu_jc 说简单遂1Y
思路:找出最大堆的鹅卵石数为max,最小堆数为min。如果max-min>=k,则成立。
证明:对最大堆编号为:a1,a2,a3~amin-1,amin~amax .对最小堆编号为:b1,b2~bmin.
让a1和b1,a2和b2,......,amin和bmin颜色一样。
...
分类:
其他好文 时间:
2015-02-01 17:52:30
阅读次数:
199
背景:1——WA:有一出少了break,还是惧怕时间没有自己出数据看看的错!
思路:fi全是奇数,输出-1,else if 全部偶数都大于最后一位数,让最右边的偶数和最后一位数交换;else 让最左边的比最后一位数打的偶数与最后一位数交换!
#include
#include
char str[100009];
int main(void){
while(~scanf("%s",str)...
分类:
其他好文 时间:
2015-01-28 16:04:07
阅读次数:
135
背景:一直wa!wa!我以为思路已经绝不会错了!结果还是wa!和别人代码比了半天都找不出来错误之处!
思路:简单的暴力,简单的数学。
学习:1.即使已经得到结果了,但还是应该继续输入,因为,输入流还有很多数据,不继续就会对下一次造成干扰!!但是!!既然后面输入的数据已经没有用了,那就不能让他对答案进行更新了!#include
#include
int map[2000][2000];
i...
分类:
其他好文 时间:
2015-01-28 14:37:57
阅读次数:
93
背景:一直WA,一直以为是double精度问题,结果是:在运算过程中,超出int数据范围。
思路:我的思路是分类讨论,网上好的思路是ceil(d/2r)即可。
学习:
1.数据类型的范围:int 2.1的10次方
longlong 9.2的19次方(longlong在 linux下为%lld,windows下为%I64d).
...
分类:
其他好文 时间:
2015-01-27 11:09:20
阅读次数:
195
背景:比赛时明显小看了第一题的难度,就想的一心ac,结果wa了三次,!!!!!!比赛就乱了!!要稳住,多给时间看题!!!
思路:排序从最小的开始依次来减。但是要记录之前的位置,因为最终输出的是位置。我的记录方法是,把未排序之前的数组复制一份为sstr,对str排序之后,想要知道str中某个
#include
#include
using namespace std;
int main(...
分类:
其他好文 时间:
2015-01-24 17:26:03
阅读次数:
154
背景:第一次打coderforces,只出了a,b两题·,c题在会长指导下过。
A:水
B:简单字符串处理
C:
题意是从A到B,不能走交叉点,求A到B最少要走的步数,等价于求与线段AB相交的直线个数。
证明:由于从A到B不能走直线交叉点,所以必须跨过其线段间的所有直线,每条直线只走一步就是最少。
解法:由于告诉了所有直线方程,只需根据若两点在直线异侧则直线在线段间。...
分类:
其他好文 时间:
2015-01-04 21:25:28
阅读次数:
138