各种水
Ice_Crazy
目前等级:资深菜鸟 。下一等级:超神菜鸟
展开
-
hdu1998
/*分析: 水题,就是发现一个规律:以每行l=n/2为中心,向两边延伸:向左下角就减1、向右上角就加1。而需要向左下角进行的数量是随着行号递增的,一次增加1,初始为0。注意left_temp是从-1开始的,因为我的代码在全图处理的时候,将l=n/2处的数据也处理了一下。但是写代码的时候忘了,还是让left_temp从0开始了。以后写代码的时候,如果哪点儿用原创 2012-04-11 13:07:42 · 1109 阅读 · 0 评论 -
hdu1046
挺有意思的水题O(∩_∩)O~。/*分析: 两点: 1、这个题的路径由两个基本构成元:长度为1的线段、长度为sqrt(2)的线段。长为1的不用说,但是要明白sqrt(2)的线段的用处; 2、180度转向两次,回到原方向。这个就和还要走的表格边长的奇偶性结合使用了。原创 2012-04-13 13:05:22 · 1295 阅读 · 0 评论 -
hdu3835
/*分析: 水题。注意两种特殊情况:1、0*0+x*x=n,这时候count+=4;2、x*x+x*x=n,这时候也是count+=4;然后让a(代码中的)从1开始循环就行了,不用从0开始。 2012-04-15*/#includ原创 2012-04-15 19:27:43 · 758 阅读 · 0 评论 -
hdu2083
/*分析: 水题。找到中间点就行了。若为奇数,则中间点就一个;若为偶数,则两个中间点选哪个都行,而我下面代码里面ans=n/2,所以选的是后面的那个。 很容易想:假设现在选的是第x个点,左边有x-1条绷直的线和其相连、右边有n-x条。那么通过左右移动x,很明显可以看出来的。 2012-04-14(又是深夜刷原创 2012-04-14 00:43:24 · 1546 阅读 · 0 评论 -
hdu4145
/*分析: 刚开始以为逐个读入,离A近就给A,否则给B,但是这个错的思路。反eg:0 0 100 0,在0 49 51 0各有一个点,显然,用这个思路,花费就是(49^2)*2。但是如果全部给A,一个都不给B呢?那就是51^2。显然后者小。 将所有到A的距离排序,从最远的开始枚举(枚举出所有情况,下面代码中的行70、71不能要):将该点给A,有总cost原创 2012-04-21 18:01:58 · 1159 阅读 · 0 评论 -
hdu3774
/*分析: 水题,不过题目真难读懂 - -I。 len代表绳长、sum代表所有pitch的高度之和、max=最高的pitch,那么: 1、若len 2、最多的人数=(50(60/70)/max)+1;*/ #include"stdio.h"int judge(int x,int sum,int max){ if(sum*2>x原创 2012-05-06 20:52:55 · 619 阅读 · 0 评论 -
hdu2674
/*分析: 水,n>=2009直接输出0就行了。 而事实上,当n>40开始,就可以开始输出0了。 2012-05-09*/#include"stdio.h"#include"string.h"int main(){ char str[22]原创 2012-05-09 22:27:22 · 938 阅读 · 0 评论 -
2803
/*分析: 水~推两下就看出来了,让最大的V系数最大,其它V的系数都为1的说…… 2012-05-11*/#include"stdio.h"#include"stdlib.h"int cmp(const void *a,const v原创 2012-05-11 10:10:15 · 749 阅读 · 0 评论 -
hdu1735
/*分析: 一定要细心、冷静、淡定,否则分析出错误的结论,哪怕只错了一点儿点儿,都可能WA到死…… 2012-05-21*/#include"stdio.h"#include"stdlib.h"int cmp(const void *a,const原创 2012-05-21 21:59:20 · 1025 阅读 · 0 评论 -
hdu1027
/*分析: 嘿嘿,我这代码在提交的里面排名还是挺不错的嘛O(∩_∩)O~说下我的思路吧: “temp=1;while(temp*jie[n-key-1]+base_t的temp所代表的从小到大第几个没有被使用的数,就是当前位置ans中应该填上的数。 其中jie[x]是x的阶乘;base_t是ans中前面已经确定的数的尾巴的数量,eg:n=6的时候,当前原创 2012-05-23 15:30:59 · 2297 阅读 · 1 评论 -
hdu2708
/*分析: 这题……真的很蛋疼。。。不能输出多余的空格,比如输入是: A B C D那么输出是:* * * *\n,注意了,从E开始的空格就不能输出了……否则就PE了。。。 2012-07-16原创 2012-07-16 14:29:01 · 1469 阅读 · 0 评论 -
hdu4252
/*分析: 水~ - - 用了次快排,由高到低开始往两侧扫描,如果这个当前的这个高度只出现了这一次,那么对于这个高度就不用扫描了。 2012-08-17*/#include"stdio.h"#include"string.h"#include"stdlib.h"原创 2012-08-17 14:18:24 · 889 阅读 · 0 评论 -
hdu2352
/*分析: 水题,一堆废话。。。 2012-09-16*/#include"stdio.h"#include"string.h"int main(){ int T; int i; int len; char str[1111]; int t,t2,ans; scanf(原创 2012-09-16 19:40:39 · 749 阅读 · 0 评论 -
hdu3940
/*分析: 物理题,注意别漏掉步骤就行了。 2012-10-15*/#include"stdio.h"#include"string.h"#include"math.h"#define g 9.8int main(){ double h,v_x,v_y,t,v1原创 2012-10-15 14:48:40 · 576 阅读 · 0 评论 -
hdu2600
/*分析: 水~~~ 不懂线段树的时候,还以为这个题是线段树呢,虽然当时也会暴力,不过想会了线段树后再做,于是就把此题做了标记,并留了下来。今儿个偶然翻出来了。。。才100的数据量,这。。。囧~~~,总不至于我再敲个线段树+离散化吧。一次遍历KO掉,囧~ 2012-10-1原创 2012-10-18 20:49:37 · 747 阅读 · 0 评论 -
hdu4422
/*分析: 枚举五种情况分析就行了。 2012-10-22*/#include"stdio.h"#include"string.h"#include"stdlib.h"int main(){ int n,num[11]; int i,l,j,k;原创 2012-10-22 19:27:09 · 1017 阅读 · 0 评论 -
hdu2574
/*分析: 2^31-1很大,不过sqrt后就不大了。 2012-11-12*/#include"stdio.h"#include"string.h"#include"stdlib.h"#include"math.h"struct A{ int原创 2012-11-12 17:13:45 · 731 阅读 · 0 评论 -
hdu1496
/*分析: 水~ 大概估计了一下时间,直接打俩hash然后暴力就行了-、-。当a、b、c、d符号相同的时候,ans=0;其余的时候,把正的放一边、负的挪到另一边,然后分别堆情况(注意堆出同一个数可能有不同的方法),如果两边都能堆出同一个数,那么: ans+=con1[i]*con2[i]*16。 当然,暴力也是分等级的,如果只打一个hash[原创 2012-11-27 22:44:38 · 2333 阅读 · 0 评论 -
hdu2648
/*分析: 水。 用字典树写了一个,MLE了,释放内存应该就能过了。不过然后就发现是水题了,直接排序,给每一个shop一个index就行了。。。 2013-01-06*/#include"std原创 2013-01-06 18:32:23 · 1436 阅读 · 0 评论 -
hdu2284
/*分析: 水题,刚开始想了一个有点儿麻烦的,方法,囧~ 46MS,直接说方法了,假设N=C(n,m),那么直接暴力遍历C(n,1)到C(n,n)(由于对称,所以后面一半是可以忽略的),每次N*=(n-m+1)、N/=m;如果N%p==0,那么就找到符合的情况了。 但是N太大了,那怎么办类~,由于p是素数么,所以用count记录N里面有几个p因子,N这原创 2013-02-24 17:37:16 · 911 阅读 · 0 评论 -
hdu2854
/*分析: 数据量不是太大,可以暴力打表。 ps:推了两张纸后,发现理解错题意了。。。对于某个数,只要存在一对a、b,这对a、b满足式子一但同时不满足式子二,那么这个数就NO。 2013-03-24*/#原创 2013-03-24 15:05:59 · 971 阅读 · 0 评论 -
hdu3927
/*分析: 原来还有反幻方这一概念。 第一反应是搜索,不过由于以前做过幻方以及和幻方类似的题目,所以就开始想规律了。 附一牛牛链接:http://blog.csdn.net/racebug2010/article/details/6681103原创 2012-12-05 16:30:34 · 767 阅读 · 0 评论 -
hdu1271
/*分析: 一开始就想到要把原数分成三份为a、b、c的,但是没有继续想下去。。。就这样和answer擦肩而过了,囧~~~ 吸取教训吧~。 这个方法的详细解释网上一堆呢,这儿就不啰嗦了。。。 2012-11-22*/原创 2012-11-22 16:43:35 · 981 阅读 · 0 评论 -
hdu2183
/*分析: 无聊找规律水题。。。 自己找了个规律,弄出来一个n*n方阵,满足“排成n*n,方阵每行每列每条对角线上的n个数字之和s相等”,但WA了,因为这题不是special judge,必须按照这个题的那种规律才行。。。 把1排在中心值下放,然后向右下递进,当next已经填过后,让next_x=now_x+2,然后继续。。。原创 2012-11-12 21:24:50 · 699 阅读 · 0 评论 -
hdu2672
/*分析: 和那位前辈一样,看到结题报告的那一刻,我被征服了。。。囧~ 2012-09-16*/#include"stdio.h"#include"string.h"#include"ctype.h"int main(){ int a[1001]={原创 2012-09-16 19:01:45 · 572 阅读 · 0 评论 -
hdu3343
/*分析: 当v>0的时候,就肯定可以YES滴~。看了网上那么多的解释,用了什么积分呀啥的额,好麻烦呀+_+。我来解释下哈: 杆是均匀伸长的对吧哈~然后,假设蚂蚁左方杆长L1、右方L2,并假设L=L1+L2,k=L1/L。如果蚂蚁站在那儿不动,杆不管怎么均匀伸长,k值不变。这个很容易理解对吧哈~ 那么蚂蚁开始向右动了腻~,那么k是不是在不断增大原创 2012-05-11 22:04:01 · 898 阅读 · 0 评论 -
hdu1443
/*分析: 模拟。 n的范围很小,暂时也没有什么好的方法(除了打表。。。),就试了试暴力模拟,312MS。 这方法就没什么好说的了-、-I。 顺便,给广大Acmer们拜个年: 蛇年快乐~,祝同在不归道儿上奋斗的伙计们在新的一年中acm水平进步如飞~,让啊们共同努力、奔着美好的明天,努力奋斗吧~O(∩_∩)O~原创 2013-02-10 23:23:49 · 1075 阅读 · 0 评论 -
hdu1865
/*分析: 简单递推+大数。 ans[n]=ans[n-1]+ans[n-2]。 由于数字只有'1'和'2'这两种,那么当让第n位为1的时候,ans[n]加上ans[n-1];当让最后两位合并成2的时候,ans[n]加上ans[n-2](因为要保证倒数第二位一定是1)。 算出来的ans就是一个斐波那契数列。原创 2012-06-06 20:15:50 · 1285 阅读 · 2 评论 -
hdu1719
/*分析: 恩,吧错吧错,推起来挺有意思的,简单数学,算是找规律吧。 1和2是源点,其它所有数都是由它俩推出来的,那么拆拆试试:1、如果一个数n是friend number,那么n=ab+a+b=(a+1)(b+1)-1;2、而a、b也是friend number,那么n=((c+1)(d+1))((e+1)(f+1))-1;3、所以,推导最后,n必定等于(1+原创 2012-12-19 17:03:05 · 1189 阅读 · 0 评论 -
hdu4334
/*分析: 老题型了,合并集合就行了。 第一次写的用了一个大FOR嵌一个小for,再在小for里面嵌一个二分,TLE了,说明数据不水呀~。 然后就是学来的方法了,看solve里面的p1和p2吧。 2012-12-13*/原创 2012-12-13 18:05:39 · 972 阅读 · 0 评论 -
hdu1431
/*分析: 无耻啊,这么多打表过的,囧~~~ 刚学acm时候没有ac掉的陈年旧题了,思路就在代码里,就是自己生成回文素数,偶数位的除了11,其它的都不必考虑了,因为偶数位的回文数是可以被11整除的。其余的都在代码里面了,囧~~~ PS:符合条件的数只有700+,所以打表也挺轻松的。。。原创 2012-11-10 15:22:32 · 1121 阅读 · 0 评论 -
hdu4148
/*分析: 表示下面的规律不是自己发现的- -I。 摘: 解题思路:看过题就知道是要找规律的,而从下列式子中不轻易发明, S(1)=1, //在s(n)从左往右看 S(2)=11, s(1)中有1个1;原创 2012-05-04 19:39:44 · 1200 阅读 · 0 评论 -
hdu3682
/*分析: 15MS,还上第一版了-、-I,不过代码敲得自己都觉得恶心。。。 简单说下思路,代码还是别看了-、-I: 初始赋值ans=n*m,既取消了n*m个点,然后看看哪些点被多 取消了,再让ans--就行了。(不过这个判断要准了,比如当前边和前面的x条边都相交与同一点,那么ans只--一次)原创 2012-10-08 12:01:02 · 593 阅读 · 0 评论 -
hdu1088
/*分析: 简单模拟,只是关于PE方面…… 连续4个PE,弄得我都不敢提交了 - -III。注意单词之间有空格,而每行的最后一个单词后面是没有空格的;只要前面的输出没有问题,最后只管输出“\n”就行了,不用考虑因为最后一个单词是“”或“”而多输出一个“\n”。原创 2012-05-19 21:07:54 · 1136 阅读 · 0 评论 -
hdu2146
/*分析: hash。 字典树TLE,各种优化无果= =III。。。函数调用真的很消耗时间额。。。不过给的字符串全是01串、且长度不超过60个,这是不是和64位整形有点儿像呀,所以。。。方法呼之欲出了吧 →_→ 。 刚开始968MS险过。。就这样搁那儿不是咱风格~,优化之~,453MS。原创 2013-04-21 20:55:21 · 1021 阅读 · 1 评论 -
hdu2136
/*分析: 极限ac,968MS,暴汗- -III。 num数组是筛选用的。hash数组(元素与num数组一一对应)记录该素数是第几个。 摘:一个好点儿的思路: 筛法求素数是定义一个数组,一开始都置为0,然后把素数的倍数都置为1。 而这里是把某个素数连同他的倍数一起置为它的素数序号,从小到大循环,这样数组里存放的序号就原创 2012-04-19 21:15:04 · 1307 阅读 · 0 评论 -
hdu3747
/*分析: 读完题立刻就想到了搜索,不过感觉有点不对劲,因为全选与反选的作用太绝对了,所以貌似可以找规律,于是,下面的我用的方法就诞生了~ -、-I 仔细想想:(1)全选:要用的话第一次就用,否则就没有意义了; (2)反选:对于某个选项,反选前修改它的状态然后进行反选、和、先反选后修改它的状态,结果一样; 所以,ans原创 2012-09-06 19:16:01 · 622 阅读 · 0 评论 -
hdu1721
/*分析: 跟着感觉走……,然后ac了0.0 挺有意思的题,随便选一个方向开始两两抵消,抵消完了就ok;抵消不完就不ok。 至于具体的原理,反过来想一下试试~ 2012-06-27*/#include"st原创 2012-06-27 18:21:32 · 632 阅读 · 0 评论 -
hdu1418
/*分析: 乍一看挺难的,推两个就会发现规律的。f[i][j]=i+j-2,i是点数、j是面数、f是曲线段数。 2012-05-04*/#include"stdio.h"int main(){ unsigned int n,m; while(scanf("%原创 2012-05-04 16:31:50 · 476 阅读 · 0 评论 -
hdu1420
/*分析: 不懂什么降幂法,0MS滴~不知道怎么用memset只将前c个元素置零,要不会更快。说下我的思路吧。 思路: 打个hash,范围是0到c-1,然后进行小于b次的“temp*a,temp%=c”循环运算(初始时有a%=c,temp=a),将每次算出的值置为hash[temp]=1。如果在这之前该处hash已经被置为1了,那么break原创 2012-05-02 09:31:01 · 970 阅读 · 0 评论