CF Gym100548 K Last Defence 解题报告
先特判掉特殊情况:
- $a=b,Ans=2$
- $ab=0,a+b>0,Ans=2$
- $a=b=0,Ans=1$
考虑剩下的非特殊情况。记$Solve(a,b)$为数列中除了$a,b$外的不同的数的个数,分两种情况:
- $b|a$,设$a=kb$,那么数列会出现的数有:$0,b,2b,3b,\cdots,kb$,那么$Solve(a,b)=k-1$。
- $b\nmid a$,设$a=kb+r$,那么数列中会出现的与$a$在对$b$取模下同余的数有:$r,r+b,r+2b,\cdots,r+kb$,那么可以得到$Solve(a,b)=Solve(b,r)+k$。
所以最后$Ans=Solve(a,b)+2$。
#include <cstdio>
#include <iostream>
using namespace std;
typedef long long LL; int Case, T;
LL a, b, cnt; inline LL Solve(LL x, LL y)
{
if (x % y == ) return x / y - ;
LL res = x / y;
return Solve(y, x % y) + res;
} int main()
{
scanf("%d", &Case);
for (T = ; T <= Case; T ++)
{
cin >> a >> b;
if (a == && b == ) cnt = ;
else if (a == b || a == || b == ) cnt = ;
else cnt = Solve(a, b) + ;
printf("Case #%d: ", T);
cout << cnt << endl;
}
return ;
}
Gym100548 K
CF Gym100548 K Last Defence 解题报告的更多相关文章
- CF Round #600 (Div 2) 解题报告(A~E)
CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include< ...
- 【剑指Offer】链表中倒数第k个节点 解题报告(Python)
[剑指Offer]链表中倒数第k个节点 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
- 【LeetCode】692. Top K Frequent Words 解题报告(Python)
[LeetCode]692. Top K Frequent Words 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/top ...
- 【剑指Offer】二叉搜索树的第k个结点 解题报告(Python)
[剑指Offer]二叉搜索树的第k个结点 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
- 【LeetCode】658. Find K Closest Elements 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/find-k-c ...
- 【LeetCode】358. Rearrange String k Distance Apart 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/rearrang ...
- 【LeetCode】347. Top K Frequent Elements 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 解题方法 字典 优先级队列 日期 题目地址:https://l ...
- 【LeetCode】395. Longest Substring with At Least K Repeating Characters 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/longest- ...
- 【原创】leetCodeOj --- Merge k Sorted Lists 解题报告
题目地址: https://oj.leetcode.com/problems/merge-k-sorted-lists/ 题目内容: /** * Definition for singly-linke ...
随机推荐
- mongodb c++ 驱动库编译
git clone 'https://github.com/mongodb/mongo-cxx-driver.git' scons -j2 --c++11=on --sharedclient --us ...
- 用LINQ在集合中查询特定对象
这里是原文出处: 简单的概括LINQ LINQ是Language-Integrated Query的缩写,是C# 3.0和VB 9.0中新加入的语言特性,可以在编程时使用内置的查询语言进行基于集合的操 ...
- 安装Apache(httpd服务)
安装Apache(httpd服务) ① 移动所有压缩包到root文件夹下(root的家) ② 解压httpd压缩包(.tar.gz) 使用tar指令解压.tar.gz压缩包 tar 指令 -zxf : ...
- JAVA作业-1
编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果. import javax.swing.JOptionPane; // import class JOptionPane publ ...
- jQuery checkBox 全选的例子
表单处理时经常会有全选的功能,但是这个功能往往会被忽视一个细节,就是逐个选中 checkBox 直至全选时,经常会忘记修改全选 checkBox 的状态,某知名互联网公司的网盘就会出现这样的问题,问题 ...
- The-ith-Element
Brief: the-ith-element,given a array A with n element , return the i-th element of A. A(n,i) this p ...
- 关于FileOutputStream的问题
FileoutputStream在文件不存在的情况下会新建文件,但是有几个注意点: 1.有目录名(文件夹名)和文件名重复的话,会报错: 2.目录名不存在的情况下,也会报错
- 【风马一族_Android】Android 前端内容
Android 前端内容 4.1 View 类概述 4.1.1 关于 View //类型说明 view(视图)指的是用户界面组件的基本构建基块.一个视图占据屏幕上的矩形区域,负责绘图和事件处理.视图是 ...
- 怎样按字母顺序(ABCDEF)动态添加控件
考试系统中题库设计时,我想动态添加选项,顺序按ABCDEF这样,点击一下按钮添加A(radiobutton),再点击添加B,如此依次添加.本人比较菜,求达人写一个方法. private void bu ...
- Ubuntu下设置Tomcat成为服务(开机启动)
1.将tomcat安装目录下bin文件夹中的catalina.sh拷贝到/etc/init.d下并修改名称为tomcat cp /path/to/tomcat/bin/catalina.sh /et ...