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. mongo 多条件 查询

    var query1 = Query<BaseManagerForCompanyModel>.EQ(q => q.sGuidBaseCompany, sGuidBaseCompany ...

  2. PHP中统计目录中文件以及目录中目录的大小

    <?php  #循环遍历目录中所有的文件,并统计目录和文件的大小  $dirName="phpMyAdmin";  $dir=opendir($dirName);  #返回一 ...

  3. OpenGL中glPushMatrix和glPopMatrix的原理

    glPushMatrix.glPopMatrix操作事实上就相当于栈里的入栈和出栈. 很多人不明确的可能是入的是什么,出的又是什么. 比如你当前的坐标系原点在你电脑屏幕的左上方.如今你调用glPush ...

  4. JQuery请求WebService返回数据的几种处理方式

    打开自己的博客仔细浏览了一番,发现已经好久没有写博客了,由于最近一直比较忙碌懈怠了好多.默默反省三分钟.......言归正传,现在就对最近在学习webservice的过程中遇到的几种类型的问题中我的理 ...

  5. PHP数据结构预热:PHP的迭代器(转)

    迭代器有时又称光标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如list或vector)上遍访的接口,设计人员无需关心容器物件的内容. 各种语言实作Iterator的 ...

  6. java 连接数据库mysql的方法

    1.把那个文件配置好环境变量. 2.创建数据库,插入数据 注意的地方: (1)环境变量 classpath(可大写,也可以小写,可放在个人变量,也可以试系统变量) 里面的值 F:\mysql-conn ...

  7. Objective-C学习篇02—封装

    面向对象的三大特性:封装.继承和多态 封装目的就是将数据隐藏起来,外界只能通过这个类的方法(接口)才能访问或者设置里面的数据,不可以在外部直接修改或者访问里面的数据,通常使用方法来达到封装一个类的目的 ...

  8. 继承UIView的子控件添加点击事件

    UITapGestureRecognizer*tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:selfaction:@select ...

  9. iOS中的设计模式

    一. MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离 ...

  10. 《JavaScript高级程序设计》读书笔记

    Javascript由以下三部分组成: 核心(ECMAScript) 文档对象模型(DOM) 浏览器对象模型(BOM) ECMAScript组成部分: 语法.类型.语句.关键字.保留子.操作符.对象. ...