POJ1275-Cashier Employment【差分约束系统】

正题

题目链接:http://poj.org/problem?id=1275


题目大意

1∼241\sim 24124小时中第iii个小时需要rir_iri个出纳员
nnn个人应聘,第iiixix_ixi开始工作,一直工作8个小时。
求至少要招募多少人应聘。


解题思路

numinum_inumi表示第iii个小时有多少人招聘。
设定kik_iki表示第iii个小时放多少人
这时需要ki≥rIk_i\geq r_IkirI∑i=07num(n−i+24)%24+1≤ki\sum_{i=0}^7num_{(n-i+24)\%24+1}\leq k_ii=07num(ni+24)%24+1ki
这时我们要设定差分约束si=∑i=1isis_i=\sum_{i=1}^is_isi=i=1isi
然后得出
si−si−1≥0s_i-s_{i-1}\geq 0sisi10
si−1−si≥−numis_{i-1}-s_i\geq -num_isi1sinumi
si−si−8≥ris_i-s_{i-8}\geq r_isisi8ri
si−si+16≥ri−s24s_i-s_{i+16}\geq r_i-s_{24}sisi+16ris24
然后因为最后一个式子有三个未知量,所以我们枚举s24s_{24}s24就好了


codecodecode

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
const int N=30;
struct edge{int to,next,w;
}a[N*8];
queue<int> q;
int T,n,tot;
int r[N],f[N],cnt[N],num[N],ls[N];
bool v[N],flag;
void addl(int x,int y,int w)
{a[++tot].to=y;a[tot].w=w;a[tot].next=ls[x];ls[x]=tot;
}
void build(int x)
{tot=0;memset(ls,0,sizeof(ls));addl(0,24,x);for(int i=1;i<=24;i++){addl(i-1,i,0);addl(i,i-1,-num[i]);if(i>=8) addl(i-8,i,r[i]);else addl(i+16,i,r[i]-x);}
}
int spfa(int ans)
{memset(f,0xcf,sizeof(f));memset(cnt,0,sizeof(cnt));memset(v,0,sizeof(v));while(!q.empty()) q.pop();q.push(0);f[0]=0;v[0]=1;while(!q.empty()){int x=q.front();v[x]=0;q.pop();for(int i=ls[x];i;i=a[i].next){int y=a[i].to;if(f[x]+a[i].w>f[y]){f[y]=f[x]+a[i].w;if(!v[y]){q.push(y);v[y]=1;}if(++cnt[y]>24)return 0;}}}if(f[24]==ans) return 1;return 0;
}
int main()
{scanf("%d",&T);while(T--){memset(num,0,sizeof(num));for(int i=1;i<=24;i++)scanf("%d",&r[i]);scanf("%d",&n);for(int i=1;i<=n;i++){int x;scanf("%d",&x);num[x+1]++;}flag=0;for(int i=0;i<=n;i++){build(i);if(spfa(i)){flag=true;printf("%d",i);break;}}if(!flag) printf("No Solution");putchar('\n');}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 mono 编译 .NET Standard 应用

微软发布 .NET Standard 2.0 已经有一段时间了&#xff0c; 根据 .NET Standard 2.0 支持版本的文档&#xff0c; Mono 5.4 是支持 .NET Standard 2.0 的&#xff0c; 对于 .NET Standard 2.0 应用的开发的介绍&#xff0c; 几乎全部都是在 Windows 系统下使用 Visual Studio 2…

nginx操作命令

启动 nginx 停止 nginx -s stop 查看占用端口号 ps -ef | grep nginx 重启&#xff1a; nginx -s reload nginx配置目录&#xff1a; /usr/local/nginx/conf/nginx.conf

Spring Boot 热部署入门

转载自 Spring Boot 热部署入门 1. 概述 在日常开发中&#xff0c;我们需要经常修改 Java 代码&#xff0c;手动重启项目&#xff0c;查看修改后的效果。如果在项目小时&#xff0c;重启速度比较快&#xff0c;等待的时间是较短的。但是随着项目逐渐变大&#xff0c;重启的速…

hdu3666-THE MATRIX PROBLEM【差分约束,自然对数】

正题 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid3666 题目大意 一个n∗mn*mn∗m的矩阵CCC求有没有一个长度为nnn的aaa序列和一个长度为mmm的bbb序列使得 L≤Ci,j∗ai/bi≤RL\leq C_{i,j}*a_i/b_i\leq RL≤Ci,j​∗ai​/bi​≤R 解题思路 首先我们将乘除转换为自然…

微服务架构的理论基础 - 康威定律

摘要&#xff1a; 可能出乎很多人意料之外的一个事实是&#xff0c;微服务很多核心理念其实在半个世纪前的一篇文章中就被阐述过了&#xff0c;而且这篇文章中的很多论点在软件开发飞速发展的这半个世纪中竟然一再被验证&#xff0c;这就是康威定律。前段时间看了Mike Amundsen…

nginx部署laravel需要修改的配置

让ssh一直在后台运行 nohup php artisan serve --host 0.0.0.0 > myout.file 2>&1 & 1、修改nginx.config里面的内容&#xff0c;把禁用函数去掉 2、修改php.ini display_errors Ondisplay_startup_errors On

阿里微服务架构下分布式事务Seata

转载自 阿里微服务架构下分布式事务Seata Seata 是什么&#xff1f; Seata 是一款开源的分布式事务解决方案&#xff0c;致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在 Seata 开源之前&#xff0c;Seata 对应的内部版本在阿里经济体内部一直扮演着分布式一…

用于.NET Core的ORM

尽管EF Core正努力提供视图和存储过程等基本数据库特性&#xff0c;但是开发人员也在寻求能满足他们数据访问需求的ORM工具。下面列出一些相对广为使用的ORM。 LLBLGen Pro Runtime Framework LLBLGen Pro Runtime Framework是一种“可选”的ORM&#xff0c;它是与LLBLGen实体建…

P3076,jzoj3187-的士【贪心】

正题 luogu题目链接:https://www.luogu.org/problemnew/show/P3076 题目大意 有若干个请求si,tis_i,t_isi​,ti​表示一个牛要从sis_isi​到tit_iti​。一辆只能装一只牛的车&#xff0c;从1出发mmm结束。求最少行驶距离。 解题思路 首先对于每个要求一定要计算∣ti−si∣|t…

Spring Boot之基于Dubbo和Seata的分布式事务解决方案

转载自 Spring Boot之基于Dubbo和Seata的分布式事务解决方案 1. 分布式事务初探 一般来说&#xff0c;目前市面上的数据库都支持本地事务&#xff0c;也就是在你的应用程序中&#xff0c;在一个数据库连接下的操作&#xff0c;可以很容易的实现事务的操作。但是目前&#xff…

Ocelot监控

网关的作用之一&#xff0c;就是有统一的数据出入口&#xff0c;基于这个功能&#xff0c;我们可以在网关上配置监控&#xff0c;从而把所有web服务的请求应答基本数据捕获并展显出来。 关于web的监控&#xff0c;一般的做法是采集数据并保存&#xff0c;然后通过图表的方式展示…

jzoj3188-找数【质数筛,数论】

正题 题目大意 求第nnn大的最小质因数时ppp的数。 解题思路 首先对于p2p2p2和p3p3p3时可以直接通过计算得出。 然后不难发现当p5p5p5时我们可以每次增加101010也就是O(n)O(n)O(n)的十分之一常数。 之后再往大的我们发现是O(nln⁡np)O(\frac{n\ln n}{p})O(pnlnn​)常数是二分之…

Linux上安装nginx

1、下载安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2、下载并解压nginx wget http://nginx.org/download/nginx-1.13.7.tar.gz tar -xvf nginx-1.13.7.tar.g3、进入到目录编译安装 ./configure make make install配置环境变量 修改 /etc…

Spring Boot之基于Redis实现MyBatis查询缓存解决方案

转载自 Spring Boot之基于Redis实现MyBatis查询缓存解决方案 1. 前言 MyBatis是Java中常用的数据层ORM框架&#xff0c;笔者目前在实际的开发中&#xff0c;也在使用MyBatis。本文主要介绍了MyBatis的缓存策略、以及基于SpringBoot和Redis实现MyBatis的二级缓存的过程。实现本…

数据库架构演变概要

一&#xff0e;背景为了适应业务增长,数据库数据量快速增长&#xff0c;性能日趋下降&#xff0c;稳定性不佳的实际情况&#xff0c;急需架构逐步演变适应未来的业务发展。二&#xff0e;现状【稳定性】数据库为单点&#xff0c;没有高可用和稳定性方案。【数据量大】数据库目前…

jzoj3189-解密【字符串hash】

正题 题目大意 一个句子有多个单词。 给出了一个加密了的串。加密方法是将不同的单词转换成不同的单词。然后再给一个加密前的串&#xff0c;求再加密串中可能出现的最早位置。 解题思路 设aia_iai​表示与iii相同的前一个字母的位置。 然后根据题目意思对与两个串如果aaa序列…

面试请不要再问我Spring Cloud底层原理

转载自 面试请不要再问我Spring Cloud底层原理 概述 毫无疑问&#xff0c;Spring Cloud是目前微服务架构领域的翘楚&#xff0c;无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面&#xff0c;其底层的很多原理&#xff0c;很多人可能并…

nginx配置前端反向代理

本地这里有两个端口&#xff1a; 8080&#xff1a;前端页面 80&#xff1a;后端接口 在nginx配置 listen 8888;server_name 127.0.0.1;location / {root html;proxy_pass http://127.0.0.1:8080;# try_files $uri $uri/ /index.php$is_args$args;index index.html…

Visual Studio 2017的第五个更新包扩展了调试工具

Visual Studio 2017近日收到了最新的完整更新包&#xff0c;版本号为15.5。跟随前几次更新的步伐&#xff0c;这次发布提供了一系列几乎会让所有用户从中受益的特性。此次发布的一个重点是IDE的性能&#xff0c;尤其是减少C#/Visual Basic项目的加载时间。在.NET Core项目中进行…

Spring Boot 多数据源(读写分离)入门

转载自 芋道 Spring Boot 多数据源&#xff08;读写分离&#xff09;入门 1. 概述 在项目中&#xff0c;我们可能会碰到需要多数据源的场景。例如说&#xff1a; 读写分离&#xff1a;数据库主节点压力比较大&#xff0c;需要增加从节点提供读操作&#xff0c;以减少压力。 …