解析

毒瘤题
思路的关键是利用前缀和建图,枚举sum[24]点值
(其实可以二分)
主要是细节的处理不够清晰
使下标从1开始会一下子好做起来
然后把0当做源点
差分约束一定要有源点!!

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=5e5+100;
const double eps=1e-6;
inline ll read() {ll x=0,f=1;char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=(x<<1)+(x<<3)+c-'0';c=getchar();}return f*x;
}
int n,m;
struct node {int to,nxt;int w;
} p[N<<1];
int fi[N],cnt;
inline void addline(int x,int y,int w) {//printf("%d->%d w=%d\n",x,y,w);p[++cnt]=(node) {y,fi[x],w};fi[x]=cnt;
}
int dis[N];
queue<int>q;
bool vis[N];
int mx;
int tim[N];
bool SPFA() {memset(dis,-0x3f,sizeof(dis));memset(vis,0,sizeof(vis));memset(tim,0,sizeof(tim));while(!q.empty()) q.pop();dis[0]=0;vis[0]=1;q.push(0);while(!q.empty()) {int now=q.front();q.pop();vis[now]=0;//printf("now=%d dis=%d tim=%d\n",now,dis[now],tim[now]);for(int i=fi[now]; ~i; i=p[i].nxt) {int to=p[i].to;if(dis[to]<dis[now]+p[i].w) {//printf("  now=%d to=%d w=%d\n",now,to,p[i].w);dis[to]=dis[now]+p[i].w;tim[to]++;if(tim[to]>24) return false;if(!vis[to]) {q.push(to);vis[to]=1;}}}}return true;
}
int sum[25],r[25],pre[25];
bool work(int x) {memset(fi,-1,sizeof(fi));cnt=-1;for(int i=9; i<=24; i++) addline(i-8,i,r[i]);for(int i=1; i<=8; i++) addline(i+16,i,r[i]-x);for(int i=1; i<=24; i++) {addline(i-1,i,0);addline(i,i-1,-sum[i]);}addline(0,24,x);if(!SPFA()) return false;return true;
}
int main() {#ifndef ONLINE_JUDGEfreopen("a.in","r",stdin);freopen("a.out","w",stdout);
#endifint T=read();while(T--) {int tot=0;memset(sum,0,sizeof(sum));for(int i=1; i<=24; i++) r[i]=read();n=read();for(int i=1; i<=n; i++) {int x=read();x++;sum[x]++;tot++;}//printf("%d\n",work(1));int flag=0;for(int i=0; i<=n; i++) {if(work(i)) {flag=1;printf("%d\n",i);break;}}if(!flag) printf("No Solution\n");}
}
/*
3
intercommunicational
alkylbenzenesulfonate
tetraiodophenolphthalein
0
*/

LOJ:出纳员问题(差分约束)相关推荐

  1. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

  2. HDU3440(差分约束+SPFA算法)

    题意:两栋房子之间的最大距离为D,也就是A-B<=D,现在求出最矮和最高房子之间的最大距离 思路:差分约束+SPFA算法: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...

  3. HDU1531(差分约束+Bellman_ford)

    题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an}:在给出序列的约束条件: aSi + aSi+1 + ... + a ...

  4. poj3159(差分约束)

    题意:其实题目要求的就是这个B-A<=c,所以对应单源最短路径中的d[v]>d[u]+e[u][v] 关于差分约束: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...

  5. poj1364(差分约束+Bellman-ford)

    题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an}:在给出序列的约束条件: aSi + aSi+1 + ... + a ...

  6. poj1201(差分约束+SPFA)

    看到这道题,其实就是和poj1716是差不多的 题意:给出n个闭整数区间[ai,bi]和n个整数C1,.,cn.计算具有区间[ai,bi]的至少ci公共元素的整数集Z的最小大小,对于每一个i=1,2, ...

  7. poj3169(差分约束+SPFA)

    题意:FJ有N头牛,这些牛都站在一条直线上等待,但是现在给出了一些条件: 1.首先列出哪些牛之间彼此喜欢,以及之间的最大距离,也就是A-B<=X 2.随后列出哪些牛之间彼此不喜欢,以及之间的最小 ...

  8. poj1716(差分约束+SPFA)

    题意:整数间隔[a,b],a<b,是以a开头和以b结尾的所有连续整数的集合.在包含至少两个不同整数的集合中找到每个间隔的最小元素数. 思路:采用差分约束算法:当问题可以转化为形如一组 xi‑x' ...

  9. 差分约束问题 ---- 2019ccpc哈尔滨A. Artful Paintings[二分+差分约束+建图剪枝]

    题目链接 题目大意: 有N≤3e3N≤3e3N≤3e3个格子,你可以任意给每个格子染色,但是要满足M≤3e3M≤3e3M≤3e3限制条件,限制条件有两种类型: 区间[l,r][l,r][l,r]中被染 ...

最新文章

  1. socket与TcpListener/TcpClient/UdpClient 的区别及联系
  2. CV大咖齐聚于此,追忆一代宗师Thomas S. Huang为人、为师、为学
  3. linux shell declare命令 声明shell变量 显示shell函数
  4. PHP-fpm的master进程杀死work还能处理任务吗
  5. Win7 x64 PL/SQL 连接 Oralce 提示 Could not initialize %ORACLE_HOME%\bin\oci.dll
  6. IDEA中使用Maven
  7. pycharm无法安装第三方的包(AttributeError: module 'pip' has no attribute 'main')
  8. python template_python的Template使用指南
  9. 【JSP】JSP基础学习记录(二)—— JSP的7个动作指令
  10. oracle trigger 延迟执行_springboot中定时任务执行Quartz的使用
  11. mysql innodb备份恢复和主从复制 xtrabackup工具的使用
  12. 在ps中用3d来做阴影
  13. STM32F401 / STM32F411 WeAct Studio 资料以及翻版说明
  14. matlab批量裁剪图像并保存,matlab批量裁剪tif图片
  15. php fpm 报错,php-fpm报错
  16. html个人所得税计算器,个税计算器2021 - 个人所得税计算器2021 -
  17. 刘乾四川大学计算机学院刘乾,刘乾亮
  18. 用 Python 做股市数据分析(2)
  19. 手机内置摄像头接线图解_坚果R2 手机官方壁纸
  20. 【精华】超详细的Win10安装步骤,菜鸟福音

热门文章

  1. 51单片机外部地址c语言,cx51与c语言对单片机内部和外部资源变量和地址的定义是否兼容?为什么...
  2. c语言编程每日一练教程,每日一练 | C语言之指针
  3. mac 启动mysql多实例_实践:mysql单机多实例部署(mac)
  4. 开启php的文件上传扩展,linux中如何通过php.ini添加扩展?
  5. robcad和catia是什么关系_proe/CATIA/UG/SolidWorks软件区别与联系
  6. hashset默认长度是多少?_看看,这些细节上的坑,你犯了多少?
  7. 北航计算机学院有河南的,北航计划在豫招生165人 河南多所高职公布预录名单...
  8. 递归函数斐波那契数列python_使用Python函数递归实现斐波那契数列时为什么运行速度很慢?...
  9. c语言字符串中取最大字符串,使用C语言提取子字符串及判断对称子字符串最大长度...
  10. c++向mysql通信_C++连接MySQL