关键词:
1876: [SDOI2009]SuperGCD
Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 3744 Solved: 1349
[Submit][Status][Discuss]
Description
Input
Output
一行,表示A和B的最大公约数。
Sample Input
54
Sample Output
HINT
Source
#include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<cmath> #include<map> using namespace std; const int mod = 100000000; int tot; struct node { int x[2010], len; }a,b; void read(node &c) { char s[10010]; scanf("%s", s); int len = strlen(s),cnt = 0,chengji = 1; for (int i = len - 1; i >= 0; i--) { cnt = cnt + (s[i] - ‘0‘)* chengji; chengji *= 10; if ((len - i) % 8 == 0) { c.x[++c.len] = cnt; cnt = 0; chengji = 1; } } if (cnt != 0) c.x[++c.len] = cnt; } void div1() { for (int i = a.len; i >= 1; i--) { if (a.x[i] % 2 == 1) a.x[i - 1] += mod; a.x[i] >>= 1; } while (a.x[a.len] == 0 && a.len > 1) a.len--; } void div2() { for (int i = b.len; i >= 1; i--) { if (b.x[i] % 2 == 1) b.x[i - 1] += mod; b.x[i] >>= 1; } while (b.x[b.len] == 0 && b.len > 1) b.len--; } bool check() { if (a.len != b.len) return false; for (int i = 1; i <= a.len; i++) if (a.x[i] != b.x[i]) return false; return true; } bool cmp() { if (a.len > b.len) return true; else if (a.len < b.len) return false; for (int i = a.len; i >= 1; i--) { if (a.x[i] > b.x[i]) return true; else if (a.x[i] < b.x[i]) return false; } return true; } void jian(node &c, node d) { for (int i = 1; i <= c.len; i++) { if (c.x[i] >= d.x[i]) c.x[i] -= d.x[i]; else { c.x[i] = c.x[i] + mod - d.x[i]; c.x[i + 1]--; } } while (c.x[c.len] == 0 && c.len > 1) c.len--; } void mul() { for (int i = 1; i <= a.len; i++) a.x[i] <<= 1; for (int i = 1; i <= a.len; i++) if (a.x[i] >= mod) { a.x[i] -= mod; a.x[i + 1]++; } while (a.x[a.len + 1]) a.len++; } void print() { printf("%d", a.x[a.len]); for (int i = a.len - 1; i >= 1; i--) printf("%08d", a.x[i]); printf(" "); } int main() { read(a); read(b); while (a.x[1] % 2 == 0 && b.x[1] % 2 == 0) { tot++; div1(); div2(); } while (!check()) { if (cmp()) jian(a, b); else jian(b, a); while (a.x[1] % 2 == 0) div1(); while (b.x[1] % 2 == 0) div2(); } while (tot--) mul(); print(); return 0; }
bzoj1876:[sdoi2009]supergcd
1876:[SDOI2009]SuperGCDDescriptionShengbill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的GCD(最大公约数)!因此他经常和别人比赛计算GCD。有一天Shengbill很嚣张地找到了你,并要求和你比赛,但是输给Shengbill岂不是很丢脸... 查看详情
bzoj千题计划288:bzoj1876:[sdoi2009]supergcd(代码片段)
http://www.lydsy.com/JudgeOnline/problem.php?id=1876 高精压位GCD 对于 GCD(a,b) a>b 若 a 为奇数,b 为偶数,GCD(a,b)=GCD(a,b/2) 若 a 为偶数,b 为奇数,GCD(a, 查看详情
bzoj1877:[sdoi2009]晨跑
二次联通门: BZOJ1877:[SDOI2009]晨跑 /*BZOJ1877:[SDOI2009]晨跑拆点+费用流*/#include<cstdio>#include<iostream>#definergregisterinlinevoidread(int&n){rgcharc=getchar() 查看详情
[bzoj1877][sdoi2009]晨跑
1877:[SDOI2009]晨跑TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 2688 Solved: 1441[Submit][Status][Discuss]DescriptionElaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑、仰卧起坐等等,不过到目 查看详情
bzoj:1877:[sdoi2009]晨跑
题解:最小费用流;拆点法;#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<queue>usingnamespacestd;constintmaxn=1000;constintinf=100000000;intn,m;inttotn,s, 查看详情
bzoj1880:[sdoi2009]elaxia的路线
1880:[Sdoi2009]Elaxia的路线TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 1035 Solved: 412[Submit][Status][Discuss]Description最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了 查看详情
bzoj1877:[sdoi2009]晨跑
BZOJ1877:[SDOI2009]晨跑DescriptionElaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑、仰卧起坐等等,不过到目前为止,他坚持下来的只有晨跑。现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街... 查看详情
bzoj1875[sdoi2009]hh去散步
题面:1875:[SDOI2009]HH去散步TimeLimit: 20Sec MemoryLimit: 64MBSubmit: 1750 Solved: 851[Submit][Status][Discuss]DescriptionHH有个一成不变的习惯,喜欢饭后百步走。所谓百步走,就是散步,就是在一定的时间内, 查看详情
bzoj1878[sdoi2009]hh的项链
1878:[SDOI2009]HH的项链TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 3199 Solved: 1611[Submit][Status][Discuss]DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他 查看详情
[bzoj1878][sdoi2009]hh的项链
1878:[SDOI2009]HH的项链TimeLimit:4Sec MemoryLimit:64MBSubmit:4645 Solved:2302[Submit][Status][Discuss]DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思... 查看详情
bzoj1227:[sdoi2009]虔诚的墓主人
1#include<iostream>2#include<cstdio>3#include<algorithm>4#definelllonglong5#defineP2147483648LL6usingnamespacestd;7intn,m,w,K,H[200001];8llc[100001][11],tr[200001],ans;9structdata{in 查看详情
bzoj1875sdoi2009hh去散步
1875:[SDOI2009]HH去散步TimeLimit:20SecMemoryLimit:64MBSubmit:932Solved:424[Submit][Status][Discuss]DescriptionHH有个一成不变的习惯,喜欢饭后百步走。所谓百步走。就是散步。就是在一定的时间内,走过一定的距离。可是同一时候HH又是个喜欢变化的... 查看详情
bzoj-1875:[sdoi2009]hh去散步(矩阵快速幂)
1875:[SDOI2009]HH去散步TimeLimit: 20Sec MemoryLimit: 64MBSubmit: 1999 Solved: 980[Submit][Status][Discuss]DescriptionHH有个一成不变的习惯,喜欢饭后百步走。所谓百步走,就是散步 查看详情
bzoj1227:[sdoi2009]虔诚的墓主人
1227:[SDOI2009]虔诚的墓主人TimeLimit:5Sec MemoryLimit:259MBSubmit:1306 Solved:615[Submit][Status][Discuss]Description小W是一片新造公墓的管理人。公墓可以看成一块N×M的矩形,矩形的每个格点,要么种着一棵常青树,要么是一块... 查看详情
[bzoj1878][sdoi2009]hh的项链
[BZOJ1878][SDOI2009]HH的项链试题描述HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此,他的项链变得越来... 查看详情
[bzoj1878][sdoi2009]hh的项链(树状数组+离线)
1878:[SDOI2009]HH的项链TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 3210 Solved: 1619[Submit][Status][Discuss]DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他 查看详情
bzoj-1878:[sdoi2009]hh的项链(莫队算法)
1878:[SDOI2009]HH的项链TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 4857 Solved: 2401[Submit][Status][Discuss]DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他 查看详情
[bzoj1226][sdoi2009]学校食堂dining
[BZOJ1226][SDOI2009]学校食堂Dining试题描述小F的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭。学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴。当然,不同的人口味也不一定相同,但每个人的口味... 查看详情