10 2011 档案

摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1212 不料JAVA又出问题了,Scanner 类竟然识别不出来,我不知道哪里出了问题,这题是求一个大数对一个相对较小的数的取余运算。刚开始的想法很傻很天真啊,直接计算出被除数的位数,再取相应的位数取余。这可是不知道错哪去了,这是对 10^K 次方的数的取余操作,放在这里显然是不合适的,如果硬要这么做的话,那么前提就是这个数必须是以MOD为进制的数。该题是这样处理的,首先判断是否满了6位,如果大于6位数字,那么就可以利用较高一位的单位量取余值等于低一位的取余值乘以十再取余。 代码如下:#include... 阅读全文
posted @ 2011-10-24 17:33 沐阳 阅读(462) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1172这题要换个思维,不要想着如何通过已有的条件来得到正确的值,而是枚举0000-9999这10000个数,看满足条件的数字有多少个,只有刚好有一个的数满足的情况下才输出。代码如下:#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <iostream>#define MIN( x, y ) (x) < (y) ? (x) : (y)usin 阅读全文
posted @ 2011-10-19 22:22 沐阳 阅读(859) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2232 直接进入正题,这题要求解的是一个条件极其宽松下的组合题,似乎在看见这题的时候,我们就能遇见这道题的答案会是多么的庞大,所以题中也才会有 % 9937 这样的提示。对于如此大的一个运算,只走一步的话还好办,有9种情况,(顺时针和逆时针旋转2次加上相邻两个交换位置(交换一对的4次,交换两对的2次)最后加上原地不动的1次),就1次就够麻烦的,计算结果表明,两步共有633种可能, 足以见得后面的情况是多么的复杂。 各种百度后,我接受了接下来说明的好的方法。保留一定量的信息,通过递推求得,再在这些.. 阅读全文
posted @ 2011-10-16 17:58 沐阳 阅读(378) 评论(0) 推荐(0) 编辑
摘要:这题在计算时就把没一点到第一个点的距离计算出来,再相减就出来了。每条线段都存储起来。 http://acm.hdu.edu.cn/showproblem.php?pid=2073 代码如下:#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <iostream>using namespace std;double d[10005], D[10005];double sqrt_2 = sqrt( 2.0 );double dis( i 阅读全文
posted @ 2011-10-11 20:33 沐阳 阅读(295) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示