双六问题(扩展欧几里得模板)
来源:互联网 发布:知轩藏书网 编辑:程序博客网 时间:2024/06/08 14:49
题目:一个双六上面有向前向后无限延续的格子,每个格子都写
有整数。其中0号格子是起点,1 号格子是终点。而骰子上只有a,b,-a,-b四个整数,
所以根据a和b的值的不同,有可能无法到达终点。现在的问题是掷出a,b,-a,-b各
多少次可以达到终点呢?
输入:一行,包含两个数 a 和 b,两数之间用一个空格分隔,含义如题目所述。
输出:一个数,表示掷出四个整数次数的和,如果解不唯一,就输出和最小的值,
如果无解则输出 0 。
输入示例:4 11
输出示例:4
数据范围:1<=a,b<=10^9
题解:这个问题其实就是一道裸的扩展欧几里得算法,翻译过来就是求整数x、y使得ax+by=1
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int ex_Gcd(int a,int b,int &x,int &y){ if(b == 0){ x = 1; y = 0; return a; } else{ int r = ex_Gcd(b,a%b,x,y); int t = x; x = y; y = t - (a/b)*y; return r; }}int main(){ int a,b,x,y; while(scanf("%d%d",&a,&b)!=EOF){ if(ex_Gcd(a,b,x,y)!=1) printf("0\n"); else printf("%d\n",abs(x)+abs(y)); } return 0;}
阅读全文
0 0
- 双六问题(扩展欧几里得模板)
- 扩展欧几里得各类问题模板
- 扩展欧几里得算法(模板)
- 计蒜客 机器人的相遇问题(扩展欧几里得模板题)
- 欧几里得+扩展欧几里得(转载、模板)
- 欧几里得模板以及扩展欧几里得
- 欧几里得, 扩展欧几里得算法模板
- 数学(扩展欧几里得算法)经典模板
- The Balance(扩展欧几里得模板题)
- 扩展的欧几里得模板
- 扩展欧几里得模板
- 扩展欧几里得 模板
- 【解析】【模板】扩展欧几里得
- 扩展欧几里得模板题
- 扩展欧几里得模板
- 扩展欧几里得模板
- 扩展欧几里得【模板】
- 扩展欧几里得模板
- [字典树] Codeforces 557E Ann and Half-Palindrome
- 2.1.6锁重入(支持继承锁)
- Java 获取接口所有实现类
- MFC函数汇总
- 显示时间
- 双六问题(扩展欧几里得模板)
- 实验二——静态链表
- vs(visual studio)2013无法启动IIS Expres Web服务器,解决办法
- 运行selenium时报错:Unsupported major.minor version 52.0
- Java泛型基础知识第二部分整理
- 5.flask开发(1)virtualenv
- poj 1556 The Doors (线段之间位置的判断+最短路)
- 单链表的基本操作实现
- 在js里遇到prepend添加变量问题