12th ZJUPC
文章平均质量分 56
ZuXu
这个作者很懒,什么都没留下…
展开
-
ZOJ 3596 Digit Number
看过像1136这类求最小倍数的题就知道,应该用BFS,逐渐构造从小到大的满足条件的数。另外根据条件以及余数,设置状态标记位,第一次达到该状态时进行置位,因为之后再到达同一状态时,其对应的数必然更大。另外内存充足,队列可以开得足够大,不要用循环的,因为输出结果时要用到之前的节点。开始将搜索的数直接用string保存在节点里,超时得一塌糊涂。后来在节点中保存了上一状态的下标,换成了数组做队列,又手原创 2013-04-07 15:28:55 · 854 阅读 · 0 评论 -
ZOJ 3591 & 3594
3591 Nim这题连基本的Nim都不告诉怎么,让比赛时没见过的情何以堪。#include #include using namespace std;typedef long long ll;int T, N, S, W;int a[1000001];inline void Generate(){ int g = S; ++ N; for(int i=1; i<N;原创 2013-04-07 21:12:24 · 659 阅读 · 0 评论 -
ZOJ 3593 One Person Game
令c = a+b, d = A-B,则等价于求{|x|+|y| | ax+by=d || ax+cy=d || bx+cy=d}。对于ax+by=d,用扩展欧几里得算法求得axx+byy=gcd(a,b),是否有解可由d是否为gcd的倍数判断。若有解,原方程的一组解为(x0, y0) = (xx*d/gcd, yy*d/gcd)。令aa=a/gcd,bb=b/gcd,则通解可表示为(x0+k*b原创 2013-04-07 20:48:14 · 1024 阅读 · 0 评论 -
ZOJ 3598 Spherical Triangle
当时居然没想到转成直角坐标系计算,一搜居然发现有余弦公式:cosA = (cosa-cosb*cosc)/(sinb*sinc),果断用之。a, b, c是单位球下角A, B, C所对的弧长。#include #include #define torad(x) x=x/180*3.14159265358979323846#define todeg(x) x=x*180/3.1原创 2013-04-07 20:56:05 · 737 阅读 · 0 评论