zoukankan      html  css  js  c++  java
  • hdu 4324 Triangle LOVE 夜

    http://acm.hdu.edu.cn/showproblem.php?pid=4324

    比赛的时候 脑子又短路了 

    “between A and B, if A don’t love B, then B must love A”  这句话读题的时候倒是看到了

    思考方法的时候却忘了 伤不起呀

    我们把喜欢自己的人数定为入度的话 

    假设到了第n+1个人 那么前n个人 两两之间必须存在一个喜欢指向 所以不考虑其它的话

    他们的入度和 为(n-1)*n/2 如果比这个大的话那说明 有其他人k喜欢这里面的人

    那个人k一定是第n+1个人喜欢的 所以有Triangle LOVE  

    关键在于到了的n+1个人时 前n个人 要么喜欢他 要么他喜欢

    就是忽略了这点呀

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<ctime>
    #include<queue>
    #include<cstring>
    #include<set>
    #include<string>
    #include<cmath>
    #include<algorithm>
    #define LL long long
    
    using namespace std;
    
    const int N=2005;
    char s[N][N];
    int insum[N];//前面喜欢自己的人数
    int main()
    {
        //freopen("data.txt","r",stdin);
        int T;
        scanf("%d",&T);
        for(int w=1;w<=T;++w)
        {
            int n;
            scanf("%d",&n);
            getchar();
            for(int i=0;i<n;++i)
            {
                gets(s[i]);
            }
            bool flag=false;
            for(int i=0;i<n;++i)
            {
                int sumtemp=0;
                for(int j=0;j<i;++j)
                {
                    if(s[j][i]=='1')
                    sumtemp+=insum[j];//分两组 记录喜欢自己那组的入度和
                }
                if(sumtemp>(i-1)*i/2)//比(i-1)×i/2 还要大的话 说明有另一组的人喜欢他们其中的人 而另一组的人一定是第i+1个人喜欢的   所以存在Traingle LOVE
                {
                    flag=true;
                    break;
                }
                insum[i]=0;
                for(int j=0;j<n;++j)
                {
                    if(s[i][j]=='0'&&i!=j)
                    {
                        ++insum[i];
                    }
                }
            }
            printf("Case #%d: ",w);
            if(flag)
            printf("Yes\n");
            else
            printf("No\n");
    
        }
        return 0;
    }
    

      

  • 相关阅读:
    NodeJS优缺点
    移动端触摸相关事件touch、tap、swipe
    vscode使用技巧
    js 字符串转数字
    js 导出Excel
    <!--[if IE 9]> <![endif]-->
    js 异步请求
    关于windows串口处理
    mfc 托盘提示信息添加
    微软的麦克风处理示列代码
  • 原文地址:https://www.cnblogs.com/liulangye/p/2617431.html
Copyright © 2011-2022 走看看