B. The BOSS Can Count Pairs

news2024/11/28 19:00:10

Problem - 1830B - Codeforces

思路:因为ai*aj=bi+bj,bi+bj<=2*n,那么会有ai*aj<=2*n,那么会有min(ai,aj)<=sqrt(2*n),我们能够发现我们只要枚举ai(假设ai<=aj)那么只要在这种情况下求得所有的解并且是不重复的,那么其实就是对应的答案。那么我们可以先枚举ai,然后枚举所有的1<=j<=n,并且要满足a[j]>=ai,然后我们就能够得出bi=ai*a[j]-b[j],如果1<=bi<=n,那么我们可以加上cnt[bi],如果aj=.=ai,那么就让cnt[b[j]]++,这样的目的是为了保证不重复计算,因为如果说我一开始统计了在aj==ai的情况下,统计了所有的b[j],那么如果我在枚举某个j的时候,如果在j~n之间有一个ak=ai&&bk==aj,那么它就会在此时被统计上,但是当我们枚举到这个ak时,因为匹配时相互的,所以之前跟他匹配的j也是能够跟他匹配的,那么我就在此时重复计算了,所以我们可以只统计前j个的情况,这样也是一定不会漏掉的(因为如果两个能够匹配即i能够与j匹配,那么j一定也能够与i进行匹配,那么一我们只需要统计这两种情况的一个,所以我们就可以只统计i<j的情况,这样就不会漏掉了)

// Problem: B. The BOSS Can Count Pairs
// Contest: Codeforces - Codeforces Round 875 (Div. 1)
// URL: https://codeforces.com/problemset/problem/1830/B
// Memory Limit: 512 MB
// Time Limit: 4000 ms

#include<iostream>
#include<cstring>
#include<string>
#include<sstream>
#include<bitset>
#include<deque>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<map>
#include<stack>
#include<vector> 
#include<set>
#include<cstdlib>
#define fi first
#define se second
#define i128 __int128
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> PII;
typedef pair<int,pair<int,int> > PIII;
const double eps=1e-7;
const int N=2e5+7 ,M=5e5+7, INF=0x3f3f3f3f,mod=1e9+7,mod1=998244353;
const long long int llINF=0x3f3f3f3f3f3f3f3f;
inline ll read() {ll x=0,f=1;char c=getchar();while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {x=(ll)x*10+c-'0';c=getchar();} return x*f;}
inline void write(ll x) {if(x < 0) {putchar('-'); x = -x;}if(x >= 10) write(x / 10);putchar(x % 10 + '0');}
inline void write(ll x,char ch) {write(x);putchar(ch);}
void stin() {freopen("in_put.txt","r",stdin);freopen("my_out_put.txt","w",stdout);}
bool cmp0(int a,int b) {return a>b;}
template<typename T> T gcd(T a,T b) {return b==0?a:gcd(b,a%b);}
template<typename T> T lcm(T a,T b) {return a*b/gcd(a,b);}
void hack() {printf("\n----------------------------------\n");}

int T,hackT;
int n,m,k;
PII w[N];
int st[N];

void solve() {
	n=read();
	
	for(int i=1;i<=n;i++) w[i].fi=read();
	for(int i=1;i<=n;i++) w[i].se=read();
	
	sort(w+1,w+1+n,[&](PII &a,PII &b){
		return a.fi<b.fi;
	});
	
	ll res=0;
	for(int ai=1;ai*ai<=2*n;ai++) {
		memset(st,0,sizeof st);
		for(int j=1;j<=n;j++) {
			if(w[j].fi<ai) continue;
			int bi=ai*w[j].fi-w[j].se;
			if(bi>=1&&bi<=n) res+=st[bi];
			if(w[j].fi==ai) st[w[j].se]++; 
		}
	}
	
	printf("%lld\n",res);
}   

int main() {
    // init();
    // stin();

    scanf("%d",&T);
    // T=1; 
    while(T--) hackT++,solve();
    
    return 0;       
}          

参考博客:https://www.cnblogs.com/onlyblues/p/17448589.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763750.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes(K8s)常用命令大全:熟练编排更完美

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

提升效率,打通万里牛ERP与下游用友U8财务软件的无缝对接

一、对接流程 1.1 销售/售后流程 在万里牛订单出库后&#xff0c;通过轻易云数据集成平台将数据推送至用友U8销售订单和销售出库单&#xff0c;这些单据可以进行关联操作。 当万里牛售后单完成退货入库后&#xff0c;通过数据集成平台将数据推送至用友U8销售退货单和红字销售…

基于SpringBoot+vue的点餐平台网站设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

编程导航算法通关村第 1关 | 单链表的操作

编程导航算法通关村第 1关 | 链表的操作 文章目录 编程导航算法通关村第 1关 | 链表的操作单链表链表的定义初始化链表的遍历获取链表的长度链表的插入链表的节点的删除 双向链表节点的定义双向链表的定义节点的打印获取长度头部插入元素尾部插入元素链表的删除 单链表 链表的…

InnoDB锁内存结构

假如说 我们SELECT * FROM table WHERE a < 10000 FOR UPDATE 那岂不是要加几万条锁 这消耗老鼻子内存了 这些锁有很多地方都是一样的啊 能不能通过某种方式整理整理节省点内存呢? 答案是能 如果符合下边这些条件&#xff1a; 在同一个事务中进行加锁操作 被加锁的记录…

Redis远程字典服务

目录 前言 1.NoSQL 1.1NOSQL和关系型数据库比较 1.2非关系型数据库的优势 1.3关系型数据库的优势 ​编辑 2.主流的NOSQL产品 键值(Key-Value)存储数据库 列存储数据库 文档型数据库 图形(Graph)数据库 3.Redis简介 redis的应用场景 4.命令操作 4.1字符串类型 s…

python根据excel数据,基于散点图绘制棋盘图

文章目录 一、需求二、处理方式三、代码实现 一、需求 根据可视化的需要&#xff0c;下图的数据需要使用棋盘图的样式来展示&#xff0c; 原始数据&#xff1a; 最终效果图&#xff1a; 二、处理方式 1、先将DataFrame数据转换为Numpy数组&#xff1b; 2、先使用np.transp…

Window下Mysql5.x和8.x版本切换

在最近的工作中需要使用Mysql5.x版本&#xff0c;但以前的自己项目开发使用的Mysql版本都是8.x。因此特意去查资料看了一下&#xff0c;下边是如何在window下实现两个不同版本Mysql的切换。 既然是不同的Mysql&#xff0c;所以我们需要去下载自己需要的Mysql版本安装即可。&…

立思辰打印机IP连接和USB连接

打印机是常用办公设备,很多家庭也都用着这个,立思辰3032是一个比较老的型号,属于国产打印机,基本功能都有,下边分享一下安装经验: 1.驱动: 不管是连USB还是IP地址,都需要先给电脑装上打印机驱动,只有装上驱动,系统才能够识别打印机,并帮助用户传输文件。一般来讲,立…

Jenkins动态化阶段步骤

Jenkins中如何去根据入参动态化阶段步骤呢&#xff1f; Groovy语言基础 定义一个列表变量 def list []定义一个map的kv结构变量 def map [:]如何可以动态化阶段步骤 动态化步骤&#xff1a;其实就是&#xff0c;在jenkins pipeline中根据入参或者其他变量列表&#xff0c;动…

进阶高级Python开发工程师,不得不掌握的Python高并发编程(文末送书5本)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用)

前端项目&#xff08;当前我以Vue项目为例&#xff09;当我们把api挂载在main上后 // 将api挂载到vue的原型上 import api from /api Vue.prototype.$apiapi在src下会有一个api文件夹&#xff0c;结构如下&#xff1a; 通常情况下&#xff0c;api文件夹的index.js文件我们通常…

Morris遍历--验证二叉搜索树(java)

Morris遍历- 验证二叉搜索树题目描述Morris 遍历解题代码演示&#xff1a; morris 遍历改写后序遍历 验证二叉搜索树 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/validate-binary-search-tree 题目描述 给你一个二叉…

git同步推送代码至gitee和阿里云效

背景 已有阿里云效的代码库&#xff0c;想迁移gitee却迁移不了&#xff0c;只能把代码先拉取下来&#xff0c;然后重新建库&#xff0c;配置过后&#xff0c;采用同步推送的方式&#xff0c;同步两个库的代码。 步骤一 新建名称相同的库 在gitee上新建库 在阿里云效上新建库 …

Java 提供的队列

一、基础数据结构 1、大O 表示法 O(1)&#xff1a;常数级别&#xff0c;它执行的步数都是恒定的&#xff0c;不会因为输入变大而变大&#xff0c;哈希表的查找就是这个级别。O(N)&#xff1a;线性级别&#xff0c;随着输入变大耗费的步数也正向相关&#xff0c;遍历算法就是这…

【雕爷学编程】Arduino动手做(164)---Futaba S3003舵机模块2

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

网络版计算器

本次我们实现一个服务器版本的简单的计算器&#xff0c;通过自己在应用层定制协议来将数据传输出去。 协议代码 此处我们为了解耦&#xff0c;采用了两个类&#xff0c;分别表示客户端的请求和服务端的响应。 Request class Request { public:Request(){}Request(int x, int…

复习单例模式

单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个…

在SpringBoot中实现文件上传

1.创建一个SpringBoot的项目&#xff0c;需要导入spring-boot-starter-web的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> 2.编写文件的核心配置applica…

ASEMI二极管MURF2080CTR封装, MURF2080CTR大小

编辑-Z MURF2080CTR参数描述&#xff1a; 型号&#xff1a;MURF2080CTR 最大峰值反向电压(VRRM)&#xff1a;800V 最大RMS电压(VRMS)&#xff1a;430V 最大直流阻断电压VR(DC)&#xff1a;800V 平均整流正向电流(IF)&#xff1a;20A 非重复峰值浪涌电流(IFSM)&#xff1…