摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2074这道题目以前做过的,用调用函数将map一圈一圈的画,我觉得这个很容易理解先画最外面的一圈,直到x>y,也就是中间那个画完,可是注意有两点:1.注意当n=1的时候输去第一个,2.注意输出的格式,最后没有空行,我PE好多次,原来是把put("")写成了puts(" "),然后我把它改为printf("\n");就ac了,悲剧的一题啊#include <stdio.h>#include <string.h>#includ 阅读全文
posted @ 2011-08-07 17:21 ○o尐懶錨o 阅读(259) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2082一开始看题目很纠结,不知道如何入手,没想到母函数作用好广啊,排列组合方面也可以使用母函数解决,若有不清楚,请看母函数的解说,相信一看你就可以理解了,不过可以用母函数的一般都可以用背包,以下的是母函数的代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>int m[28],c1[100],c2[100];void mhs(){ c1[0]=1;//一个入口 f 阅读全文
posted @ 2011-08-07 16:01 ○o尐懶錨o 阅读(238) 评论(0) 推荐(0) 编辑
摘要: voidmn(intn ){for(inti = 0; i <= n; ++i ){m1[i] = 1;m2[i] = 0;}for(inti = 2; i <= n; ++i )//难点{//总共有n个括号,从第2个起每一个括号都要和前面那一个括号相乘//所以可以忽略第一个括号for(intj = 0; j <= n; ++j )//j代表最前面这个大括号的项数for(intk = 0; k + j <= n; k += i )//在大括号后面,x都是以i方递增的m2[j + k] += m1[j];//这里就是大括号后面的括号与前面相乘的计算for(intj = 0 阅读全文
posted @ 2011-08-07 15:38 ○o尐懶錨o 阅读(188) 评论(0) 推荐(0) 编辑