10 2012 档案
摘要:题目:http://codeforces.com/contest/237/problem/A那么简单的题目,还是忘了考虑n = 1时的情况了。。。View Code 1 typedef long long ll; 2 const int N = 100001; 3 char str[N][10]; 4 int main() 5 { 6 int n; 7 int i; 8 while(~scanf("%d",&n)) 9 {10 getchar();11 for(i = 0; i < n; i++)12 {13 ...
阅读全文
摘要:题目:http://acm.timus.ru/problem.aspx?space=1&num=1286题目要求 p * x1 + q * y1 = abs(ex - sx) && p * x2 + q * y2 = abs(ey - sy)同时成立,设 d = gcd(p,q) ,dx = abs(ex - sx), dy = (ey - sy),如果 (dx % d || dy % d )成立,那么从开始点一定到不了终点,否则 dx /= d, dy /= d, p /= d, q /= d;分情况讨论,详见此出http://shaidaima.com/source
阅读全文
摘要:题目:http://acm.timus.ru/problem.aspx?space=1&num=1430题意很简单,第一感觉是枚举,但是看了一下数据范围,直接没有写,然后感觉 a * x + b * y = n - (某个数)这个方程有解,像是扩展欧几里德,写了之后没过样例。后来还是写了枚举,但是就是超时,网上找了一下,少了一个优化,但是优化的还没看懂,还是HG给讲的才看懂了View Code 1 int main() 2 { 3 ll a,b,n; 4 int x,y; 5 int i; 6 while(cin>>a>>b>>n) 7 { 8 ..
阅读全文
摘要:题目:http://codeforces.com/contest/235/problem/A当给的 n 是奇数时,则是 n * (n - 1) * (n - 2),当是偶数时,则要从 n 往前枚举三个数,求出他们的最小公倍数,感觉最多不会枚举超过10个吧View Code 1 ll gcd(ll a,ll b) 2 { 3 if(!b) return a; 4 else return gcd(b,a % b); 5 } 6 ll lcm(ll a,ll b) 7 { 8 //cout<<"((((\n"; 9 return a / gcd(a,b) * b;1.
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1695给出a b c d k 在 [a,b] [c,d]内各找一个数,使得gcd(x,y) == k,也就是说 gcd(x / k, y / k) == 1,所以就是在 [1,b / k] [1, d / k]中找互质的对数。容斥原理和欧拉函数的应用,首先在打印素数的同时求出每个数的欧拉函数值,对于[1,b]内的数直接用欧拉数组求互质的对数,对于[b + 1,d]的数用容斥原理求互质对数,首先求出不互质的对数,然后用总的减去不互质的对数。比如说某个数 n ,首先求出 n 的所有因子num, 假设单个因子
阅读全文

浙公网安备 33010602011771号