丽娃河的狼人传说

Time limit per test: 1.0 seconds

Memory limit: 256 megabytes

丽娃河是华师大著名的风景线。但由于学校财政紧缺,丽娃河边的路灯年久失修,一到晚上就会出现走在河边要打着手电的情况,不仅非常不方便,而且影响安全:已经发生了大大小小的事故多起。

方便起见,丽娃河可以看成是从 1 到 n 的一条数轴。为了美观,路灯只能安装在整数点上,每个整数点只能安装一盏路灯。经专业勘测,有 m 个区间特别容易发生事故,所以至少要安装一定数量的路灯,

请问至少还要安装多少路灯。

Input

第一行一个整数 T (1≤T≤300),表示测试数据组数。

对于每组数据:

  • 第一行三个整数

  • 第二行 k 个不同的整数用空格隔开,表示这些位置一开始就有路灯。

  • 接下来 m 行表示约束条件。第 i 行三个整数 (1≤li≤ri≤n,1≤ti≤n)。

Output

对于每组数据,输出 Case x: y。其中 x 表示测试数据编号(从 1 开始),y 表示至少要安装的路灯数目。如果无解,y 为 −1。

Examples

input
3
5 1 3
1 3 5
2 3 2
5 2 3
1 3 5
2 3 2
3 5 3
5 2 3
1 3 5
2 3 2
4 5 1

output
Case 1: 1
Case 2: 2
Case 3: 1

Note

因为今天不是满月,所以狼人没有出现。

Source

2017 华东师范大学网赛

题目链接:ECNU 3263
突然发现以前这题是一道裸的差分约束……由于要求的是最小值,那必定要把所有不等式化成da-db>=c的形式,首先一个点至多安装一盏路灯,那么有di-d{i-1}>=1,然后一些点已经存在了路灯,又有:dx-d{x-1}=1,这条等式可以用两条不等式表示:dx-d{x-1}>=1和dx-d{x-1}<=1,后者两边同时乘以-1得到d{x-1}-dx>=-1,最后SPFA的时候用入队次数检测一下正环就可以了,如果存在正环说明方案不存在输出-1
代码:

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define LC(x) (x<<1)
#define RC(x) ((x<<1)+1)
#define MID(x,y) ((x+y)>>1)
#define fin(name) freopen(name,"r",stdin)
#define fout(name) freopen(name,"w",stdout)
#define CLR(arr,val) memset(arr,val,sizeof(arr))
#define FAST_IO ios::sync_with_stdio(false);cin.tie(0);
typedef pair<int, int> pii;
typedef long long LL;
const double PI = acos(-1.0);
const int N = 1010;
struct edge
{int to, nxt, d;edge() {}edge(int _to, int _nxt, int _d): to(_to), nxt(_nxt), d(_d) {}
};
edge E[N * 5];
int head[N], tot;
int vis[N], d[N];
int cnt[N];
int flag, n, m, k;void init()
{CLR(head, -1);tot = 0;CLR(cnt, 0);flag = 1;
}
inline void add(int s, int t, int d)
{E[tot] = edge(t, head[s], d);head[s] = tot++;
}
void spfa(int s)
{queue<int>Q;Q.push(s);CLR(vis, 0);CLR(d, -INF);vis[s] = 1;d[s] = 0;while (!Q.empty()){int u = Q.front();Q.pop();vis[u] = 0;if (++cnt[u] > n){flag = 0;return ;}for (int i = head[u]; ~i; i = E[i].nxt){int v = E[i].to;if (d[v] < d[u] + E[i].d){d[v] = d[u] + E[i].d;if (!vis[v]){vis[v] = 1;Q.push(v);}}}}
}
int main(void)
{int tcase, i;scanf("%d", &tcase);for (int q = 1; q <= tcase; ++q){scanf("%d%d%d", &n, &m, &k);init();int already = k;while (k--){int x;scanf("%d", &x);add(x - 1, x, 1);// d[x] - d[x - 1] >= 1;add(x, x - 1, -1);// d[x - 1] - d[x] >= -1;}for (i = 1; i <= n; ++i){add(i - 1, i, 0);//d[i] - d[i - 1] >= 0add(i, i - 1, -1);//d[i-1] - d[i] >= -1}while (m--){int l, r, t;scanf("%d%d%d", &l, &r, &t);add(l - 1, r, t);//d[r] - d[l - 1] >= t}spfa(0);printf("Case %d: %d\n", q, flag ? d[n] - d[0] - already : -1);}return 0;
}

转载于:https://www.cnblogs.com/Blackops/p/7151436.html

ECNU 3263 丽娃河的狼人传说(差分约束)相关推荐

  1. 2017 华东师范大学网赛 F.丽娃河的狼人传说 Problem #3263( 贪心)

    丽娃河的狼人传说 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megaby ...

  2. 大学生程序设计邀请赛(华东师范大学)

    C. 袋鼠妈妈找孩子 Time limit per test: 1.5 seconds Memory limit: 256 megabytes Accept / Submit: 41 / 172 袋鼠 ...

  3. Team Silver_Bullet 训练记录

    Team members Vec Grunt henryrabbit To do list team:起队名 每周组队训练 补题 Vec: Grunt:切题,切题,切更多的题!做好切所有类型题的觉悟! ...

  4. 华师大数据科学考研_21考研择校 | 华东师范大学软件工程怎么样?

    本文转载自公众号"CS优化狮", 如需转载,请注明出处. 学校名气 华东师范大学,"985工程"."211工程"."双一流&quo ...

  5. 计算机考研310分什么水平,知乎工学考研310是什么水平

    很好的学校啊属于中上水平的985名校,现入选为双一流A类大学是和北京师范大学齐名的师范大学华东师范大学是1959年第一批的16所全国重点大学之一在上海和复旦大学.上海交通大学.同济大学并称为" ...

  6. 计算机学校校歌,【2018十大最受欢迎高校校歌】_最受欢迎的十大高校校歌

    零点高三 原标题:最受欢迎的十大高校校歌,赶快下来听听! 对于各大高校而言,教学水平.师资力量.就业率.硬件设施,甚至校园环境.校园美食等都成为学校的谈资.今天,小编就整理了最受欢迎的十大高校校歌,与 ...

  7. 北大计算机系收文科吗,给高校“文科生”的好消息!尤其是这几个专业……

    原标题:给高校"文科生"的好消息!尤其是这几个专业-- 高校不重视文科发展吗?谁说的! 发展文科,北大要筹集设立专项基金 据澎湃新闻报道,11月4日,在翦伯赞同志诞辰120周年暨& ...

  8. [雨果发烧天碟] 荷塘月色

    专辑名称: 荷塘月色 唱片公司: 雨果制作有限公司 作曲, 钢琴, MIDI:武亦文 中阮:刘星 大提琴,口哨,二胡:易有伍 往昔,当听到以Midi发出模仿各种乐器的声音,那种充斥着电子世界中的冰泠每 ...

  9. 钢铁是怎样炼成的 第四章

    第四章 雨点劈劈啪啪地敲打着窗户.屋顶上的雨水刷刷地往下流.劲风阵阵,吹得花园里 的樱桃树惊慌地东摇西晃,树枝不时撞在窗玻璃上.冬妮亚已多次抬起头来,谛听着是 不是有人敲门.她终于明白,这不过是风在捣 ...

最新文章

  1. 信息系统项目管理师-第二三章:信息系统项目管理基础与立项管理2
  2. 【算法知识】详解归并排序算法
  3. [小技巧]EF Core中如何获取上下文中操作过的实体
  4. Error creating bean with name ‘fastJsonpResponseBodyAdvice‘ defined in URL xxx
  5. opencv3.2+opencv_contrib+cmake
  6. c语言递归解决汉诺塔问题
  7. Data Warehouse
  8. IPv6技术精要--第5章 IPv6公网单播地址
  9. 计算机网络 专有名词英文缩写
  10. 用户使用什么命令访问远程计算机,远程桌面连接命令是什么 怎么使用命令连接远程服务器...
  11. 首都师范 博弈论 2 2 4划线法
  12. P8195 [传智杯 #4 决赛] 小智的疑惑 —KMP
  13. 苹果机和Android,苹果机和安卓机各有优缺点,但苹果机这四点让人顶不住
  14. MySQL对时间戳的格式化
  15. sql 中 日期比较
  16. GSM/GPRS模块学习
  17. (PHPExcel)读取表格中数据
  18. 「硬见小百科」单片机、ARM、MCU、DSP、FPGA、嵌入式关系
  19. 256种编程语言的大清单
  20. 苹果取消订阅_知乎盐选会员可以取消自动续费吗,如何操作?

热门文章

  1. Print2flash在.NET(C#)64位中的使用,即文档在线预览(转载)
  2. remobject 簡介
  3. 零基础带你学习MySQL—加密函数和系统函数(十六)
  4. 元月份退休能享受涨养老金的待遇吗?
  5. VoLTE 有什么好处
  6. 请律师到底有什么用?
  7. 以房养老骗局高发,背后套路何在?
  8. 买彩票中奖的概率是多少?
  9. 不要根据自己的喜好创业
  10. 多线程reactor模型