【差分约束】POJ_1275 Cashier Employment

RT-Thread Studio与CubeMX联合编程(超级详细) RT-Thread Studio与CubeMX联合编程 本文章参考以下文章: https://blog.youkuaiyun.com/qq_40824852/article/details/122596043 https://zhuanlan.zhihu.com/p/395106066 https://blog.youkuaiyun.com/m0_37697335/article/details/108890584 一、简介 经过上次对RT-Thread Studio的初步尝试,发现RT-Thread Studio中存在官方支 阅读详情

题意

有nnn个人,每个人会从tit_iti​开始工作888小时。商店的第iii个小时需要rir_iri​个人,求出需要的最少人数满足商店的要求。

思路

设rir_iri​为商店第iii个小时需要的人,tit_iti​为第iii个小时开始可以工作的人,xix_ixi​为第iii个小时已经在工作的人,根据题意可得,
xi−8+xi−7+...+xi≥rix_{i-8}+x_{i-7}+...+x_{i}\geq r_ixi−8​+xi−7​+...+xi​≥ri​
我们设sis_isi​为x0+x1+...+xix_{0}+x_{1}+...+x_{i}x0​+x1​+...+xi​
那么有
si−si−8≥ris_i-s_{i-8}\geq r_isi​−si−8​≥ri​
si+s24−si+16≥ris_i+s_{24}-s_{i+16}\geq r_isi​+s24​−si+16​≥ri​{隔天}
si−si−1≥0s_i-s_{i-1}\geq0si​−si−1​≥0
si−1−si≥−tis_{i-1}-s_i\geq-t_isi−1​−si​≥−ti​
由于上面的第二条中出现了s24s_{24}s24​这一未知数,不满足差分约束的条件,所以我们可以枚举s24s_{24}s24​,记为ansansans。
由于求出的s24s_{24}s24​可能小于ansansans,导致第二个条件不满足,所以我们还要多加一个条件s24−s0≥anss_{24}-s_0\geq anss24​−s0​≥ans。

代码

#include<queue>
#include<cstdio>
#include<cstring>

int T, tot, f;
int head[1001], next[1001], ver[1001], edge[1001], cnt[25], d[25], v[25];
int r[25], t[25], x[25];

void add(int u, int v, int w) {
	ver[++tot] = v;
	edge[tot] = w;
	next[tot] = head[u];
	head[u] = tot;
}

int spfa(int s) {
	std::queue<int> q;
	memset(d, -127 / 3, sizeof(d));
	memset(v, 0, sizeof(v));
	memset(cnt, 0, sizeof(cnt));
	v[0] = 1;
	d[0] = 0;
	cnt[0] = 1;
	q.push(0);
	while (q.size()) {
		int u = q.front();
		q.pop();
		v[u] = 0;
		for (int i = head[u]; i; i = next[i]) {
			int to = ver[i];
			if (d[to] < d[u] + edge[i]) {
				d[to] = d[u] + edge[i];
				if (!v[to]) {
					if (++cnt[to] > 24) return 0;
					v[to] = 1;
					q.push(to);
				}
			}
		}
	}
	if (s == d[24]) return 1;
	else return 0;
}

int main() {
	scanf("%d", &T);
	while (T--) {
		memset(t, 0, sizeof(t));
		f = 0;
		for (int i = 1; i <= 24; i++)
			scanf("%d", &r[i]);
		int n, a;
		scanf("%d", &n);
		for (int i = 1; i <= n; i++) {
			scanf("%d", &a);
			t[a + 1]++;
		}
		for (int s = 0; s <= n; s++) {
			memset(head, 0, sizeof(head));
			tot = 0;
			add(0, 24, s);
			for (int i = 1; i <= 24; i++) {
				if (i > 8) add(i - 8, i, r[i]);
				else add(16 + i, i, r[i] - s);
				add(i - 1, i, 0);
				add(i, i - 1, -t[i]);
			}
			if (spfa(s)) {
				f = 1;
				break;
			}
		}
		if (f) printf("%d\n", d[24]);
		else printf("No Solution\n");
	}
}
DB2__基本概念——联邦 建立联邦 优点:优点是数据仍然保留在原来的存储位置,而不必建立一个集中的式数据仓储。  缺点:数据联邦查询反映会慢,不适合频繁查询,而且容易出现锁争用和资源冲突等问题 建立联邦表步骤 前提条件:知道两个数据库的ip,用户名,密码及被连数据库的版本 eg:  数据库  qqdb  ip: 22.5.225.225   端口:50000    密码:123456        数据库   ... 阅读详情

相关推荐

win11怎么安装dosbox和masm来运行汇编程序(小白,萌新篇)

一文教会你如何部署dosbox和masm环境

m0_73279193的博客 4700

【POJ 1275】 Cashier Employment

【题目链接】          点击打开链接【算法】          设Ti为第i小时有多少个出纳员开始工作,Vi表示第i小时有多少个来应聘的出纳员          那么,有 :          1. 0 &lt;= Ti &lt;= Vi          2. Ti + Ti-1 + Ti-2 + Ti-3 + Ti-4 + Ti-5 + Ti-6 + Ti-7 &gt;= Ri    ...

even_bao的博客 337

UG NX与PLC-1500的在环虚拟测试

TIA、PLCSIM、NetToPLCsim、KEPServerEX以及UG NX的在环虚拟测试

lvtlvtlvtlvt的博客 4220

poj1275 - Cashier Employment

想看更多的解题报告: http://blog.youkuaiyun.com/wangjian8006/article/details/7870410                                   转载请注明出处:http://blog.youkuaiyun.com/wangjian8006 题目大意:             德黑兰的一家每天24小时营业的超市,需要一批出纳员来满足它的需求

贰圣 4302

STM32使用 jansson 处理 Json格式字符

STM32 Json 字符的创建和解析1、Json简介2、jansson库的下载安装和报错解决2.1、下载安装2.2、STM32工程文件中导入jansson库2.3、报错解决2.4、修改堆栈空间3、Json 字符的创建4、Json 字符的解析4.1 纯键值对4.2、键的值是一个对象4.3、键的值是一个数组   STM32处理json字符串一般不常见,大部分都是不需要处理的数据,但是在一些通信中需要处理上传或者下传的数据,就别比如在物联网中,有一部分数据就是以json格式传输的,那么就需要对数据经行解析。我简

青烨慕容 7418

机械臂TCP标定实战:从四点法到六点法的精度跃迁

本文详细解析机械臂TCP标定技术,从基础的四点法到高精度的六点法实现精度跃迁。通过工具坐标系与基坐标系的转换原理,结合实战案例展示六点法如何将装配合格率提升至99.5%,并分享环境控制、操作技巧等提升标定精度的关键要素。

weixin_29038345的博客 895

poj 1275 Cashier Employment

好长的一道差分约束啊 啊 啊!戳戳戳题意: 德黑兰的一家每天24小时营业的超市,需要一批出纳员来满足它的需求。超市经理雇佣你来帮他解决一个问题————超市在每天的不同时段需要不同数目的出纳员(例如,午夜只需一小批,而下午则需要很多)来为顾客提供优质服务,他希望雇佣最少数目的纳员。 超市经历已经提供一天里每一小时需要出纳员的最少数量————R(0),R(1),…,R(23

mars_ch的博客 575

手把手教你用Simulink搭建级联H桥储能变流器仿真模型(附SOC均衡分析)

本文详细介绍了如何使用Simulink搭建级联H桥储能变流器仿真模型,并附有SOC均衡分析。从仿真环境准备、单相H桥单元建模到多模块级联方案和SOC均衡策略实现,逐步指导读者完成复杂系统的构建与优化。通过关键仿真结果分析和工程实践问题排查,帮助读者掌握级联H桥储能变流器的核心技术与应用方法。

weixin_42524226的博客 445

【POJ1275】Cashier Employment

Description A supermarket in Tehran is open 24 hours a day every day and needs a number of cashiers to fit its need. The supermarket manager has hired you to help him, solve his problem. The problem

dcx2001的博客 416

STM32CubeMX之emWin移植

“前面两章介绍了SDRAM和LTDC的使用,本篇文章将介绍emWin移植到STM32。”硬件环境:STM32F429IGT6软件环境:STM32CubeMX v5.5.0...

zhang062061的专栏 2826

Fiori Elements 的 Adapting the UI: Analytical List Page 全解析与实战

摘要:本文详细介绍了如何通过SAP Fiori elements的UI Adaptation功能对Analytical List Page(ALP)进行细粒度适配。重点讲解了页头过滤区、图表区域、表格区域等关键组件的可配置属性,包括过滤区折叠/固定、图表类型限制、表格滚动阈值等实用功能。文章强调这些适配均可通过可视化工具完成,无需修改业务代码,并提供了典型场景的实践清单。适用于SAP Fiori elements for OData V2项目,建议配合SAP Fiori tools的Adaptation E

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 436

POJ 1275-Cashier Employment(差分约束系统)

题目地址:POJ 1275 题意: 给出一个超市24小时各需要R[i]个雇员工作,有N个雇员可以雇佣,他们开始工作时间分别为A[i],求需要的最少的雇员人数。 思路:这个题的查约束太多了!简直是差评!不过也不能否定这是道好题。 设dis[i]为0-i小时内工作的人数(dis[24]即为所求),r[i]为第(i-1)-i小时时需要在工作的人数,t[i]可以在第i-1小时开始工作。可以建立起以下

Rocky0429 1820

Allegro 中复制一部分PCB到另一个PCB中去

引言:自从学了allegro后,我每天快乐地再拉线,一开心肯定出事情。不料今天一高兴,把本来在5层的铜皮直接在4层画起来了。不过,幸好我知道换层,才省了又要画铜皮的时间。好了,开干,如果要将其他层的铜皮换到想要换到的层上,就需要这个命令。

tianpu2320959696的博客 968

【POJ1275】Cashier Employment 差分约束

【POJ1275】Cashier Employment 题意:超市经历已经提供一天里每一小时需要出纳员的最少数量————R(0),R(1),...,R(23)。R(0)表示从午夜到凌晨1:00所需要出纳员的最少数目;R(1)表示凌晨1:00到2:00之间需要的;等等。每一天,这些数据都是相同的。 有N人申请这项工作,每个申请者i在每天24小时当中,从一个特定的时刻开始连续工作恰...

aodanchui1057的博客 190

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

poj1275 Cashier Employment 差分约束

poj1275 Cashier Employment 题目传送 sol: 不是很容易想到。。 不妨令\(S[i](0≤i≤23)\)表示前i小时已经定了i个人。 那么根据题目给定条件及隐含条件作出约束: \[ s[i]-s[i-8]≥need[i]\ (8≤i≤23)\\ sum-(s[i+16]-s[i])≥need[i]\ (0≤i≤7)\\ s[i-1]≤s[i]\ (0≤i≤23...

weixin_30608131的博客 184

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

POJ1275 Cashier Employment (差分约束系统 + 二分答案)

POJ1275 Cashier Employment原题地址:http://poj.org/problem?id=1275题意: 德黑兰的一家每天24小时营业的超市,需要一批出纳员来满足它的需求。超市经理雇佣你来帮他解决一个问题————超市在每天的不同时段需要不同数目的出纳员(例如,午夜只需一小批,而下午则需要很多)来为顾客提供优质服务,他希望雇佣最少数目的纳员。

Bfk的博客 1037

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

poj1275 Cashier Employment (差分约束)

题意: 一家24小时营业的超市,需要雇佣一些出纳员来满足需求。超市在不同时刻需要不同数目的出纳员,记为ri (0 有n个人来申请职位,一旦雇佣一个人,他将从一个时刻ti开始,连续工作8小时。 输入ri和ti,求满足需求最少需要雇佣多少人。 思路: 设r[i]为每小时需要的出纳员数目, t[i]为每小时应征者的数目, s[i]为从时刻0到时刻i雇佣的出纳员总数, sum为雇佣的所有

Shion的专栏 644

POJ1275 Cashier Employment 差分约束 + 二分

一、内容 A supermarket in Tehran is open 24 hours a day every day and needs a number of cashiers to fit its need. The supermarket manager has hired you to help him, solve his problem. The problem is that ...

Tizzi的博客 1379

POJ1275 Cashier Employment 差分约束

被这道题目折磨了很久,后来发现被坑了。。。写错一个变量,改了1天。。。。,另外如果没有符合条件的方案是输出No Solution不是No Solution for that case(这里我太奇葩了。。。。)。 下面讲一下思路,网上大多数使用最长路做的,但差分约束我比较习惯用最短路来做,其实两种方法都可以,只是不等号的方向不一样罢了,另外在求解最短路的时候起点和目标点也与最长路不同,另外再求出结

937

『二分答案·差分约束』POJ1275:Cashier Employment

Problem\mathrm{Problem}Problem 题目大意: 德黑兰的一家每天24小时营业的超市,需要一批出纳员来满足它的需求。超市经理雇佣你来帮他解决一个问题————超市在每天的不同时段需要不同数目的出纳员(例如,午夜只需一小批,而下午则需要很多)来为顾客提供优质服务,他希望雇佣最少数目的纳员。 超市经历已经提供一天里每一小时需要出纳员的最少数量————R(0),R(1),…,R(2...

Ronaldo7_ZYB的博客 352

差分约束 - Cashier Employment - POJ 1275

差分约束 - Cashier Employment - POJ 1275 题意: 一家超市要每天24小时营业,为了满足营业需求,需要雇佣一大批收银员。 已知不同时间段需要的收银员数量不同,为了能够雇佣尽可能少的人员,从而减少成本,这家超市的经理请你来帮忙出谋划策。 经理为你提供了一个各个时间段收银员最小需求数量的清单R(0),R(1),R(2),…,R(23)。 R(0)表示午夜00:00到凌晨01:00的最小需求数量,R(1)表示凌晨01:00到凌晨02:00的最小需求数量,以此类推。 一共有N个合格的申

njuptACMcxk的博客 303

poj1275Cashier Employment【差分约束】

Language: Default Cashier Employment Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7476   Accepted: 2816 Description A supermarket in Tehran is open 24

走一步再走一步 901

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

正题 题目链接:http://poj.org/problem?id=1275 题目大意 1∼241\sim 241∼24小时中第iii个小时需要rir_iri​个出纳员 有nnn个人应聘,第iii从xix_ixi​开始工作,一直工作8个小时。 求至少要招募多少人应聘。 解题思路 numinum_inumi​表示第iii个小时有多少人招聘。 设定kik_iki​表示第iii个小时放多少人 这时需...

QuantAsk 528

POJ 1275 Cashier Employment 较难的差分约束

题目大意:一个售货店需要招人,每一个小时至少应该有Ri个售货员,一共有24个小时,一共N个人来应聘 并且每个来应聘的人能从Ti工作到Ti+8(对于超过23的,从1算起)问最少聘用多少人? emmmm这题我感觉基本是个神题,靠本蒟蒻的脑子是想不出来的 于是看了看这位大佬的题解https://blog.youkuaiyun.com/zhang20072844/article/details/7816105 大概是...

InverseDZY的博客 262

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

【POJ 1275】 Cashier Employment(差分约束系统的建立和求解) Cashier Employment Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7569   Accepted: 2856 Description A sup

ACMer' 1580

poj 1275--Cashier Employment【差分约束系统】

题目描述德黑兰的一家每天24小时营业的超市,需要一批出纳员来满足它的需求。超市经理雇佣你来帮他解决一个问题————超市在每天的不同时段需要不同数目的出纳员(例如,午夜只需一小批,而下午则需要很多)来为顾客提供优质服务,他希望雇佣最少数目的纳员。 超市经历已经提供一天里每一小时需要出纳员的最少数量————R(0),R(1),…,R(23)。R(0)表示从午夜到凌晨1:00所需

Sdywolf的博客 716
上一篇: 【差分约束】POJ_1201 Intervals
下一篇: 【树形dp】JZOJ_1029 电子眼
nymph181
博客等级 码龄9年 40粉丝 458原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值