上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 37 下一页
摘要: 解题报告:求 斐波那契数,不过这题的n的范围是1000,肯定是早就超过了的,所以要用到高精度,所以这题其实就是一个加法高精度的题。我的做法 是写一个大数相加的函数,然后打表就是了,这里注意的就是每次做了大数相加之后任然保留倒序的数存在表里面,这样以便下次相加的时候直接加,而不用把顺序翻来翻去很麻烦,这样只要在输出的时候把顺序倒过来就可以 了。 1 #include 2 #include 3 #include 4 using namespace std; 5 const int maxn = 1000+4; 6 char ans[1003][1000]; 7 char* add(const ch 阅读全文
posted @ 2013-08-13 22:52 xiaxiaosheng 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 解题报告:给出四个数,然后要你把这四个数组合成的各不相同的四位数按照从小到大的顺序输出来,然后如果最高位是0的话不能输出来,还有最高位是数字如果一样的话,则放在同一行输出。本来是个比较简单的生成全排列的题,并且个数都固定了,但是这题的特点就是输入的四个数中,并不是各不相同的四个数,所以我们在得到结果... 阅读全文
posted @ 2013-08-13 22:31 xiaxiaosheng 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 解题报告:这题就用一个进制转换的函数就可以了,不需要转换成相应的进制数,只要求出相应进制的数的各位的和就可以了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int trans(int x,int r) { 8 int sum = 0; 9 while(x) {10 sum += x%r;11 x/=r;12 }13 return sum;14 }15 16 int main() {17 int n;18 ... 阅读全文
posted @ 2013-08-13 16:26 xiaxiaosheng 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 解题报告:在汉诺塔的基础上,规定,第一根柱子上的盘不能直接移动到第三根柱子,就是说只能从第二根柱子移出,或者移到第二根柱子,然后规定只有最大的盘子可以放在最小的盘子上,要求将n个盘子从第一根柱子移动到第三根柱子,问最少需要多少步?还是一样dp,只不过这题的一个特别之处就是三根柱子的性质不完全一样,所以在dp第一根柱子移到第三根柱子的时候不能直接用dp[n-1],因为如果把n个盘子从第一根柱子移到第二根柱子跟移到第三个柱子的次数是不一样的,然后我们可以发现,移到第二根柱子或者从第二根柱子移动到其它两根柱子的性质是一样的,所以我们可以先打一个表,即1-n个盘子从第一根柱子到第二根柱子的最少次数。然 阅读全文
posted @ 2013-08-13 16:12 xiaxiaosheng 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 解题报告:有一群人在打乒乓球比赛,需要在这一群人里面选出一个冠军,现在规定,若a赢了b,b又赢了c那么如果a与c没有比赛的话,就默认a赢了c,而如果c赢了a的话,则这三个人里面选不出冠军,还有就是如果一个人没有输给别人,但是存在一个人跟这个人之间的输赢关系不能确定的话,也是作为选不出冠军的情况,现在输入一群人的比赛情况,要你确定,利用这组比赛情况能不能确定一个冠军,能的话输出Yes,否则输出No。感觉这题应该有很多种不同的解法,其中由于输入的是选手的名字,所以还要用到map容器。我的做法是枚举每一个人是否有可能是冠军,即从这个人开始出发,用dfs搜索,看这个人一共赢了多少个人,然后他赢的人的个 阅读全文
posted @ 2013-08-13 15:33 xiaxiaosheng 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 解题报告:一个字符串的题,最恶心的还是格式问题,PE了很多次,要求是每个测试数据的后面都带有一个空行,但是最后一个不能有空行,所以只能把第一组数据的前面不输出空行,而后面的每一组数据都输出空行,这样达到的效果跟理想的是一样的。 1 #include 2 #include 3 char map[100][100]; 4 int main() { 5 int n,f = 0; 6 char A[3]; 7 while(scanf("%d %c %c",&n,&A[0],&A[1])!=EOF) { 8 if(f) printf("\n" 阅读全文
posted @ 2013-08-13 10:24 xiaxiaosheng 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 解题报告:在一条直线上,找出一个点,求这个点到其它所有的点的距离之和,输出这个和。可以确定这个点一定是所有的点的中位数,如果个数是偶数个的话,看中位数更接近中间两个的哪一个,取更接近的那一个。 1 #include 2 #include 3 #include 4 #include 5 #includ... 阅读全文
posted @ 2013-08-12 23:13 xiaxiaosheng 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 解题报告:有m个女生和n个男生要结成伴坐过山车,每个女生都有几个自己想选择的男生,然后要你确定最多能组成多少对组合。最裸的一个二分匹配,这是我第一次写二分匹配,给我最大的感受就是看那些人讲的匈牙利算法真不知道他们是怎么写的,看着就觉得很麻烦,好像很难的样子,我这是看第二次,最后还是没看懂,最后实在没... 阅读全文
posted @ 2013-08-12 19:56 xiaxiaosheng 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 解题报告:有若干件物品,每件物品有一定的体积,然后有一个体积为V的箱子,要将物品放入这个箱子,求出箱子剩余的体积最小值。这题其实是一个01背包,体积还是体积,主要就是要把每一件物品的体积当成是它的价值,这样按照01背包的方式求出可以放入的最大价值之后,因为体积等于价值,也就是说最大的 价值也就是可以放入的最大的体积,所以V-dp[V],就得到了最小的剩余体积了。 1 #include 2 #include 3 #include 4 using namespace std; 5 const int maxn = 20000 + 3; 6 int dp[maxn],w[maxn],V,n; 7 i 阅读全文
posted @ 2013-08-10 20:09 xiaxiaosheng 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 解题报告:这题很类似于杭电的一个题,http://acm.hdu.edu.cn/showproblem.php?pid=2037,今年暑假不AC,安排节目的,几乎是相同的题,做法是将所有的线段按照尾端点非递减排序,意思就是说尽量先选择靠前的线段,这是一种贪心的思想的体现,然后,逐一判断,只要当前的线... 阅读全文
posted @ 2013-08-09 22:14 xiaxiaosheng 阅读(240) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 37 下一页