• B. Pairs(思维)


    题目链接:

    https://codeforces.com/contest/1169/problem/B

    题目大意:

    给你m个点对,然后问你能不能找到两个不同的值,使得每个每个点对在都至少含有这两个点对中的一个。

    具体思路:

    md读错题了,还以为是区间。。对于这个题意,我们枚举第一个点对中的两个值,判断剩余的点对中不包含这个第一个点对的两个值的有多少个,如果有0个的话,就说明这些点对至少有一个相等了,所以就肯定输出YES.如果不是的话,我们就判断剩余的点对中出现次数最多的为多少次,如果数总的对数中不包含x的第一个值的个数,那么也是yes。对于第一个点对的第二个用同样的方法处理。

    AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 # define ll long long
     4 const int maxn = 3e5+100;
     5 int tonx[maxn],tony[maxn];
     6 struct node
     7 {
     8     int st,ed;
     9 } q[maxn];
    10 vector<int>sto;
    11 int main()
    12 {
    13     int n,m;
    14     scanf("%d %d",&n,&m);
    15     int st,ed;
    16     for(int i=1; i<=m; i++)
    17     {
    18         scanf("%d %d",&q[i].st,&q[i].ed);
    19     }
    20     int flag=0;
    21     for(int i=2; i<=m; i++)
    22     {
    23         if(q[i].st==q[1].st||q[i].ed==q[1].st)
    24             continue;
    25         sto.push_back(i);
    26     }
    27     int len=sto.size();
    28     for(int i=0; i<len; i++)
    29     {
    30         tonx[q[sto[i]].st]++;
    31         tonx[q[sto[i]].ed]++;
    32         if(tonx[q[sto[i]].st]==len||tonx[q[sto[i]].ed]==len)
    33             flag=1;
    34     }
    35     if(len==0)
    36         flag=1;
    37     sto.clear();
    38     for(int i=2; i<=m; i++)
    39     {
    40         if(q[i].st==q[1].ed||q[i].ed==q[1].ed)
    41             continue;
    42         sto.push_back(i);
    43     }
    44     len=sto.size();
    45     for(int i=0; i<len; i++)
    46     {
    47         //cout<<q[sto[i]].st<<" "<<q[sto[i]].ed<<endl;
    48         tony[q[sto[i]].st]++;
    49         tony[q[sto[i]].ed]++;
    50         if(tony[q[sto[i]].st]==len||tony[q[sto[i]].ed]==len)
    51             flag=1;
    52     }
    53     if(len==0)
    54         flag=1;
    55     if(flag)
    56         printf("YES
    ");
    57     else
    58         printf("NO
    ");
    59     return 0;
    60 }
  • 相关阅读:
    63.Unique Paths II
    Java中的访问修饰符
    Java語言
    JRE与JDK
    Linux中ls命令详解
    硬盘主分区和拓展分区
    java中的静态初始化块
    java中的静态变量
    java中的静态方法
    java构造方法
  • 原文地址:https://www.cnblogs.com/letlifestop/p/10961196.html
Copyright © 2020-2023  润新知