首页 > 其他分享 >cf-div.2-875d

cf-div.2-875d

时间:2023-05-29 18:45:28浏览次数:47  
标签:约数 int cf 875d 枚举 num div.2 根号

链接:https://codeforces.com/contest/1831/problem/D

脑子确实不好使,没啥思路,看jls代码之后豁然开朗。

思路:先枚举约数s,因为\(b_i+b_j\)不会超过4e5,所以第一层枚举所有约数为根号级别,第二层循环里枚举所有对数,统计\(v = a_i*s-b_i\)的所有个数,只有当\(a_i\)的值与s的值相等时,才能去更新cnt[v]的值。

注意点:本题必须从小到大按\(a_i\)排序,因为我们枚举的s为根号级别,只能用小的约数去找大的约数,不能反过来。

代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
pair<int,int> num[N];
int cnt[N];
void solve(){
	int n;
	cin>>n;
	for (int i=1;i<=n;i++) cin>>num[i].first;
	for (int i=1;i<=n;i++) cin>>num[i].second;
	sort(num+1,num+1+n);
	long long ans = 0;
	for (int s = 1 ; s*s <= 2*n ; s++){
		for (int i=1;i<=n;i++) cnt[i] = 0;
		for (int i=1;i<=n;i++){
			int v = s*num[i].first-num[i].second;
			if (v>=1&&v<=n) ans += cnt[v];
			if (num[i].first==s) cnt[num[i].second]++;
		}
	}
	cout<<ans<<'\n';
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int T;
	T = 1;
	cin>>T;
	while(T--) solve();
	return 0;
}

标签:约数,int,cf,875d,枚举,num,div.2,根号
From: https://www.cnblogs.com/xjwrr/p/17441335.html

相关文章

  • 遥控器、电子秤等包含纽扣电池商品应该如何办理16CFR1700.15和16CFR1700.20/ANSI C18.
    本政策适用的纽扣电池和硬币电池本政策适用于独立式纽扣电池或硬币电池,它们是扁圆形的单体电池,直径通常为5到25毫米,高度为1到6毫米。纽扣电池和硬币电池可作为单独的电池出售,但也用于各种消费品和家居用品中,其中包括遥控器、钟表、电脑、照相机、计算器、手电筒、无焰蜡烛......
  • vcftools中 --max-missing 参数
     --max-missing参数表示:最大的丢失率不超过xxxx。(base)[root@PC1test]#lsoutcome.mapoutcome.pedoutcome.vcf(base)[root@PC1test]#catoutcome.map1snp10559101snp20852041snp301229481snp4......
  • 时代的眼泪:CF1562A The Miracle and the Sleeper 题解 2021-09-23 23:00:33
    CF1562ATheMiracleandtheSleeper题解笑死,晚上熬夜打CF比赛只过了A题还加了CF值!?由于本人太弱,这道橙题都干了1h题目描述有\(T\)组数据,给出一个区间\([l,r]\),在这个区间中选择2个数a,b,使它们a%b的值最大.注意:\(l\ler\le10^9\),\(T\le10^3\)解题步骤暴力......
  • CF482B Interesting Array Solution
    构造一个数组,给出了\(m\)条限制,要求\([l,r]\)内的数按位与的值为\(x\)。按位考虑,对于\(x\)的每个位,\([l,r]\)的数在这一个位下都应该是\(1\),否则就无法满足它们的与的值为\(x\)。构造出来的数组并不一定是满足条件的。所以在所有的操作完后还要验证构造的数组是否......
  • CF1383E Strange Operation
    首先可以发现对于一次操作,本质上就是删掉存在于两个\(1\)之间的若干个\(0\)的其中一个或者删掉两个连续的\(1\)的其中一个。所以对于最终的\(01\)串\(A\),令\(B\)表示\(A\)中两个\(1\)之间的\(0\)的个数,为了方便后面的计算,对于\(A\)以\(1\)开头或结尾,需要在......
  • CF1754D
    题目还是比较简单的。根据\(i!\times(i+1)=(i+1)!\),所以可以对于从\(1\simx-1\)的所有数进行判断,记\(cnt[i]\)表示\(i!\)的数量。如果\(cnt[i]\mod(i+1)\)不是\(0\),那么肯定是无解的了,否则需要将\(cnt[i]\div(i+1)\)进位到\(cnt[i+1]\)。#include<cstdio>using......
  • CF1754C2
    题目这道题与C1相比就多了\(0\),所以做法是几乎一致的。C1是有\(n\)为奇数无解,但这道题需要统计一下非\(0\)数的个数根据这个判断是否有解。然后就是相邻两个非\(0\)数之间的关系了。如果这个两个数符号相同,那么把它们中间的最后一个\(0\)给后者,然后其他\(0\)浪费......
  • CF1754C1
    题目首先,如果有奇数个数,那么正负\(1\)肯定不能完全抵消,无解。如果有偶数个数,必定有解,构造方案:对于每两个位置,如果相同,将这两个数划分为\(1\)组。否则,将两个数各划分为\(1\)组。这样,对于第一种,这个区间是\(0\),对于第二种,这两个区间的和是\(0\),显然符合题意。#inclu......
  • 超低功耗段码LCD液晶显示屏驱动IC-VKL144A/B QFN48 超小体积封装,可完全替代PCF8551适
    VKL144A/B概述:VKL144A/B是一个点阵式存储映射的LCD驱动器,可支持最大144点(36SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,可配置4种功耗模式,也可通过关显示和关振荡器进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。QT921功能特点......
  • CF1139E Maximize Mex 题解
    Description\(n\)个学生,\(m\)个社团。每个学生有一个能力值,且仅属于一个社团。这\(d\)天内,每天从\(m\)个社团中选人,使得选出的人的能力值的\(\text{mex}\)最大。每天会有一个人在选人之前退团。\(d,m\leqn\leq5000\)Solution巧妙建图题。首先,我们可以很显然的......