P2090 数字对
P2090 数字对
不是,这不是黄题吗,鉴定为我太菜了
考虑这东西长得像辗转相除法。最终结果一定是 \((n,B)\) 这样子的。那么它一定是由 \((n-B,B)\) 转移过来。对于 \((a,b)\) 如果 \(a>b\) 它会变成 \((a-b,b)\),否则是 \((a,b-a)\)。
于是也许我们可以枚举 \(B\),把 \(a-b\) 这个操作变成 \(a\bmod b\) 这样时间就是 \(O(n\log n)\) 了。
#include<bits/stdc++.h>
// #define LOCAL
#define sf scanf
#define pf printf
#define rep(x,y,z) for(int x=y;x<=z;x++)
using namespace std;
typedef long long ll;
const int N=1e6+7,inf=0x3f3f3f3f;
int n;
int ans=inf;
int cal(int a,int b){
if(a<b) swap(a,b);
if(b==1) return a-1;
if(b==0) return inf;
return cal(a%b,b)+a/b;
}
int main(){
#ifdef LOCAL
freopen("in.txt","r",stdin);
freopen("my.out","w",stdout);
#endif
sf("%d",&n);
rep(B,1,n){
ans=min(ans,cal(n,B));
}
pf("%d\n",ans);
}
P2090 数字对的更多相关文章
- 洛谷——P2090 数字对
P2090 数字对 题目描述 对于一个数字对(a, b),我们可以通过一次操作将其变为新数字对(a+b, b)或(a, a+b). 给定一正整数n,问最少需要多少次操作可将数字对(1, 1)变为一个数 ...
- 洛谷 P2090 数字对
发现如果给定两个数(a,b),可以用类似辗转相除法在logn的时间内计算出(反向)变到(1,1)的最小步数. 然而并不知道另一个数是多少? 暴力嘛,枚举一下另一个数,反正1000000的nlogn不虚 ...
- C语言 · 判定数字
编写函数,判断某个给定字符是否为数字. 样例输入 9 样例输出 yes #include<stdio.h> int main(){ char c; scanf("%c" ...
- excel 日期/数字格式不生效需要但双击才会生效的解决办法
原因: Excel2007设置过单元格格式后,并不能立即生效必须挨个双击单元格,才能生效.数据行很多.效率太低. 原因:主要是一些从网上拷贝过来的日期或数字excel默认为文本格式或特殊-中文数字格式 ...
- JavaScript求两个数字之间所有数字的和
这是在fcc上的中级算法中的第一题,拉出来的原因并不是因为有什么好说的,而是我刚看时以为是求两个数字的和, 很显然错了.我感觉自己的文字理解能力被严重鄙视了- -.故拉出来折腾折腾. 要求: 给你一个 ...
- Xamarin Android 应用程序内图标上数字提示
最近在用 Xamarin 做一个 Android 应用,打开应用时,如果有新消息,需要在应用内的 Toolbar 或者首页的图标上显示数字提示.在这里和大家分享一下实现方法,如果你有更新好的实现方法, ...
- C# WinForm使用乐器数字接口
继续,前面已经实现了C#调用Windows API实现了弹出对话框功能.使用了User32.dll文件,主要代码如下: [DllImport("User32.dll")]publi ...
- 04实现累加和计算功能并且实现textbox不允许输入数字以外的字符但不包括退格键同时不允许第一个数值为0
private void button1_Click(object sender, EventArgs e) { double number1, number2; if (double.TryPars ...
- js验证输入的是否是数字,小数保留几位小数
1.验证方法 validationNumber(e, num) e代表标签对象,num代表保留小数位数 function validationNumber(e, num) { -]+\.?[-]*$ ...
- 原生js可爱糖果数字时间特效
效果展示:http://hovertree.com/texiao/js/35/ 数字采用漂亮的糖果皮肤设计 效果图: 代码如下: <!DOCTYPE html> <html> ...
随机推荐
- 如何打开超过20G的sql文件
最近在导项目中数据的流程时,对原数据库做了备份,备份好的sql文件有40G左右,通过一番折腾把数据库拿到本地PC,发现PC机直接弄不行: 平时经常使用的NotePad++,提示文本太大无法打开: PC ...
- SciTech-Mathmatics-Lean : 数学推导的自动化形式化证明语言
SciTech-Mathmatics-Lean : 数学推导的自动化形式化证明语言 Official Site https://lean-lang.org/documentation/ Lean4 - ...
- SSL/TLS的认证和加密问题
基本概念 TLS TLS(Transport Layer Security) 是保证数据在互联网上安全传输的加密协议:保证数据在传输的过程中中间的人无法解密,无法修改.TLS 要解决的问题就是,能证明 ...
- oracle通过dblink连接mysql配置详解-九五小庞
oracle通过dblink连接mysql配置详解
- steam独立游戏数据
https://indienova.com/indie-game-development/ninety-five-percent-of-indie-games-on-steam-are-incurri ...
- [AGC066C] Delete AAB or BAA
\(\mathbf{Part.-1}\) 给定一个由字符 A 和 B 组成的字符串 \(S\) . 在这根绳子上,您可以反复执行以下操作: 在字符串 \(S\) 中选择三个连续且相等的字符,这些字符要 ...
- CloudQuery v1.4.2 发布 | 新增 PolarDB 、数据导入工具
Hello,社区的小伙伴们,CloudQuery v1.4.2 已发布,本次新增数据源 PoalrDB.新增「数据导入」工具等,并且通过我们的努力,终于大幅减少了服务运行所需内存资源~ImageIma ...
- CVE-2020-17526 Apache Airflow 身份验证绕过漏洞 (复现)
开启容器前执行docker compose run airflow-init初始化Apache Airflow 数据库 再执行docker compose up -d开启容器 访问ip:8080端口登 ...
- 【MySQL】2.细节知识
1.存储引擎 MySQL体系结构 连接层:最上层的客户端连接服务,完成连接处理.授权认证等服务 服务层:完成大多数核心服务功能,并完成缓存的查询,SQL的分析和优化,部分内置函数执行 引擎层:负责My ...
- UE5工装服自动适配体型参数化制作教程
<Workman's Guide to MetaHuman Outfits>是一套面向 Unreal Engine 5 的完整工装服参数化制作教程.课程聚焦 UE5.6 引入的 MetaH ...