题意:

建议Alt+F4百度一下

题解:

差分约束+线段树优化建图,直接按照拓扑序跑就行了

代码:

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#define DCSB {printf("NIE");exit(0);}
using namespace std;
struct node{
int ls,rs,v;
}t[];
struct edge{
int v,w,next;
}a[];
int n,m,s,l,r,k,u,v,x,cnt=,rt,tot=,q[],head[],num[],f[],in[];
void add(int u,int v,int w){
a[++tot].v=v;
a[tot].w=w;
a[tot].next=head[u];
head[u]=tot;
in[v]++;
}
void build(int &u,int l,int r){
u=++cnt;
if(l==r){
t[l].v=u;
return;
}
int mid=(l+r)/;
build(t[u].ls,l,mid);
build(t[u].rs,mid+,r);
add(t[u].ls,u,);
add(t[u].rs,u,);
}
void updata(int u,int l,int r,int L,int R,int v){
if(l==L&&r==R){
add(u,cnt,v);
return;
}
int mid=(l+r)/;
if(R<=mid)updata(t[u].ls,l,mid,L,R,v);
else if(L>mid)updata(t[u].rs,mid+,r,L,R,v);
else{
updata(t[u].ls,l,mid,L,mid,v);
updata(t[u].rs,mid+,r,mid+,R,v);
}
}
void topsort(){
int l=,r=;
for(int i=;i<=cnt;i++){
if(!in[i]){
q[++r]=i;
f[i]=;
}
}
while(l<r){
int u=q[++l];
if(f[u]>)DCSB
if(f[u]>num[u]&&num[u]!=)DCSB
f[u]=max(f[u],num[u]);
for(int tmp=head[u];tmp!=-;tmp=a[tmp].next){
int v=a[tmp].v;
in[v]--;
if(!in[v])q[++r]=v;
f[v]=max(f[v],f[u]+a[tmp].w);
}
}
if(r<cnt)DCSB
}
int main(){
memset(head,-,sizeof(head));
scanf("%d%d%d",&n,&s,&m);
build(rt,,n);
for(int i=;i<=s;i++){
scanf("%d%d",&u,&v);
num[t[u].v]=v;
}
for(int i=;i<=m;i++){
scanf("%d%d%d",&l,&r,&k);
l--,cnt++;
for(int j=;j<=k;j++){
scanf("%d",&x);
add(cnt,t[x].v,);
if(l+<x)updata(rt,,n,l+,x-,);
l=x;
}
if(x<r)updata(rt,,n,x+,r,);
}
topsort();
printf("TAK\n");
for(int i=;i<=n;i++)printf("%d ",f[t[i].v]);
return ;
}

【BZOJ4383】[POI2015]pustynia的更多相关文章

  1. 【BZOJ4383】[POI2015]Pustynia 线段树优化建图

    [BZOJ4383][POI2015]Pustynia Description 给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r ...

  2. 【bzoj4383】[POI2015]Pustynia 线段树优化建图+差分约束系统+拓扑排序

    题目描述 给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数,表示a[l],a[l+1],...,a[r- ...

  3. 【BZOJ4379】[POI2015]Modernizacja autostrady 树形DP

    [BZOJ4379][POI2015]Modernizacja autostrady Description 给定一棵无根树,边权都是1,请去掉一条边并加上一条新边,定义直径为最远的两个点的距离,请输 ...

  4. 【BZOJ4380】[POI2015]Myjnie 区间DP

    [BZOJ4380][POI2015]Myjnie Description 有n家洗车店从左往右排成一排,每家店都有一个正整数价格p[i].有m个人要来消费,第i个人会驶过第a[i]个开始一直到第b[ ...

  5. 【BZOJ4382】[POI2015]Podział naszyjnika 堆+并查集+树状数组

    [BZOJ4382][POI2015]Podział naszyjnika Description 长度为n的一串项链,每颗珠子是k种颜色之一. 第i颗与第i-1,i+1颗珠子相邻,第n颗与第1颗也相 ...

  6. 【BZOJ4384】[POI2015]Trzy wieże 树状数组

    [BZOJ4384][POI2015]Trzy wieże Description 给定一个长度为n的仅包含'B'.'C'.'S'三种字符的字符串,请找到最长的一段连续子串,使得这一段要么只有一种字符 ...

  7. 【BZOJ4378】[POI2015]Logistyka 树状数组

    [BZOJ4378][POI2015]Logistyka Description 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这 ...

  8. 【BZOJ4385】[POI2015]Wilcze doły 单调栈+双指针法

    [BZOJ4385][POI2015]Wilcze doły Description 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段 ...

  9. 【BZOJ3747】[POI2015]Kinoman 线段树

    [BZOJ3747][POI2015]Kinoman Description 共有m部电影,编号为1~m,第i部电影的好看值为w[i]. 在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第 ...

随机推荐

  1. C/C++中的函数指针

    C/C++中的函数指针 一.引子 今天无聊刷了leetcode上的一道题,如下: Median is the middle value in an ordered integer list. If t ...

  2. 人人都是产品经理?关于PM你不知道的还有很多

    产品经理的职称最早出现在P&G宝洁公司,因效果非常显著,许多企业纷纷仿而效尤.硅谷知名的产品管理大师Marty Cagan在<Inspired: How To Create Produc ...

  3. Stack Overflow大揭密:哪一种程序员工资最高?

    Stackoverflow在程序员之间可以說是无人不知无人不晓,甚至常有人开玩笑说:“如果stackoverflow倒闭了,全世界代码的产出率将下降一半以上”或许听起来有点夸张,但是不难想像这个网站在 ...

  4. 21_HTML&CSS

    今日内容: 1. HTML标签:表单标签​2. CSS: HTML标签:表单标签 * 表单: * 概念:用于采集用户输入的数据的.用于和服务器进行交互. * form:用于定义表单的.可以定义一个范围 ...

  5. Python 爬歌曲

    Python 爬歌曲 小练习 import re import time import requests # http://www.htqyy,com/top/hot # http://f2.htqy ...

  6. Django配置MariaDB数据库

    Django中配置MariaDB数据库.配置文件如下: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': ...

  7. TensorFlow+实战Google深度学习框架学习笔记(5)----神经网络训练步骤

    一.TensorFlow实战Google深度学习框架学习 1.步骤: 1.定义神经网络的结构和前向传播的输出结果. 2.定义损失函数以及选择反向传播优化的算法. 3.生成会话(session)并且在训 ...

  8. BZOJ 1176/2683 Mokia (三维偏序CDQ+树状数组)

    题目大意: 洛谷传送门 三维偏序裸题.. 每次操作都看成一个三元组$<x,y,t>$,表示$x,y$坐标和操作时间$t $ 询问操作拆成$4$个容斥 接下来就是$CDQ$了,外层按t排序, ...

  9. BZOJ 1009 [HNOI2008]GT考试 (KMP+矩阵乘法)

    ---恢复内容开始--- 题目大意:给定一个由数字构成的字符串A(len<=20),让你选择一个长度为n(n是给定的)字符串X,一个合法的字符串X被定义为,字符串X中不存在任何一段子串与A完全相 ...

  10. angular-Scope

    Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope 可应用在视图和控制器上. 当你在 Ang ...