zoukankan      html  css  js  c++  java
  • uva 538Balancing Bank Accounts(构造)

    题意:一些人的欠钱关系,要求在n-1次还钱操作之后,消除负债关系

    分析:要求输出任意解,那么只要每次操作把一个人的钱全部要回来,或者全部还出去,n-1次正好解决所有的问题

    #include<iostream>
    #include<cstdio>
    #include<map>
    #include<cstring>
    using namespace std;
    const int maxn=25;
    
    int v[maxn];
    string name[maxn];
    map<string,int> m;
    
    int main(){
        int n,t,cas=1;
        while(~scanf("%d%d",&n,&t)&&n+t){
            string s,s2;
            m.clear();
            for(int i=1;i<=n;i++){
                cin>>s;
                m[s]=i;
                name[i]=s;
            }
            memset(v,0,sizeof(v));
            int x;
            for(int i=1;i<=t;i++){
                cin>>s>>s2>>x;
                v[m[s]]-=x;
                v[m[s2]]+=x;
            }
            printf("Case #%d
    ",cas++);
            for(int i=1;i<n;i++){
              if(v[i]<0)
                cout<<name[n]<<" "<<name[i]<<" "<<-v[i]<<endl;
              else
                cout<<name[i]<<" "<<name[n]<<" "<<v[i]<<endl;
              v[n]-=v[i];
            }
            cout<<endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    多线程
    文件上传案例及多线程版本
    TCP、UDP网络通信
    刷题:蘑菇街最小移动次数
    刷题:蘑菇街回文串
    刷题:蘑菇街
    Range Sum Query
    Submission Details
    Reverse Words in a String
    Counting Bits
  • 原文地址:https://www.cnblogs.com/jihe/p/5341724.html
Copyright © 2011-2022 走看看