EOJ 3263 丽娃河的狼人传说
差分约束系统,$spfa$。
首先判断无解,若某个约束的$t$大于区间长度,则一定无解。
否则一定有解,可以得到一系列的不等式:
最终区间和大于等于目前的区间和:$S[R]-S[L-1]≥val$,
每一个位置的值小于等于$1$:$S[R]-S[R-1]≤1$,
每一个约束条件:$S[R]-S[L-1]≥t$,
最终是要求$S[n]-S[0]$最小是多少,扔进差分约束系统,跑$S[0]$到$S[n]$的最长路即可。
#include <cstdio>
#include <cmath>
#include <set>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std; int T;
int n,m,k;
int dis[2000],f[2000]; int h[2200000];
int to[2200000];
int val[2200000];
int nx[2200000];
int sz; int a[2000]; int cas=1; void add(int a,int b,int c)
{
to[sz] = b;
val[sz] = c;
nx[sz] = h[a];
h[a] = sz++;
} void spfa()
{
for(int i=0;i<=n;i++) dis[i] = -n-1, f[i] = 0; queue<int>Q; Q.push(0); f[0] = 1; dis[0] =0;
while(!Q.empty())
{
int x =Q.front(); Q.pop(); f[x]=0; for(int i=h[x];i!=-1;i = nx[i])
{
int y = to[i], cost = val[i]; if(dis[x] + cost > dis[y])
{
dis[y] = dis[x] + cost;
if(f[y]==0)
{
f[y] = 1;
Q.push(y);
}
}
}
} } int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&m,&k); for(int i=0;i<=n;i++) h[i]=-1, a[i] = 0;
sz=0; for(int i=1;i<=k;i++)
{
int x; scanf("%d",&x); a[x]=1;
} for(int i=1;i<=n;i++)
{
a[i] = a[i]+a[i-1];
add(i,i-1,-1);
} bool fail=0;
for(int i=1;i<=m;i++)
{
int L,R,t; scanf("%d%d%d",&L,&R,&t);
add(L-1,R,t);
if(R-L+1<t) fail=1;
} if(fail)
{
printf("Case %d: %d\n",cas,-1);
cas++;
} else
{
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
add(i-1,j,a[j] - a[i-1]);
}
} spfa();
printf("Case %d: %d\n",cas,dis[n] - a[n]);
cas++;
} }
return 0;
}
EOJ 3263 丽娃河的狼人传说的更多相关文章
- Problem #3263 丽娃河的狼人传说 区间满足灯数,r排序后贪心。
丽娃河的狼人传说 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: megabytes ...
- ECNU 3263 丽娃河的狼人传说(差分约束)
丽娃河的狼人传说 Time limit per test: 1.0 seconds Memory limit: 256 megabytes 丽娃河是华师大著名的风景线.但由于学校财政紧缺,丽娃河边的路 ...
- ECNU 3263 - 丽娃河的狼人传说
一定要纪念一下第一道在比赛中自己做出来的贪心. 题目链接:http://acm.ecnu.edu.cn/problem/3263/ Time limit per test: 1.0 seconds T ...
- ECNU 3263 丽娃河的狼人传说 (贪心)
链接:http://acm.ecnu.edu.cn/problem/3263/ 题意: 从 1 到 n 的一条数轴.有 m 个区间至少要安装一定数量的路灯,路灯只能装在整数点上,有k盏路灯已经安装好 ...
- EOJ3263:丽娃河的狼人传说(贪心)
传送门 题意 分析 考虑将区间按右端点排序,再遍历区间,操作即可 建议以加方式写 trick 1.不需要判区间重合 代码 #include<cstdio> #include<cstr ...
- 超时空英雄传说2复仇魔神完全攻略&秘技
╓─╥───────────────────────────────────────────────────╥─╖ ║ ║ 超 時 空 英 雄 傳 說 2 ║ ║ ║ ║ --復 仇 魔 神-- ║ ...
- [原创]webapp/css3实战,制作一个《炉石传说》宣传页
在移动网页,尤其是webapp中常需要用到大量的css3动画,来获得良好交互体验 我之前帮朋友做了一个,可惜没帮上忙现在和大家分享一下 目标是要做一个<炉石传说>游戏的介绍宣传页面,文字内 ...
- codevs 1021 玛丽卡(spfa)
题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ...
- 狼人杀BETA阶段计划简介
狼人杀beta阶段任务与目标 简介 一.前言 狼人杀alpha阶段终于在组团刷夜中结束了,我们取得了一些成绩,同时也暴露了团队的一些问题.但不管怎样,有了在alpha版本中收获的经验,我们将在beta ...
随机推荐
- 使用EA软件画数据库图表
使用EA软件可以画出数据库的图表并生成SQL语句,非常方便,下面介绍一下步骤 1.先创建一个默认的工程 2.新建一个视图 3.在视图中添加一个图表 4.使用图表工具箱画表 没有出现toolbox的话, ...
- svn工具的使用问题总结
前言: 最近在开发的时候,由于需求太多,开发周期长短不一,从主线上切了多个分支(一般不在主线trunk上开发,万一线上出问题可及时修改代码上线),在部分功能上线后,想把代码同步到新的分支上去,最开始的 ...
- Elasticsearch.Net搜索引擎初使用【客户端安装】
下载windows客户端 官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/net-api/6.x/introduction.ht ...
- CSS进阶知识
html { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } 该属性的作用是 ...
- 【BZOJ】1706: [usaco2007 Nov]relays 奶牛接力跑
[题意]给定m条边的无向图,起点s,终点t,要求找出s到t恰好经过n条边的最短路径.n<=10^6,m<=100. [算法]floyd+矩阵快速幂 [题解] 先对点离散化,得到点数N. 对 ...
- 【BZOJ】3143: [Hnoi2013]游走 期望+高斯消元
[题意]给定n个点m条边的无向连通图,每条路径的代价是其编号大小,每个点等概率往周围走,要求给所有边编号,使得从1到n的期望总分最小(求该总分).n<=500. [算法]期望+高斯消元 [题解] ...
- WebStorm 2016激活
最近在网上找到一个激活webStorm 的好东西.博主说对jetbrains下的所有产品都是可以用这种方式激活的...如:PhpStorm,IntelliJ JDEA等. 但别的产品我没有试过.对于w ...
- 【IDEA】IDEA设置新建文件的模板
今天在IDEA中新建JS文件的时候想着也像WebStorm一样可以显示作者和时间,所以就研究了下在IDEA中修改文件创建时的模板. 点击settings找到File and Code Template ...
- 关于servlet中重定向、转发的地址问题
先写一个正斜杠"/",再判断是服务器使用该地址还是网站使用该地址. 访问网络资源用/,访问硬盘资源用\. 例如: 转发: request.getRequestDispat ...
- Linux内核中的Cache段
Linux内核中的Cache段 原文地址:http://blogold.chinaunix.net/u2/85263/showart_1743693.html 最近移植LEON3的内核时,了解了一些简 ...