zoukankan      html  css  js  c++  java
  • ZOJ 2856 Happy Life

    Problem Description

    Do you know Utopia? It's a perfect world in which everyone leads a happy life.

    A fairy wants to make a naive Utopia City. She studies the factors that have an impact on people's happiness and thinks that a person is happy if and only if all other persons' total "influence factor" on him (or her) is nonnegative. Each person has an influence factor on another person, which may be a positive integer or negative integer or 0. The influence factor is always symmetric, that is, if person A has an influence factor f on person B, it means that person B also has an "influence factor" f on A. So we can say the influence factor between person A and B is f without confusion. A person's influence factor on himself (or herself) is always 0. So let f(i, j) be the influence factor between person i and person j and person i's happiness(i) is well defined as follows:

    Obviously there may be some persons who are not happy. Though the fairy cannot change any influence factor, she can give every person a property p(i) which is always +1 or -1. Under the fairy's magical definition, a person i's happiness(i)' is redefined as follow:

    Person i feels happy if the value of happiness(i)' is nonnegative. But the fairy wonders whether she can give everyone a property to make all of them happy so that she can build her ideal naive Utopia successfully.

    Since you're an ace programmer, the fairy asks you to help her to fulfill her dream. Can you help her?

    Input

    The input contains multiple test cases!

    Each test case starts with an integer N (2 <= N <= 200), the number of persons in the city. After that there're N lines of integers and each line consists of N integers. The j-th integer of the i-th line of the matrix indicates the influence factor f(i,j) (-1000 < f(i,j) < 1000).

    Proceed to the End Of File (EOF).

    Output

    For each test case, if the fairy fails, output a single line with "No" (without the quotations), otherwise output "Yes" (without the quotations) in the first line, followed by N lines, each line contains exactly a "+" (without the quotations) or a "-"(without the quotations) to indicate that the fairy should give the i-th person property +1 or -1 to fulfill her dream.

    Sample Input

    3
    0 1 3
    1 0 -1
    3 -1 0
    2
    0 -10
    -10 0

    Sample Output

    Yes
    -
    +
    -
    Yes
    +
    -

    暴力,为什么不会出现No的情况呢?

    #include <stdio.h>
    #define MAXN 220
    
    int n;
    int g[MAXN][MAXN];
    int ans[MAXN];
    
    int main(){
        int i,j;
        while( scanf("%d",&n)!=EOF ){
            for(i=1; i<=n; i++){
                for(j=1; j<=n; j++){
                    scanf("%d" ,&g[i][j]);
                }
                ans[i]=1;
            }
            int index=1;
            while(1){
                if(index==n+1){
                    break;
                }
                int sum=0;
                for(i=1; i<=n; i++){
                    sum+=ans[i]*g[index][i];
                }
                if(sum*ans[index]<0){
                    ans[index]*=-1;
                    index=1;
                }    
                else index++;
            }
            puts("Yes");
            for(int i=1; i<=n; i++){
                if(ans[i]<0)
                    puts("-");
                else
                    puts("+");
            }
        }
        return 0;
    }
    
  • 相关阅读:
    数据中心
    【Vegas原创】解决cmd窗口不够使用的方法
    【Vegas原创】定期删除archive档的方法
    【Vegas原创】Can't connect to X11 window server using ':0.0' 解决方法
    Linux 操作指令
    【Vegas原创】按自定义格式进行编号的SQL自定义函数
    Error:No description found when saving maintenance plans
    【Vegas原创】巧用任务计划
    svn命令备份
    [转载]R与python共舞
  • 原文地址:https://www.cnblogs.com/chenjianxiang/p/3642711.html
Copyright © 2011-2022 走看看