11 2011 档案
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1006 在参考了0o恋蓝o0在Discuss中所说后,总算把这一题给弄懂了。题目要求:给定一个角度,问一天中时钟上的三根指针的夹角都大于等于该夹角的总时间占一天总时间的百分比。 思路:1、求出两两指针的相对较速度。 2、然后根据这个相对角速度求出两两之间的周期(即第一次重合到第二次重合所花的时间)。 3、计算出符合角度要求的两指针第一次满足和第一次不满足的时间。 4、在三个时间段上加上各自的周期,再取他们的交集即可。 代码如下:#include <cstdio>#include <cstri
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2710给定N个数,求出其中含有最大素因子的数。两个代码:自己的恶心代码#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>using namespace std;int p[20010], max[20005];inline int cal( int x ){ for( int i = x / 2; i >= 1; --i ) { if( !p[x] ) return x
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3952 这是一道计算几何的题目,刚好昨晚看了一下基本的计算几何,而这题就是叉积的应用。 设有两个共起点向量 A,B, 其中 A = { x1, y1 }, B = { x2, y2 }; A X B = x1 * y2 + x2 * y1; 如果 A X B > 0, 那么说明A向量在B向量的顺时针方向,反之则说明A在B的逆时针方向。等于零,说明两个向量重合。 那么对于某一点,就可以运用这一点来判定该点是在线段的左还是右了,即选择一个端点,再连接这个端点和所求的一点,构造出另一个向量.........
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3337 这题一看没有一点头绪,题目中只说了输入数据是由大小写字母及数字组成的不超过16位的字符串,其能够表达的一个数字。我们要做的就是输出这个数字。说起来,这个真不好办,看了下大神的思路,原来是通过OJ不同的评测结果来测试后台数据,挺有意思的。 我的方法比较土,一个一个试,不知到他们所说的输入机器人是怎么弄的。一共提交了90+次,终于对了。 这时测试时的代码:#include <cstdio>#include <cstring>#include <cstdlib>#defi
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4033 题中给定某一点到N个点的距离,问这些点能否组成正多边形? 思路:选定两条边,通过二分法枚举某一条边的边长,算出该边长下对应的中心角,然后再依据此边计算出其余三角形对应的中心角,最后看总的角度是否为360度。 代码如下: #include <cstdio>#include <cstring>#include <cmath>using namespace std;double e[200];const double PI = 4 * atan( double( 1 )
阅读全文