中山网站建设服务,12345浏览器,wordpress底部固定导航代码,做棋牌网站建设哪家好问题 C: 磨刀 时间限制: 1 Sec 内存限制: 128 MB提交: 190 解决: 39[提交] [状态] [讨论版] [命题人:admin]题目描述 磨刀是一个讲究的工作#xff0c;只能在n℃下进行#xff0c;所以我们首先要做的就是把刀的表面温度提升到n℃。处理刀身温度有两种方式#xff1a;1.淬火… 问题 C: 磨刀 时间限制: 1 Sec 内存限制: 128 MB提交: 190 解决: 39[提交] [状态] [讨论版] [命题人:admin] 题目描述 磨刀是一个讲究的工作只能在n℃下进行所以我们首先要做的就是把刀的表面温度提升到n℃。处理刀身温度有两种方式 1.淬火使刀身温度提高a℃ 2.冰敷使刀身温度降低b℃。宝儿姐想知道能否经过多次处理使得刀身温度达到n℃。 输入 每组输入包含一行包含三个非负整数n, a, b含义如上文数据范围均不超过2^63输入已EOF结束 输出 根据计算输出“YES”或“NO”。 样例输入 3 6 9样例输出 YES 提示 对于第一个样例先冰敷使刀身温度降至-9℃在淬火使刀身温度升至3℃即可 。刀身起始温度为0 。 大致思路 1、第一眼想到bfs其实不行数据返回太大毕竟数据范围均不超过2^63 2、用longlong来存储所有数据 3、本题求的是一个方程式a*xb*yn, x表示a磨刀的次数y表示b磨刀的次数当然了x和y在应用扩展欧几里得算法的时候会出现负值的情况需要剔除掉这些情况| 4、初始温度为0看‘’提示‘’得到的信息一点瑕疵 1 #includeiostream2 #includestdio.h3 #includestring.h4 #includestring5 #includealgorithm6 #define ll long long7 using namespace std;8 #define N 1009
10 ll exgcd(ll a,ll b,ll x,ll y){
11 if(!b)
12 {
13 x1;y0;return a;
14 }
15 else{
16
17 ll rexgcd(b,a%b,y,x);
18 y-a/b*x;
19 return r;
20 }
21
22 }
23
24 int main(){
25 ll n,a,b;
26 while(scanf(%lld%lld%lld,n,a,b)!EOF){
27 ll r, x,y;
28 rexgcd(a,b,x,y);
29 if(n%r0x0y0)
30 printf(YES\n);
31 else
32 printf(NO\n);
33 }
34
35 return 0;
36 } View Code 转载于:https://www.cnblogs.com/zhazhaacmer/p/9399506.html