概述
Description:
题意:
给出m对不大于n的数,判断是否可以找出两个不相等的数,使这两个数可以出现在任意对中。
先以第一对数作为标准,因为找的两个数肯定包含第一对中的一个数。
只要是后面数中不等于他的数的数量+他的数量==m就是可以,否则就是不可以
AC代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<map>
#define INF 0x3f3f3f3f
using namespace std;
int m1[300010],m2[300010];
int n,m,x,y,pos1,pos2,cnt1=0,cnt2=0;
int main()
{
scanf("%d%d",&n,&m);
scanf("%d%d",&x,&y);
pos1=x;
pos2=y;
cnt1++;
cnt2++;
for(int i=2;i<=m;i++)
{
scanf("%d %d",&x,&y);
if(x!=pos1 && y!=pos1)
{
m1[x]++;
m1[y]++;
}
if(x!=pos2 && y!=pos2)
{
m2[x]++;
m2[y]++;
}
if(x==pos1 || y==pos1)
cnt1++;
if(x==pos2 || y==pos2)
cnt2++;
}
//cout<<cnt2<<endl;
//cout<<m1[2]<<endl;
//cout<<cnt1<<" "<<cnt2<<endl;
//cout<<m2[4]<<endl;
for(int i=2;i<=n;i++)
{
//cout<<m1[i]<<endl;
if(i!=pos1 && m1[i]+cnt1==m)
{
printf("YES");
return 0;
}
}
for(int i=2;i<=n;i++)
{
//cout<<m2[i]<<endl;
if(i!=pos2 && m2[i]+cnt2==m)
{
printf("YES");
return 0;
}
}
printf("NO");
return 0;
}
最后
以上就是感性楼房为你收集整理的CodeForces - 1169B Pairs的全部内容,希望文章能够帮你解决CodeForces - 1169B Pairs所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复