首页 > 其他分享 >CF1780E Bit Guessing Game

CF1780E Bit Guessing Game

时间:2023-02-02 07:44:37浏览次数:70  
标签:lfloor Guessing frac 边权 CF1780E rfloor i64 Bit include

题目链接 - https://codeforces.com/contest/1780/problem/E

给定一张无向图,其中有 \(R - L + 1\) 个点,编号从 \(L\) 到 \(R\),每两个点 \(u\),\(v\) 间连一条边,边权为 \(gcd(u,v)\),问该图有多少种边权

考虑每种边权是否存在于这张图上,对于 \(i\),若其不存在于这张图的边权上,则该区间一定不存在任意 \(x\),满足 \(i | x\),使得 \(x + i\) 也存在于这个区间,反之边权 \(i\) 存在

于是我们需要找到所有满足 \(\lfloor\frac{R}{i}\rfloor > \lceil\frac{L}{i}\rceil\) 的 \(i\)

考虑整除分块,对于连续的一段 \(i\in [l, r]\),这一段里的 \(i\) 不一定全部满足,容易考虑到我们需要找到最小的 \(x\),使得 \(\lceil\frac{L}{x}\rceil < \lfloor\frac{R}{i}\rfloor\),则 \(x = \lceil\frac{L}{\lfloor\frac{R}{i}\rfloor - 1}\rceil\)

代码
#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <algorithm>

using i64 = long long;

const int N = 2e6 + 10, inf = 0x3f3f3f3f;

void solve() {
	i64 L, R, ans = 0; std::cin >> L >> R;
	if (R >= 3 * L) {
		printf("%lld\n", R / 2); return;
	}
	for (i64 l = 1, r; l <= R; l = r, l++) {
		i64 t = R / l; r = R / t;
		if (t == 1) continue;
		ans += std::max(0ll, r - std::max(l, (L + t - 2) / (t - 1)) + 1);
	}
	printf("%d\n", ans);
}

int main() {
	int T; std::cin >> T;
	while (T--) solve();
	return 0;
}

标签:lfloor,Guessing,frac,边权,CF1780E,rfloor,i64,Bit,include
From: https://www.cnblogs.com/zrzring/p/CF1780E.html

相关文章

  • bitset小专题(待续)
    bitset:一个01位如果用bool存的话需要1byte,而用bitset只需要1bit(=1/8byte)每次两个集合取并的时候可以除以一个大常数(32/64),从而优化复杂度LOJ515设\(dp[i]\)表示考......
  • RabbitMQ初步学习
    一:什么是MQ?MQ是消息队列,主要为了解决传统消息传递上管理困难的问题。MQ有三大优点:异步、削峰、解耦异步:比如淘宝,当下了订单后,系统会走积分系统、物流系统、供货商系统......
  • RabbitMQ在服务里查看显示已经成功,但无法访问web端
    参考链接:https://blog.csdn.net/weixin_42753193/article/details/128770009 网上大多数方法大致如下:1、进入安装目录cd你的RabbitMQ安装目录\sbin2、打开节点:r......
  • RabbitMq使用中常见错误--python版
    用python的pika库错误集 一、pika.exceptions.ProbableAuthenticationError:ConnectionClosedByBroker:(403)‘ACCESS_REFUSED-Loginwasrefusedusingauthentica......
  • mybits_基础
    1.框架:一款半成品软件,我们可以基于框架继续开发,从而完成一些个性化的需求2.ORM:对象关系映射,数据和实体对象的映射3.MyBatis:是一个优秀的基于Java的持久层框架,它内部封......
  • RabbitMQ的连接方式
    一、帐号密码连接    直接设置各个属性值,其中许多属性有其默认值,例如    connection=pika.BlockingConnection(pika.ConnectionParameters(virtual_host......
  • linux debian安装erlang和rabbitmq
    debian系安装rabbitmq的服务端安装erlang本文讲rabbitmq。erlang语言环境就root快捷安装,方便学习(erlang版本23.x)aptinstallerlang安装rabbitmq-server安装仓......
  • RabbitMQ基本原理及模式介绍
    一、RabbitMQ概念RabbitMQ:是一个由erlang开发的AMQP(AdvancedMessageQueue高级消息队列协议)的开源实现,由于erlang语言的高并发特性,性能较好,本质是个队列,FIFO先入先......
  • rabbitmq 延时消息队列
    //rabbitmq延时消息队列生产端demo//1.将消息发送到延时交换机对应的队列上delay-queue,指定过期时间;过期后转发的交换机和绑定的key//2.过期时间过期......
  • NVIDIA的GPU算力Compute Capalibity
    可查看官方查询地址:https://developer.nvidia.com/cuda-gpus......