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;
    }
    
  • 相关阅读:
    大厂Redis高并发场景设计,面试问的都在这!
    POJ1006——中国剩余定理
    HDU3501——欧拉函数裸题
    堆-动态的排序(洛谷1801-黑匣子)
    图中欧拉回路数量
    ip地址
    网络通信概述
    网络通信概述
    软件安装与卸载
    软件安装与卸载
  • 原文地址:https://www.cnblogs.com/chenjianxiang/p/3642711.html
Copyright © 2011-2022 走看看