首页 > 其他分享 >1.1 vp Codeforces Round #837 (Div. 2)

1.1 vp Codeforces Round #837 (Div. 2)

时间:2023-01-01 20:55:33浏览次数:47  
标签:关系 837 int void Codeforces vp 端点 Hossam 题意

A - Hossam and Combinatorics

题意:给出数组a,求数组中aj - ai == max(a) - min(a)的(i, j)对数
思路:将a数组排序,极差只可能等于最大值减最小值,也就是对数跟最大值和最小值的个数有关。
若最大值x和最小值y不同,对数就等于cntx * cnty * 2;
若相等,即为(1+2+...+n - 1) * 2;

void solve() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i ++) cin >> a[i];
	sort(a + 1, a + 1 + n);
	int cnt1 = count(a + 1, a + 1 + n, a[1]);
	int cnt2 = count(a + 1, a + 1 + n, a[n]);
	if (a[n] == a[1]) {
		LL sum = 0;
		for (int i = 1; i <= n; i ++){
			sum += n - i;
		}
		cout << sum * 2 << endl;
		return ;
	}
	cout << (LL)cnt1 * cnt2 * 2 << endl;
}

B - Hossam and Friends

题意:给出从1到n的序列,给出m对关系,关系i,j代表i和j没有朋友关系,求在1到n中有朋友关系的子段有多少个
思路:若是求没有朋友关系的子段会有重复,较为难求。故而直接求有朋友关系的子段
将m对关系保存在vector中,用multiset保存关系的右端点
枚举1到n,将当前点作为有朋友关系的左端点l,可以证明在set中保存的首个元素一定是离该关系的最近的右端点r
ans每次加上r - l后,将该端点的所有关系从set中全部去除,即有朋友关系的贡献一定是在该点里其最近的右端点产生的,剩下的不会产生贡献因此删除

vector<int> h[N];
multiset<int> s;
 
//注意观察N的大小
void solve() {
	int n, m;
	cin >> n >> m;
	s.clear();
	s.insert(n + 1);    //为了防止第n个元素没有对应关系,在n+1处放置一个关系
	for (int i = 1; i <= n; i ++) h[i].clear();
	for (int i = 1; i <= m; i ++) {
		int x, y;
		cin >> x >> y;
		if (x > y) swap(x, y);
		h[x].push_back(y);
		s.insert(y);
	}
	
	LL ans = 0;
	
	for (int i = 1; i <= n; i ++) {
		ans += *s.begin() - i;
		for (auto t : h[i]) s.erase(s.find(t));
	}
	
	cout << ans << endl;
}

C - Hossam and Trainees

题意:给出序列a,如果a中有两个元素可以同时被x整除(x > 2),输出YES,否则NO
思路:打暴力时间复杂度会超,于是想到用线性筛将所有质因子全部筛出来,然后在序列中分解质因数,如果有质因数之前出现过,说明找到了,输出YES,否则NO

int a[N];
int prime[N], cnt;
bool st[N];
 
void get_prime(int n) {
	for (int i = 2; i <= n; i ++) {
		if (!st[i]) prime[++ cnt] = i;
		for (int j = 1; prime[j] * i <= n; j ++) {
			st[i * prime[j]] = 1;
			if (i % prime[j] == 0) break;
		}
	}
}
 
//注意观察N的大小
void solve() {
	int n;
	cin >> n;
	set<int> se;
	for (int i = 1; i <= n; i ++) cin >> a[i];
	for (int i = 1; i <= n; i ++) {
		for (int j = 1; j <= cnt && prime[j] <= a[i] / prime[j]; j ++) {
			if (a[i] % prime[j] == 0) {
				if (se.find(prime[j]) != se.end()) {
					cout << "Yes" << endl;
					return ;
				}
				se.insert(prime[j]);
				while (a[i] % prime[j] == 0) a[i] /= prime[j];
			}
		}
		
		if (a[i] > 1) {
			if (se.find(a[i]) != se.end()) {
				cout << "Yes" << endl;
				return; 
			}
			se.insert(a[i]);
		}
	}
	cout << "No" << endl;
}

D.Hossam and (sub-)palindromic tree

D题是个2100分的图论,暂时无能力解决

总结:目前思路上比较困难。对于技术类问题,不仅可以用划分集合的方法,也可以按照题目特性通过枚举区间累加的方法。对于有因数的题,第一时间可以想到质因子,想到用来降低时间复杂度的筛法

标签:关系,837,int,void,Codeforces,vp,端点,Hossam,题意
From: https://www.cnblogs.com/lbzbk/p/17018569.html

相关文章

  • Codeforces 204 A. Pride 做题记录
    原题链接:https://codeforces.com/problemset/problem/204/A一开始还很若智地宕机了一下,想清楚了就很明白。很显然在不考虑首尾的情况下,题目要求的数字会以$10$为......
  • CodeForces 1726E Tree Sum
    洛谷传送门CF传送门不错的一道Combinatorics。结论1:\(n\)为奇数时答案为\(0\)。设\(d_i\)为与点\(i\)相连的边边权乘积。每加入一条边对两端的\(d_i\)贡献......
  • AtCoder Beginner Contest 200 vp记
    又来vp了一场比赛\(\dots\dots\)AtCoderBeginnerContest200vp记ProblemA这道题不会有人要解析吧Code#include<bits/stdc++.h>#defineintlonglong#define......
  • Codeforces Round #841 (Div. 2) and Divide by Zero 2022 比赛总结
    vp的一场比赛,打得还行,有点慢。注意:前两道题的特色是答案需要\(\times2022\)输出。A.JoeyTakesMoney简单题,一定是\(n-1\)个\(1\)和一个\(\displaystyle\prod......
  • CodeForces Round #841 (Div. 2) vp记
    在2022年的最后一天,和大神stOJerry__JiangOrz开了一场CodeForces的vp,顺便来水一下博客。前言:前两题的输出为actualanswer\(\times2022\)CodeForcesRound#......
  • Educational Codeforces Round 106
    EducationalCodeforcesRound106前言个人练习中的一场,做出了A~D题,为数不多的做出div2的D题的一次,于是来写个题解。EF题待补。A.DominoonWindowsill题......
  • 从各行业的实际运用中,窥见华为云虚拟专用网络VP的强大性能
    虚拟专用网络VP就一直是通信市场的必争之地。目前,虚拟专用网络VP已经广泛应用到了金融、游戏、跨境、政企、门店、零售等各行业领域。而不同的行业属性,对虚拟专用网络VP也有......
  • 更加灵活、稳定,华为云虚拟专用网络VP双活网关优势明显!
    近年来,各企业为了方便内部信息传递、资源共享和业务交流都纷纷建立了更为便捷、安全、高效的内部网络,但随着业务的不断扩大,企业专线用网成本逐年提升。在此情况下,为节省运营......
  • 公共网络安全,还得看华为云虚拟专用网络VP
    由于公共网络的开放性和复杂性,就有可能导致数据漏洞和被恶意,从而给企业造成直接的经济损失。而这对于有着跨境业务需求的企业而言,公共网络的安全问题,就成了企业进行境外市场......
  • 华为虚拟专用网络VP,为何备受游戏厂商喜爱?
    随着现代社会经济的不断发展,几乎每个人都面临着各种各样的压力。这些压力可能来自于工作、生活、学习抑或是他人对自己的某种期望。有些时候,它甚至会压得你喘不过气来。经济......