HDU 4940 Destroy Transportation system (瞎搞)

来源:互联网 发布:在线网络视频下载工具 编辑:程序博客网 时间:2024/04/29 08:56

解题思路:

  题目要求是否存在集合S使得 Y < X ,因此让T集合中点数目尽量少,使得Y尽量小,枚举即可。

#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <vector>#include <map>#include <algorithm>#define LL long long#define FOR(i,x,y) for(int i=x;i<=y;i++)using namespace std;const int maxn = 200 + 10;int B[maxn][maxn];int D[maxn][maxn];int main(){int T , kcase = 1;int N , M;scanf("%d",&T);while(T--){scanf("%d%d",&N,&M);memset(B,0,sizeof(B));memset(D,0,sizeof(D));int u , v , b , d;        for(int i=1;i<=M;i++){scanf("%d%d%d%d",&u,&v,&b,&d);B[u][v] = b;D[u][v] = d;}int F = 0;for(int i=1;i<=N;i++){int x  = 0 , y = 0;for(int j=1;j<=N;j++){x += B[i][j] + D[i][j];y += B[j][i];}if(x < y) { F = 1; break;}}if(F) printf("Case #%d: unhappy\n",kcase++);else printf("Case #%d: happy\n",kcase++);}return 0;}

0 0
原创粉丝点击