news 2026/4/3 3:00:26

《P2152 [SDOI2009] SuperGCD》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《P2152 [SDOI2009] SuperGCD》

题目描述

Sheng bill 有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的最大公约数!因此他经常和别人比赛计算最大公约数。有一天 Sheng bill 很嚣张地找到了你,并要求和你比赛,但是输给 Sheng bill 岂不是很丢脸!所以你决定写一个程序来教训他。

输入格式

共两行,第一行一个整数 a,第二行一个整数 b。

输出格式

一行,表示 a 和 b 的最大公约数。

输入输出样例

输入 #1复制

12 54

输出 #1复制

6

说明/提示

数据规模与约定
  • 对于 20% 的数据,有 0<a,b≤1018。
  • 对于 100% 的数据,有 0<a,b≤1010000。

代码实现:

#include <bits/stdc++.h> using namespace std; const long long MOD = 10000000000000000ll; const int MAXN = 700; long long A[MAXN], B[MAXN]; char buf[MAXN << 4]; inline long long str2ll(char s[], int l, int r) { long long res = 0, pow10 = 1; for (int i = l; i <= r; i++) res += (s[i] ^ 48) * pow10, pow10 *= 10ll; return res; } inline void read_big(long long x[]) { scanf("%s", buf + 1); int len = x[0] = strlen(buf + 1); x[0] = (len + 15) >> 4; for (int i = 1; i <= (len >> 1); i++) swap(buf[i], buf[len - i + 1]); // 修复:将i的定义移到for循环外,扩大作用域 int i; for (i = 1; i + 15 <= len; i += 16) x[(i + 15) >> 4] = str2ll(buf, i, i + 15); if (i <= len) x[x[0]] = str2ll(buf, i, len); } inline void print_big(long long x[]) { printf("%lld", x[x[0]]); for (int i = x[0] - 1; i >= 1; i--) printf("%016lld", x[i]); } inline void cp(long long a[], long long b[]) { memcpy(b, a, MAXN << 3); } inline void clr(long long x[]) { memset(x, 0, MAXN << 3); } inline bool is_even(long long x[]) { return !(x[1] & 1); } inline void div2(long long x[]) { bool rem[MAXN] = {0}; if (!x[0]) return; for (int i = x[0]; i; i--) rem[i - 1] = x[i] & 1, x[i] >>= 1; for (int i = x[0]; i; i--) if (rem[i]) x[i] += MOD >> 1; while (x[0] && !x[x[0]]) --x[0]; } inline void mul2(long long x[]) { long long carry = 0; for (int i = 1; i <= x[0] + 1; i++) { x[i] = (x[i] << 1) + carry; carry = x[i] / MOD; x[i] %= MOD; } while (x[x[0] + 1]) ++x[0]; } inline int cmp(long long a[], long long b[]) { if (a[0] > b[0]) return 1; if (a[0] < b[0]) return -1; for (int i = a[0]; i; i--) { if (a[i] > b[i]) return 1; if (b[i] > a[i]) return -1; } return 0; } inline void sub(long long a[], long long b[], long long res[]) { clr(res); for (int i = 1; i <= a[0]; i++) { res[i] += a[i] - b[i]; if (res[i] < 0) res[i] += MOD, --res[i + 1]; } res[0] = a[0]; while (res[0] && !res[res[0]]) --res[0]; } long long tmp[MAXN], res[MAXN]; inline void big_gcd(long long a[], long long b[]) { clr(res); if (cmp(a, b) == -1) cp(a, tmp), cp(b, a), cp(tmp, b); bool a_even, b_even; int cnt2 = 0; while (b[0]) { a_even = is_even(a); b_even = is_even(b); if (a_even && b_even) { cnt2++; div2(a); div2(b); } else if (!a_even && b_even) { div2(b); } else if (a_even && !b_even) { div2(a); } else { sub(a, b, tmp); cp(tmp, a); } if (cmp(a, b) == -1) cp(a, tmp), cp(b, a), cp(tmp, b); } cp(a, res); while (cnt2--) mul2(res); } int main() { read_big(A); read_big(B); big_gcd(A, B); print_big(res); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/24 2:27:32

妇产科医疗问答数据集_183750条专业问答数据_涵盖妇产科产科生殖医学科计划生育_完整原始问答内容_医疗AI训练数据集_中文医疗对话数据集

引言与背景 在人工智能与医疗健康深度融合的时代背景下&#xff0c;高质量的医疗问答数据集已成为推动医疗AI技术发展的关键资源。妇产科医疗问答数据集作为一个专业、全面的中文医疗对话数据集&#xff0c;为医疗人工智能的研究与应用提供了宝贵的数据支撑。该数据集不仅包含…

作者头像 李华
网站建设 2026/3/13 18:07:37

文献检索技巧与方法:提升学术研究效率的关键路径

科研新人做综述时最痛苦&#xff1a;一搜就是几十页论文&#xff0c;重复、无关、没用。下面三款工具让我效率翻倍。 ① WisPaper&#xff08;智能学术搜索 文献管理&#xff09; 官网&#xff1a;https://www.wispaper.ai WisPaper 能通过关键词和语义搜索快速找到相关文献&…

作者头像 李华
网站建设 2026/3/27 3:17:47

uniapp+springboot基于微信小程序的咖啡店饮品点餐系统必吃榜_56v41c6q

文章目录具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 同行可拿货,招校园代理 uniappSpringboot基于微信小程序的咖啡店饮品点餐系统必吃…

作者头像 李华
网站建设 2026/3/14 13:07:56

黑马微服务p10mybatisplus09核心功能iservice 不知道如何在新版的idea中打开下面的service,找到“Add Configuration Type”

问题描述在下面图片的这个位置&#xff0c;不知道如何在新版的idea中打开下面的service,找到“Add Configuration Type”解决点击alt8,或者找到左下角的那个六边形里面嵌套一个三角形的图标。然后点击加号&#xff0c;再点击最上面的。找到springboot,我这里已经添加上去了&…

作者头像 李华
网站建设 2026/3/29 3:59:48

告别“抽卡式”创作,集之互动定义商业级AIGC视频交付新标准

当ChatGPT引爆了文本生成的革命&#xff0c;Sora与Runway等工具再次点燃了视频生成的狂想。然而&#xff0c;在喧嚣的AIGC浪潮之下&#xff0c;营销行业正面临着一个尴尬的“落地悖论”&#xff1a;一方面&#xff0c;品牌方极度渴望利用AI降低内容生产成本、提升效率&#xff…

作者头像 李华