题解:AT_abc442_c [ABC442C] Peer Review

题目传送门。

思路

这一道题一眼看还以为是图论,其实特别的简单,我们仅需统计一下每一个人与他利益冲突的人的个数,从总人数中减去这个个数还有他本身,最后再求一个组合数,就可以算出每个人的可能数量。

AC CODE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<bits/stdc++.h>
using namespace std;
int n,m;
int mp[200005];
int main(){
cin>>n>>m;
while(m--){
int a,b;
cin>>a>>b;
mp[a]++;
mp[b]++;//统计个数。
}
for(int i=1;i<=n;i++){
int t=n-mp[i]-1;//求不与他冲突的人的个数。
if(t>=3)
cout<<1ll*t*(t-1)*(t-2)/6<<" ";//求组合数。
else
cout<<0<<" ";//如果小于3就是无解。
}
return 0;
}

管理大大求过。


题解:AT_abc442_c [ABC442C] Peer Review
http://chasonwang2012.github.io/2026/03/22/题解:AT-abc442-c-ABC442C-Peer-Review/
作者
ChasonWang
发布于
2026年3月22日
许可协议