首页 > 其他分享 >Codeforces Global Round 2

Codeforces Global Round 2

时间:2023-10-06 16:56:49浏览次数:40  
标签:node ll Global Codeforces long include Round define

C题结论就是每行每列不同的个数必须是偶数。

D题首先注意到对于长度相同的询问,答案都是一样的。
同时相同的s可以直接丢掉。

那么我们将s排序之后,将相邻的差再进行排序,然后将询问从小到大处理。
相当于是将这些段拼接在一起。

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#define A puts("Yes")
#define B puts("No")
#define fo(i,a,b) for (int (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (int (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))
using namespace std;
typedef double db;
typedef long long ll;
const int N=1e5+5;
struct node{
	ll l,id;
};
struct key{
	ll x,y,id;
};
key b[N];
node d[N];

ll a[N],c[N],n,q,ans[N];
ll x,y,sum,tot;
bool cmp(node a,node b){
	return a.l<b.l;
}
bool cmp2(key a,key b){
	return a.y-a.x<b.y-b.x;
}
int main()
{
//	freopen("data.in","r",stdin);
	scanf("%lld",&n);
	fo(i,1,n) scanf("%lld",&a[i]);
	
	sort(a+1,a+n+1);
	n=unique(a+1,a+n+1)-(a+1);
	
	fo(i,1,n-1) b[i]=(key){a[i],a[i+1],i};
	sort(b+1,b+n,cmp2);
	
	scanf("%lld",&q);
	fo(i,1,q){
		scanf("%lld %lld",&x,&y);
		d[i]=(node){y-x+1, i}; 
	}
	
	sort(d+1,d+q+1,cmp);
 	
 	tot=n;
	int j=1;
	fo(T,1,q){
		while (j<n && b[j].y-b[j].x<=d[T].l)  {
			sum+=b[j].y-b[j].x;		
			j++;
			tot--;
		}
		
		ans[d[T].id]=tot*d[T].l+sum;
	}
	
	fo(i,1,q) printf("%lld ",ans[i]);
	
	return 0;
}

 

标签:node,ll,Global,Codeforces,long,include,Round,define
From: https://www.cnblogs.com/ganking/p/17744711.html

相关文章

  • git config --global core.autocrlf input
    我们一般希望远程仓库中的代码为LF,就用: gitconfig--globalcore.autocrlfinput 就ok了。 gitconfig--globalcore.autocrlfinput这是一个Git的配置命令,它的作用是告诉Git在检出代码时不要自动将行尾转换为CRLF(Windows风格的换行符),而是保留原来的LF(Unix风格的换行符)。......
  • 【计算几何】codeforces上面的一点简简单单的计算几何入门题
    开篇碎碎念我真的好喜欢开篇碎碎念啊(可恶真的是太话痨啦)最近有在cf上面写写题,唔不过还没上百题,过两天就可以写百题纪念啦,也还没上青,陌陌菜菜,陌陌在努力变强捏。cf1850GTheMorningStartag:用map进行维护,斜率与坐标的关系题目链接:G.TheMorningStar题意:找到一个点,使另一......
  • 「题解」Codeforces Round 883 (Div. 3)
    A.EscalatorConversationsProblem[题目](RudolphandCuttheRope)Sol&Code绳子长度大于钉子高度的要剪#include<bits/stdc++.h>typedeflonglongll;intmin(inta,intb){returna<b?a:b;}intmax(inta,intb){returna>b?a:b;}in......
  • 「题解」Codeforces Round 888 (Div. 3)
    A.EscalatorConversationsProblem题目Sol&Code签到#include<bits/stdc++.h>typedeflonglongll;intmin(inta,intb){returna<b?a:b;}intmax(inta,intb){returna>b?a:b;}intT,n,m,k,h;intmain(){scanf(......
  • 「题解」Codeforces Round 891 (Div. 3)
    A.ArrayColoringProblem题目Sol&Code只有数列的和为偶数时才符合要求,即有任意个偶数,偶数个奇数。将这些数分成两部分,发现两部分初始值\(0\)为偶数,偶数不会影响奇偶性,故需要偶数个奇数。#include<bits/stdc++.h>#defineN51typedeflonglongll;intmin(inta,......
  • CodeForces 814E An unavoidable detour for home 题解
    更好的阅读体验题意题目链接(洛谷翻译)给出\(n\)个点,和每个点的度\(d_i\)让你构造出一张无向图满足以下两条性质:点\(1\)到点\(i\)仅有唯一一条最短路。点\(1\)到点\(i\)的最短路长度大于等于点\(1\)到点\(i-1\)的最短路长度。求能构成满足条件的无向图......
  • CodeForces 1864H Asterism Stream
    洛谷传送门CF传送门好题。考虑计算\(x\)落在\([1,n-1]\)的概率。设\(f_i\)为\(x\)经过\(i\)的概率,答案即为\(\sum\limits_{i=1}^{n-1}f_i\)。\(f\)有一个朴素的递推:\[f_i=\begin{cases}\frac{1}{2}(f_{i-1}+f_{\frac{i}{2}})&2\midi\\\fr......
  • Codeforces Round 888 (Div. 3)DEF
    CodeforcesRound888(Div.3)DEFD.PrefixPermutationSums题意:给你一个长度为\(n-1\)的数组,是否能找出一个长度为\(n\)的排列,求出这个排列的前缀和,去掉前缀和数组的任意一个元素之后和原来的数组相等。例如\([6,8,12,15]\),可以是排列\([1,5,2,4,3]\)的前缀......
  • Educational Codeforces Round 155 (Rated for Div. 2)
    \(A.Rigged!\)直接取第一个人能举起的最大重量看他是否是冠军即可。voidsolve(){intn=read();intfx=read(),ft=read();intans=fx;for(inti=1;i<n;i++){intx=read(),t=read();if(x>=fx&&t>=ft)ans=-1;}cout<<ans<......
  • Codeforces 1874F - Jellyfish and OEIS
    考虑对\(\summ_i-i+1\)个不可行的集合进行容斥,即钦定一些区间集,要求它们对应的\(p_l,p_{l+1},\cdots,p_r\)必须是\([l,r]\)的排列,计算方案数乘以容斥系数之和。如果容斥的集合中存在相交的区间,那么这个方案数其实不太好计算。不过根据区间的性质,对于\(l_1<l_2\ler_1<r_2......