必威体育Betway必威体育官网
当前位置:首页 > IT技术

Contest

时间:2019-10-13 11:14:26来源:IT技术作者:seo实验室小编阅读:90次「手机版」
 

contest

Contest

题意:一支队伍x认为自己比另一支队伍y强当且仅当x在至少一场比赛中比y的排名高。求有多少组(x,y),使得x自己觉得比y强,y自己也觉得比x强。

思路:分别观察第一场比赛和第二场,第一场和第三场,第二场和第三场,如果在某一场比赛中a>b,另一场中b<a则对答案有贡献最终发现对所有情况都加了两次。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+5;
int a[maxn],b[maxn],c[maxn];
int A[maxn],B[maxn],n;
int qu(int pos){
	int ans=0;
	while(pos > 0){
		ans+=B[pos];
		pos-=(pos & (-pos));
	}
	return ans;
}
void up(int pos,int x){
	while(pos<maxn){
		B[pos]+=x;
		pos+=(pos & (-pos));
	}	
	
}
ll solve(int x[],int y[]){
	for(int i=0;i<n;i++)
		A[x[i]]=y[i];
	memset(B,0,sizeof(B));
	ll res=0;
	for(int i=1;i<=n;i++){
		res+=(i-1-qu(A[i]));
		up(A[i],1);
	}
	return res;
}
int main(){
	iOS::sync_with_stdio(false);
	cin>>n;
	for(int i = 0;i < n;i++){
		cin>>a[i]>>b[i]>>c[i];
	}
	ll ans=solve(a,b)+solve(a,c)+solve(b,c);
	ans/=2;
	cout<<ans<<"\n";
	return 0;
}

相关阅读

B. Build a Contest

                                                                         B. Build a

D - Decrease (Contestant ver.)(思维好题)

Problem Statement We have a sequence of length N consisting of non-negative integers. Consider performing the followin

分享到:

栏目导航

推荐阅读

热门阅读