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

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define maxn 2000
using namespace std;
const int inf=<<;
int r[],t[maxn],s[maxn],dis[maxn];
int n,e;
int sum;
struct node
{
int u,v,w;
}p[maxn];
void add(int u,int v,int w)
{
p[e].u=u;
p[e].v=v;
p[e++].w=w;
}
bool bellman_ford()
{
for(int i=; i<=; i++) dis[i]=inf;
dis[]=;
bool flag;
for(int i=; i<=; i++)
{
flag=false;
for(int j=; j<e; j++)
{
if(dis[p[j].v]>dis[p[j].u]+p[j].w)
{
dis[p[j].v]=dis[p[j].u]+p[j].w;
flag=true;
}
}
if(!flag) break;
}
if(flag) return false;
else return true;
}
void buil(int x)
{
e=;
int j;
for(j=; j<=; j++)
{
int i=(j+)%;
if(i>j)
{
add(i,j,-r[i]);
}
else if(i<j)
{
add(i,j,x-r[i]);
}
}
add(,,-x);
} void bear(int r,int l)
{
int low=r,high=l;
while(low<=high)
{
//printf("%d\n",sum);
int mid=(low+high)/;
buil(mid);
if(bellman_ford())
{
sum=mid;
high=mid-;
}
else
low=mid+;
}
} int main()
{
int m,x;
scanf("%d",&m);
while(m--)
{
for(int i=; i<=; i++)
{
scanf("%d",&r[i]);
}
scanf("%d",&n);
memset(t,,sizeof(t));
for(int i=; i<n; i++)
{
scanf("%d",&x);
t[x+]++;
}
e=;
for(int i=; i<=; i++)
{
add(i-,i,t[i]);
add(i,i-,);
}
sum=-;
bear(,n);
if(sum==-)
printf("No Solution\n");
else
printf("%d\n",sum);
}
return ;
}

poj 1275 Cashier Employment的更多相关文章

  1. 图论(差分约束系统):POJ 1275 Cashier Employment

    Cashier Employment Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7651   Accepted: 288 ...

  2. POJ 1275 Cashier Employment(差分约束)

    http://poj.org/problem?id=1275 题意 : 一家24小时营业的超市,要雇出纳员,需要求出超市每天不同时段需要的出纳员数,午夜只需一小批,下午需要多些,希望雇最少的人,给出每 ...

  3. poj 1275 Cashier Employment - 差分约束 - 二分答案

    A supermarket in Tehran is open 24 hours a day every day and needs a number of cashiers to fit its n ...

  4. POJ 1275 Cashier Employment 挺难的差分约束题

    http://poj.org/problem?id=1275 题目大意: 一商店二十四小时营业,但每个时间段需求的雇员数不同(已知,设为R[i]),现有n个人申请这份工作,其可以从固定时间t连续工作八 ...

  5. POJ - Problem 1275 - Cashier Employment

    · 对于差分约束,题目要求求什么便设什么,令$Sum[i]$表示由$0 ~ i$的雇佣人数. · 要充分利用题目所给条件,令$Have[i]$表示i时刻申报的人数,$Need[i]$表示i时刻需要的人 ...

  6. HDU [1529] || POJ [P1275] Cashier Employment

    经典的差分约束+二分答案. 本题的难点在于如何建图. 设x[i] 表示第i个小时可以开始工作的有多少个人. num[i] 表示第i个小时最少需雇佣多少人. s[i] 表示1...i小时实际开始工作的有 ...

  7. 【POJ 1275】 Cashier Employment(差分约束系统的建立和求解)

    [POJ 1275] Cashier Employment(差分约束系统的建立和求解) Cashier Employment Time Limit: 1000MS   Memory Limit: 10 ...

  8. POJ1275 Cashier Employment[差分约束系统 || 单纯形法]

    Cashier Employment Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7997   Accepted: 305 ...

  9. 【POJ1275】Cashier Employment 差分约束

    [POJ1275]Cashier Employment 题意: 超市经历已经提供一天里每一小时需要出纳员的最少数量————R(0),R(1),...,R(23).R(0)表示从午夜到凌晨1:00所需要 ...

随机推荐

  1. Angular2学习

    1.新建项目 2.新建Model public class TodoItem { public int Id { get; set; } public string Key { get; set; } ...

  2. 自我理解foreach工作原理

        很多时候我们在使用for循环遍历一个数组的时候,我们都知道可以通过下标的索引找到当前数组中所对应的数据.这只对于简单的数组或集合,如果我们存储的数据不止只有数据项,还有一个标识项,就如同Has ...

  3. weblogic数据源配置的问题,weblogic密码破解

    weblogic 报错 please increase XXX,得知是连接池出了问题,查看weblogic配置,发现没有设置超时 查看oracle 当前session,可以看到连接的机器,用户,当前执 ...

  4. [PWA] 11. Serve skeleton cache for root

    Intead of cache the root floder, we want to cache skeleton instead. self.addEventListener('install', ...

  5. 解决Win8不能上网攻略第二版!三步秒杀原驱动

    关于Win8消费者预览版的网卡驱动确实是令人头疼的事情,不少用户都抱怨无法联网而且驱动卸载十分麻烦.IT之家社区luoyousi 此前分享<图文教程:解决Win8消费者预览版不能上网问题> ...

  6. Ubuntu install mysql

    sudo apt-get install mysql-server sudo apt-get install libmysqlclient-dev

  7. Ubuntu下全命令行安装Android SDK

    为了在AWS云服务器上实现自动化打包Android APP的APK包,我需要远程命令行环境下安装Android SDK,当然还要用代理或者科学上网,这里简单整理一下过程: 首先,由于墙的原因,Andr ...

  8. Interpreter Expression 解释器模式

    简介 Interpreter模式也叫解释器模式,是由GoF提出的23种设计模式中的一种.Interpreter是行为模式之一,它是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用 ...

  9. css.day.05.eg

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. android自定义listview实现圆角

    在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种 ...