DIDIDI loves to take a shower
时间限制:1000ms 内存限制:65535KB
提交总数:5 通过人数:0

题目描述
DIDIDI 是爱洗澡的好孩子,每次洗完澡后,B天之内一定要再洗一次澡,否则就会go die。
澡堂子每A天关一天门。

求:在DIDIDI不go die的情况下,每A天至少要洗几次澡
输入格式
第一行一个正整数t,代表数据组数。
接下来的t行,每行两个正整数A和B

1 <= t <= 2000
2 <= A,B <= 108
输出格式
对于每组样例,输出一行这样:
Case #i: ans

Case空格#编号:(半角)空格答案
i从1开始
ans……自己看吧,要求化简
样例输入

2
7 3
7 4

样例输出

Case #1: 5/2
Case #2: 2

提示
第一组样例:
可以理解为每周日关门,那么就是:
周三,周六,周二,周五,周一,周四,周六,周二,周五,周一,周四。
相当于两周去5次。

第二组样例:
周三,周六,周三,周六
一周去2次。
一直TLE 最后问了一个大神 先贴上大神的代码

#include <iostream>
#include <vector>
using namespace std;
long long ex_gcd(long long a,long long b,long long &x,long long &y)
{if(b==0){x=1;y=0;return a;}else{long long r=ex_gcd(b,a%b,y,x);y-=x*(a/b);return r;}
}
vector<long long> line_mod_equ(long long a,long long b,long long n)
{long long x,y;long long d=ex_gcd(a,n,x,y);vector<long long> ans;ans.clear();if(b%d==0){x=((x%n)+n)%n;ans.push_back(x*(b/d)%(n/d));for(int i=1;i<d;i++)ans.push_back((ans[0]+i*n/d)%n);}return ans;
}
int main()
{int t;cin>>t;for(int k=1;k<=t;k++){long long a,b,x,y,ansa=0,ansb=0,gg;long long tempx,tempy;double ttt=0;cin>>a>>b;gg=ex_gcd(a,b,x,y);if(gg==1){vector<long long> v=line_mod_equ(a%b,b-1,b);for(int i=0;i<v.size();i++){tempx=v[i];tempy=(a*tempx+1)/b;if(tempy*ansb<=ansa*tempx){ansa=tempy;ansb=tempx;gg=ex_gcd(ansa,ansb,x,y);ansa/=gg;ansb/=gg;}}}else{ansa=a/gg;ansb=b/gg;}if(ansb==1)cout<<"Case #"<<k<<": "<<ansa<<endl;elsecout<<"Case #"<<k<<": "<<ansa<<"/"<<ansb<<endl;}return 0;
}

再贴上我超时的代码

#include<iostream>
#include<string>
#include<algorithm>
#include<set>
#include<queue>
#include<vector>
#include<math.h>
#include<string.h>
#include<stdio.h>
using namespace std;
long long gcd(long long a,long long b)
{long long tt ;if(a>b){tt = a;a = b;b = tt;}while(b){tt = a%b;a = b;b = tt;}return a;
}
int main(void)
{int ncase,num=1;cin >> ncase;while(ncase--){long long A,B,cnt=1;scanf("%lld %lld",&A,&B);printf("Case #%d: ",num++);if(A%B == 0){printf("%lld\n",A/B);continue;}long long gd = gcd(A,B);if(gd!=1){printf("%lld/%lld\n",A/gd,B/gd);continue;}long long t = A;while(1){if((A+1) % B == 0){long long tt = gcd((A+1)/B,cnt);if(cnt/tt == 1)printf("%lld\n",(A+1)/B/tt);elseprintf("%lld/%lld\n",(A+1)/B/tt,cnt/tt);break;}else if(A % B == 0){long long tt = gcd((A)/B,cnt);if(cnt/tt == 1)printf("%lld\n",(A)/B/tt);elseprintf("%lld/%lld\n",(A)/B/tt,cnt/tt);break;}A += t;cnt++;}}return 0;
}

DIDIDI loves to take a shower(乘法逆元)相关推荐

  1. P5431 【模板】乘法逆元2(小学数学题,毒瘤鱼,卡常之王yyds)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P5431 [模板]乘法逆元2 题目传送门 题目大意: 给定 nnn 个正整数 aia_iai​ ,求 ...

  2. luogu P2613 【模板】有理数取余(费马小定理,乘法逆元)

    整理的算法模板合集: ACM模板 目录 题目传送门 题目传送门 相当于是一个高精的费马小定理求乘法逆元.虽然数据达到了101000110^{10001}1010001,但是我们可以使用快读然后一直模m ...

  3. luogu P5142 区间方差(线段树、乘法逆元)

    luogu P5142 区间方差 本题要求维护模区间方差,很明显是一道数据结构题. 我们化简方差公式: 而平均数等于 可以发现,我们只需要维护序列的区间和和区间平方和,就可以维护平均数和方差. 区间和 ...

  4. 洛谷——P3811 【模板】乘法逆元

    P3811 [模板]乘法逆元 线性求逆元 逆元定义:若$a*x\equiv1 (\bmod {b})$,且$a$与$b$互质,那么我们就能定义: $x$为$a$的逆元,记为$a^{-1}$,所以我们也 ...

  5. 【luogu 3811】【模板】乘法逆元

    题目背景 这是一道模板题 题目描述 给定n,p求1~n中所有整数在模p意义下的乘法逆元. 输入输出格式 输入格式: 一行n,p 输出格式: n行,第i行表示i在模p意义下的逆元. 输入输出样例 输入样 ...

  6. 51nod 1256 乘法逆元(扩展欧几里得)

    问题: 给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的. Input 输入2个数M, ...

  7. 乘法逆元通俗易懂的理解方法

    最近,发现数论真的很重要,基本上一套题必出一个数论的题.故接下来,要好好的看一看数论了. 乘法逆元我觉得其本质:就是数论里的倒数. 由上图你会发现:其取模的运算不满足除法的分配律,那么如何求除法的模运 ...

  8. 求乘法逆元的几种方法

    (数学渣,下面的文字可能有误,欢迎指教) 乘法逆元的定义貌似是基于群给出的,比较简单地理解,可以说是倒数的概念的推广.记a的关于模p的逆元为a^-1,则a^-1满足aa^-1≡ 1(mod p) 加减 ...

  9. zoj-3624(Count Path Pair)组合数+乘法逆元

    题意:给你4个点A(0,0),B(p,0),C(m,q),D(m,n)问:A-->D&& B-->C在不相交的情况下有多少种方法 此题在比赛中题目理解错了,英语水平还是太弱 ...

最新文章

  1. HTML标签元素的分类
  2. Kali渗透测试——利用metasploit攻击靶机WinXP SP1
  3. linux 修改Db2主机名,对DB2服务器主机名的修改的正确操作流程
  4. FlashFXP列表参数错误解决方法
  5. mysql中连接和断开数据库_robot framework——连接和断开mysql数据库
  6. 删除了几个月的照片能找回么_iPhone的相册管理功能居然这么强大?删掉的照片还能这样找回?...
  7. 极限编程XP的核心实践是什么?
  8. Android Studio工程项目打包成SDK(jar或aar格式)
  9. spring boot + nacos多环境部署
  10. 【Unity3D 灵巧小知识点】☀️ | Unity脚本生命周期
  11. 2021 常用的 7 款 MySQL 客户端工具
  12. 思维导图模板怎么下载
  13. 发现了一个开源的sip软电话项目(C#)
  14. 中国工商银行客服经理校招面试
  15. 提高工作效率必备的生产力工具
  16. 微信小程序:高德地图在小程序中的实践(含静态地图)
  17. redis案例1--标签实现
  18. 有哪些可以用于语文作文中的高级词汇?
  19. VI设计中员工制服设计的构思方向
  20. Hadoop 调优之Linux操作系统调优篇

热门文章

  1. Admin5论坛营销插件
  2. [机缘参悟-41]:鬼谷子-第五飞箝篇 - 通过钩箝之术考察一个人的人品和才能与黑暗森林法则
  3. 首尔市政府任命区块链治理小组成员
  4. 15. Eul的神圣法杖
  5. linux平铺窗口管理器,5个大的平铺窗口管理器为Linux | MOS86
  6. 【水果分类】基于计算机视觉实现水果识别分类含Matlab源码
  7. 1249. 亲戚(并查集)
  8. 九州云腾双因素认证系统_九州云腾董事长尚红林深度解读零信任网络
  9. seata http rpc获取全局事务xid源码解析
  10. 小猫爪:这些年遇过的Bug1-KW36 FLASH模拟EEPROM读写错误