zoukankan      html  css  js  c++  java
  • pojCashier Employment

    http://poj.org/problem?id=1275

    黑书上详解

    今天犯了2了 交了十几次 查错查了几个小时 最后与别人的代码比对 输入有问题 n是组数 受不了

    View Code
     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<stdlib.h>
     5 #include<queue>
     6 #define INF 0x3f3f3f
     7 using namespace std;
     8 int n,m,g,t[30],r[30],ans,dis[50];
     9 struct node
    10 {
    11     int u,v,w;
    12 }e[2100];
    13 int bellford()
    14 {
    15     int i,j,flag;
    16     for(i = 1; i <= 24 ; i++)
    17      dis[i] = INF;
    18     dis[0] = 0;
    19     for(i = 0; i <= 25 ; i++)
    20     {
    21         flag = 0;
    22         for(j = 1; j <= g ; j++)
    23         {
    24             if(dis[e[j].v]>dis[e[j].u]+e[j].w)
    25             {
    26                 dis[e[j].v] = dis[e[j].u]+e[j].w;
    27                 flag = 1;
    28             }
    29         }
    30         if(!flag)
    31         return 1;
    32     }
    33     return 0;
    34 }
    35 void add(int u,int v,int w)
    36 {
    37     g++;
    38     e[g].u = u;
    39     e[g].v = v;
    40     e[g].w = w;
    41 }
    42 int main()
    43 {
    44     int i,j,a,sum;
    45     cin>>n;
    46     while(n--)
    47     {
    48         g = 0;
    49         memset(t,0,sizeof(t));
    50         for(i = 1; i <= 24 ; i++)
    51         {
    52             cin>>r[i];
    53         }
    54         cin>>m;
    55         for(i = 1; i <= m;i++)
    56         {
    57             cin>>a;
    58             t[a+1]++;
    59         }
    60         for(i = 1; i <= 24 ;i++)
    61         {
    62             add(i-1,i,t[i]);
    63             add(i,i-1,0);
    64         }
    65        for(sum = 0; sum <= m ; sum++)
    66         {
    67             g = 48;
    68             for(i=1;i<=16;i++)
    69                add(i+8,i,-r[i+8]);
    70             for(i=17;i<=24;i++)
    71                add(i-16,i,sum-r[i-16]);
    72             add(24,0,-sum);
    73             if(bellford())
    74             {
    75                 cout<<sum<<endl;
    76                 break;
    77             }
    78         }
    79         if(sum==m+1) printf("No Solution\n");
    80     }
    81     return 0;
    82 }
  • 相关阅读:
    windows 物理内存获取
    windbg-.process切换进程(内核)
    cnetos 6.7彻底解决vmware NAT网络问题
    优秀的博客链接地址
    使用Spring MVC统一异常处理实战
    active mq 配置
    socket demo程序
    flume 中的 hdfs sink round 和roll
    软链接与硬链接
    flume A simple example
  • 原文地址:https://www.cnblogs.com/shangyu/p/2958209.html
Copyright © 2011-2022 走看看