题目:
Social Media - Problem - Universal Cup Judging System
思路:
题目设定与微信朋友圈相同(本老古董有幸在做题之前了解到微信朋友圈和qq空间设定不一样)
题目设定最多再加两个好友,显然的,要看到更多的评论,就要加更多的好友,所以加两个(我加两碗!(bushi)
要特别考虑的是:
可能会出现有 非好友人 与 已有好友 间评论非常多,但与 其他非好友人 之间的评论很少的情况
也就是说不一定是取 两个相互间评论特别多的非好友人 , 也可能取两个相互间没什么评论,但与已有好友间评论很多的人
如果两人间评论很多,与已有好友间评论也多,这种情况可以 盖住 上面的情况,分开取最后再去最大值即可
AC代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,k;
int will_have[200005]; //储存 添加当前一个朋友就能多看到的评论数
bool friends[200005]; //储存当前已有的好友
int x,y;
void solve(){
cin>>n>>m>>k;
map<pair<int,int>,int> edge; //储存 都不是好友的两人间的消息数(看做一个有权边,两个节点都不是好友)
vector<pair<int,int> > infomation_of_edge; //储存 边的两个节点 与上面对应