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) 题解的更多相关文章

  1. CF1157C1-Increasing Subsequence (easy version)题解

    原题地址 题目大意:

  2. ZOJ 3868 - Earthstone: Easy Version

    3868 - Earthstone: Easy Version Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld ...

  3. Codeforces 1077F1 Pictures with Kittens (easy version)(DP)

    题目链接:Pictures with Kittens (easy version) 题意:给定n长度的数字序列ai,求从中选出x个满足任意k长度区间都至少有一个被选到的最大和. 题解:$dp[i][j ...

  4. 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 ...

  5. 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 ...

  6. CF1225B1 TV Subscriptions (Easy Version)

    CF1225B1 TV Subscriptions (Easy Version) 洛谷评测传送门 题目描述 The only difference between easy and hard vers ...

  7. Ping-Pong (Easy Version)(DFS)

    B. Ping-Pong (Easy Version) time limit per test 2 seconds memory limit per test 256 megabytes input ...

  8. Coffee and Coursework (Easy version)

    Coffee and Coursework (Easy version) time limit per test 1 second memory limit per test 256 megabyte ...

  9. 2016级算法第六次上机-B.ModricWang's FFT : EASY VERSION

    1114 ModricWang's FFT EASY VERSION 思路 利用FFT做大整数乘法,实际上是把大整数变成多项式,然后做多项式乘法. 例如,对于\(1234\),改写成\(f(x)=1* ...

  10. Saving James Bond - Easy Version (MOOC)

    06-图2 Saving James Bond - Easy Version (25 分) This time let us consider the situation in the movie & ...

随机推荐

  1. rabbitmq学习与总结

    一.rabbitmq的使用场景 1.高并发的流量削峰 举个例子,假设某订单系统每秒最多能处理一万次订单,也就是最多承受的10000qps,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒 ...

  2. 康谋产品 | 用于ADAS和AD传感器的独立数据采集设备

    一.产品简介 在 ADAS/AD 环境中,如果想要将原始数据与摄像头.雷达或激光雷达等传感器分离,总是会使用测量数据转换器.借助MDILink,您可以获得一个SerDes测量数据转换器,从开发阶段和验 ...

  3. 为什么 Java 中某些新生代和老年代的垃圾收集器不能组合使用?

    为什么 Java 中某些新生代和老年代的垃圾收集器不能组合使用? 在 JVM 中,新生代和老年代的垃圾收集器是分工协作的.然而,并非所有的新生代和老年代垃圾收集器都能任意组合使用,这是由于它们的设计目 ...

  4. kettle介绍-Step之Abort

    Abort中止介绍 中止步骤用于读取指定行数之后停止读取剩余行数,可以用于调试转换 Step Name:步骤的名称,在单一的转换中,名称必须唯一 Abort threshold:指定行数,转换读取到指 ...

  5. kettle介绍-Step之If field value is null

    If field value is null介绍 替换NULL值步骤可以将输入流中所有字段的空值进行替换,也可以指定一种类型下的空值进行替换,还可以指定一个字段下的空值进行替换 三种替换NULL模式 ...

  6. 解决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- ...

  7. coreJava笔记——1

    一.数组 对于数组的操作: 1.System.arrayopy(旧数组,下表,新数组,下表,长度) 2.新对象 = Arrays.copyOf(旧数组,长度): \如果要删除数组中的一个元素,先用1. ...

  8. toRefs 与 toRef 的详解

    一.引言在 Vue 3 的响应式系统里,toRefs 和 toRef 是两个实用的工具函数,它们在处理响应式数据时发挥着重要作用.合理运用这两个函数,可以让我们在操作响应式对象和数组时更加灵活,避免一 ...

  9. final year project:C++手写numpy并移植到RISC-V上——纪念我在中科院实习的日子

      我毕设做的项目是用C++去实现一个Numpy,因为我是大数据专业,Numpy又是跟数据分析有关的工具,所以我打算自己动手去实现一个小型的Numpy,目前代码规模大概在六千多行左右,并且可以成功移植 ...

  10. Filter与Interceptor的区别

    前言 在看springboot项目时,其中的会话持续时,了解到token,session,jwt等方法,但是接着我就了解到过滤器(Filter)以及拦截器(Interceptor),感觉这两个东西真的 ...