CF1967B1 Reverse Card (Easy Version) 题解
CF1967B1 Reverse Card (Easy Version)
我们发现 \(b\times\gcd(a,b)\) 必然为 \(b\) 的倍数,那么 \(b\times\gcd(a,b)\) 的倍数 \(a+b\) 也必然为 \(b\) 的倍数。所以,\(a\) 必然为 \(b\) 的倍数。因为 \(a\) 为 \(b\) 的倍数,所以 \(\gcd(a,b)=b\),原式可化为 \(a+b=xb^2\),其中 \(x\) 为正整数。
考虑枚举 \(b\),原式可化为 \(a=xb^2-b\)。又因为 \(a\le n\),则 \(xb^2-b\le n\)。则 \(x\) 的最大值为 \(\lfloor\frac{n+b}{b^2}\rfloor\),共有 \(\lfloor\frac{n+b}{b^2}\rfloor\) 种取值,对应的,\(a\) 也有 \(\lfloor\frac{n+b}{b^2}\rfloor\) 种取值。
注意最后有 \(a=1,b=1\) 这种情况会算重,需要减去 \(1\)。
代码实现与讲解略微不同,但本质一样。
#include <bits/stdc++.h>
using namespace std;
long long t,n,m;
int main()
{
scanf("%lld",&t);
while(t--)
{
long long ans=0;
scanf("%lld%lld",&n,&m);
for(int i=1;i<=m;i++)
{
if(n<(i-1)*i)break;
ans=ans+(n-(i-1)*i)/(i*i)+1;
}
printf("%lld\n",ans-1);
}
return 0;
}
CF1967B1 Reverse Card (Easy Version) 题解的更多相关文章
- CF1157C1-Increasing Subsequence (easy version)题解
原题地址 题目大意:
- ZOJ 3868 - Earthstone: Easy Version
3868 - Earthstone: Easy Version Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld ...
- Codeforces 1077F1 Pictures with Kittens (easy version)(DP)
题目链接:Pictures with Kittens (easy version) 题意:给定n长度的数字序列ai,求从中选出x个满足任意k长度区间都至少有一个被选到的最大和. 题解:$dp[i][j ...
- UVA12569-Planning mobile robot on Tree (EASY Version)(BFS+状态压缩)
Problem UVA12569-Planning mobile robot on Tree (EASY Version) Accept:138 Submit:686 Time Limit: 300 ...
- Codeforces Round #521 (Div. 3) F1. Pictures with Kittens (easy version)
F1. Pictures with Kittens (easy version) 题目链接:https://codeforces.com/contest/1077/problem/F1 题意: 给出n ...
- CF1225B1 TV Subscriptions (Easy Version)
CF1225B1 TV Subscriptions (Easy Version) 洛谷评测传送门 题目描述 The only difference between easy and hard vers ...
- Ping-Pong (Easy Version)(DFS)
B. Ping-Pong (Easy Version) time limit per test 2 seconds memory limit per test 256 megabytes input ...
- Coffee and Coursework (Easy version)
Coffee and Coursework (Easy version) time limit per test 1 second memory limit per test 256 megabyte ...
- 2016级算法第六次上机-B.ModricWang's FFT : EASY VERSION
1114 ModricWang's FFT EASY VERSION 思路 利用FFT做大整数乘法,实际上是把大整数变成多项式,然后做多项式乘法. 例如,对于\(1234\),改写成\(f(x)=1* ...
- Saving James Bond - Easy Version (MOOC)
06-图2 Saving James Bond - Easy Version (25 分) This time let us consider the situation in the movie & ...
随机推荐
- rabbitmq学习与总结
一.rabbitmq的使用场景 1.高并发的流量削峰 举个例子,假设某订单系统每秒最多能处理一万次订单,也就是最多承受的10000qps,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒 ...
- 康谋产品 | 用于ADAS和AD传感器的独立数据采集设备
一.产品简介 在 ADAS/AD 环境中,如果想要将原始数据与摄像头.雷达或激光雷达等传感器分离,总是会使用测量数据转换器.借助MDILink,您可以获得一个SerDes测量数据转换器,从开发阶段和验 ...
- 为什么 Java 中某些新生代和老年代的垃圾收集器不能组合使用?
为什么 Java 中某些新生代和老年代的垃圾收集器不能组合使用? 在 JVM 中,新生代和老年代的垃圾收集器是分工协作的.然而,并非所有的新生代和老年代垃圾收集器都能任意组合使用,这是由于它们的设计目 ...
- kettle介绍-Step之Abort
Abort中止介绍 中止步骤用于读取指定行数之后停止读取剩余行数,可以用于调试转换 Step Name:步骤的名称,在单一的转换中,名称必须唯一 Abort threshold:指定行数,转换读取到指 ...
- kettle介绍-Step之If field value is null
If field value is null介绍 替换NULL值步骤可以将输入流中所有字段的空值进行替换,也可以指定一种类型下的空值进行替换,还可以指定一个字段下的空值进行替换 三种替换NULL模式 ...
- 解决React Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, ... useEffect cleanup function.
在写react程序时遇到警告: Warning: Can't perform a React state update on an unmounted component. This is a no- ...
- coreJava笔记——1
一.数组 对于数组的操作: 1.System.arrayopy(旧数组,下表,新数组,下表,长度) 2.新对象 = Arrays.copyOf(旧数组,长度): \如果要删除数组中的一个元素,先用1. ...
- toRefs 与 toRef 的详解
一.引言在 Vue 3 的响应式系统里,toRefs 和 toRef 是两个实用的工具函数,它们在处理响应式数据时发挥着重要作用.合理运用这两个函数,可以让我们在操作响应式对象和数组时更加灵活,避免一 ...
- final year project:C++手写numpy并移植到RISC-V上——纪念我在中科院实习的日子
我毕设做的项目是用C++去实现一个Numpy,因为我是大数据专业,Numpy又是跟数据分析有关的工具,所以我打算自己动手去实现一个小型的Numpy,目前代码规模大概在六千多行左右,并且可以成功移植 ...
- Filter与Interceptor的区别
前言 在看springboot项目时,其中的会话持续时,了解到token,session,jwt等方法,但是接着我就了解到过滤器(Filter)以及拦截器(Interceptor),感觉这两个东西真的 ...