原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576

分析:等式枚举法,由题意可得:,代入 ,    得:,把变量 合在一起得: ;即满足 倍数,因为 ,所以解时唯一的。

使用扩展欧几里德算法费马小定理 来求解,涉及到有关逆元的知识这里就不详细叙述了。

代码如下:

       方法一(等式枚举):

#include <bits/stdc++.h>
using namespace std; int main(void)
{
int t;
cin >> t; while(t--)
{
long long a , b, n;
cin >> n >> b;
for(int i = 1;i <= 9972; i++)
{
long long x;
x = b * i - n;
if(x % 9973 == 0)
{
cout << i << endl;
break;
}
}
} return 0;
}

       方法二(求逆元法):

#include <bits/stdc++.h>
using namespace std; // 费马小定理
/*long long quickpow(long long a, long long b) {
if (b < 0) return 0;
long long ret = 1;
a %= 9973; while (b) {
if (b & 1) ret = (ret * a) % 9973;
b >>= 1;
a = (a * a) % 9973;
}
return ret;
}*/ int x, y;
int exgcd(int a, int b) { // 扩展欧几里德算法
int t;
if (b == 0) // 推理, 终止条件1
{
x = 1;
y = 0;
return a;
}
else {
exgcd(b, a%b);
t = x;
x = y;
y = t - (a/b) * y;
}
}
int main(void)
{
int t;
cin >> t; while(t--)
{
long long a , b, n;
cin >> n >> b; //int x = quickpow(b, 9973 - 2);
exgcd(b, 9973);
if (x < 0) x += 9973;
x *= n; cout << x % 9973 << endl;
} return 0;
}

HDU 1576 A/B (两种解法)的更多相关文章

  1. Java描述表达式求值的两种解法:双栈结构和二叉树

    Java描述表达式求值的两种解法:双栈结构和二叉树 原题大意:表达式求值 求一个非负整数四则混合运算且含嵌套括号表达式的值.如: # 输入: 1+2*(6/2)-4 # 输出: 3.0 数据保证: 保 ...

  2. 51nod 1165 整边直角三角形的数量(两种解法)

    链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1165 直角三角形,三条边的长度都是整数.给出周长N,求符合条件的三角形数量. ...

  3. Letter Combinations of a Phone Number:深度优先和广度优先两种解法

    Letter Combinations of a Phone Number Given a digit string, return all possible letter combinations ...

  4. 【Java面试真题】剑指Offer53.2——0~n-1中缺失的数字(异或、二分两种解法)

    [Java实现]剑指Offer53.2--0~n-1中缺失的数字:面试真题,两种思路分享 前面有另一道面试题[Java实现]剑指offer53.1--在排序数组中查找数字(LeetCode34:在排序 ...

  5. leetcode-91-解码方法(动态规划和递归两种解法)

    题目描述: 一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数 ...

  6. POJ 1157 LITTLE SHOP OF FLOWERS (超级经典dp,两种解法)

    You want to arrange the window of your flower shop in a most pleasant way. You have F bunches of flo ...

  7. Sort List[leetcode] 由归并排序的递归和循环,到本题的两种解法

    归并排序能够有两种思路----top-down 和 bottom-up top-down: 递归实现,将数组分成两半.分别处理.再合并. 伪代码例如以下: split ( A[], l, r) { i ...

  8. POJ 1182食物链(分集合以及加权两种解法) 种类并查集的经典

    题目链接:http://icpc.njust.edu.cn/Problem/Pku/1182/ 题意:给出动物之间的关系,有几种询问方式,问是真话还是假话. 定义三种偏移关系: x->y 偏移量 ...

  9. Big Event in HDU(杭电1171)(多重背包)和(母函数)两种解法

    Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

随机推荐

  1. Python绘制面积图

    一.Python绘制面积图对应代码如下图所示 import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans ...

  2. 转: iPhone屏幕尺寸、分辨率及适配

    1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS ...

  3. Matalb 正则表达式预处理数据(一)

    clc clear %% Step 1: 读入数据 phasedata = readtable('phasedata.txt'); %% Step 2: 提取数据 time = phasedata(: ...

  4. LuoguP7441 「EZEC-7」Erinnerung 题解

    Content 给定 \(x,y,K\).定义两个数列 \(c,e\),其中 \(c_i=\begin{cases}x\cdot i&x\cdot i\leqslant K\\-K&\ ...

  5. CF1514A Perfectly Imperfect Array 题解

    Content 给定一个长度为 \(n\) 的序列,问是否存在一个非空子序列,使得这个子序列所有元素的积不是完全平方数. 数据范围:\(t\) 组数据,\(1\leqslant t\leqslant ...

  6. SQL优化一例:通过改变分组条件(减少计算次数)来提高效率

    #与各人授权日期相关,所以有十万用户,就有十万次查询(相关子查询) @Run.ExecuteSql("更新各人应听正课数",@"update bi_data.study_ ...

  7. 通过css实现表格的斜线

    效果图 实现思路 编辑一个svg文件,可以自定义线条颜色和粗细. 将svg文件转为base64格式,作为背景图属性设置. svg转base64的网址:https://www.sojson.com/im ...

  8. 十行代码搭建基于.NET6三维应用程序

    本文介绍在.NET6环境下如何集成Rapid SDK三维控件,请首先确保已经安装了Vistual Studio 2022,社区版就够用了. 1 创建项目 选择创建Windows窗体应用 给程序起一个酷 ...

  9. nanogui源码编译+下载

    MAC 没电了,哎..... 只能使用windows10将就了.    截至目前,我已经找到了两个nanogui项目,都是大佬. 分别为: A.https://github.com/dalerank/ ...

  10. 【九度OJ】题目1113:二叉树 解题报告

    [九度OJ]题目1113:二叉树 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1113 题目描述: 如上所示,由正整数1,2,3-- ...