bzoj2788
明显是一个差分约束系统
对于第一种限制,其实就是x[a]+1<=x[b] x[b]-1<=x[a]
根据三角不等式很容易建图
但这题他比较奇怪,问的是X最多不同取值的个数
根据这张图的特殊性我们不难发现,两个强联通分量内X的取值种类是互不干涉的
也就是说我们可以分别统计每个强联通分量然后累计即可
为什么这样呢?观察这个限制,两个强联通分量之间只可能存在第二种限制的单向边,xc<=xd 显然xc,xd可以取不同取值
怎么统计强联通分量内的答案呢?
首先对于差分约束系统的可行解是最长路,每块的答案就是点与点之间距离绝对值的最大值
注意无解就是存在正环
const inf=;
type node=record
po,next:longint;
end; var e:array[..] of node;
st,q,p,dfn,low:array[..] of longint;
d:array[..,..] of longint;
v,f:array[..] of boolean;
h,s,ans,x,y,len,j,t,i,n,m1,m2:longint; procedure max(var a:longint;b:longint);
begin
if b>a then a:=b;
end; function min(a,b:longint):longint;
begin
if a>b then exit(b) else exit(a);
end; procedure add(x,y:longint);
begin
inc(len);
e[len].po:=y;
e[len].next:=p[x];
p[x]:=len;
end; procedure floyd;
var i,j,k:longint;
begin
for k:= to s do
for i:= to s do
if d[q[i],q[k]]>-inf then
for j:= to s do
if d[q[k],q[j]]>-inf then
max(d[q[i],q[j]],d[q[i],q[k]]+d[q[k],q[j]]);
for i:= to s do
if d[q[i],q[i]]> then
begin
writeln('NIE');
halt;
end; k:=;
for i:= to s do
for j:= to s do
if d[q[i],q[j]]>-inf then max(k,abs(d[q[i],q[j]]));
ans:=ans+k+;
end; procedure dfs(x:longint);
var i,y:longint;
begin
inc(h);
dfn[x]:=h;
low[x]:=h;
v[x]:=true;
inc(t);
st[t]:=x;
f[x]:=true;
i:=p[x];
while i<> do
begin
y:=e[i].po;
if not v[y] then
begin
dfs(y);
low[x]:=min(low[x],low[y]);
end
else if f[y] then low[x]:=min(low[x],low[y]);
i:=e[i].next;
end;
if dfn[x]=low[x] then
begin
s:=;
while st[t+]<>x do
begin
inc(s);
q[s]:=st[t];
f[st[t]]:=false;
dec(t);
end;
floyd;
end;
end; begin
readln(n,m1,m2);
for i:= to n do
for j:= to n do
if i<>j then d[i,j]:=-inf;
for i:= to m1 do
begin
readln(x,y);
add(x,y);
add(y,x);
max(d[x,y],);
max(d[y,x],-);
end;
for i:= to m2 do
begin
readln(x,y);
add(x,y);
max(d[x,y],);
end;
for i:= to n do
if not v[i] then
begin
h:=;
t:=;
dfs(i);
end; writeln(ans);
end.
bzoj2788的更多相关文章
- 【bzoj2788】Festival
Portal --> bzoj2788 Description 有\(n\)个正整数\(X_1,X_2,...,X_n\),再给出\(m1+m2\)个限制条件,限制分为两类: 1.给出\(a,b ...
- [BZOJ2788][Poi2012]Festival
2788: [Poi2012]Festival Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 187 Solved: 91[Submit][Statu ...
- POI2012题解
POI2012题解 这次的完整的\(17\)道题哟. [BZOJ2788][Poi2012]Festival 很显然可以差分约束建图.这里问的是变量最多有多少种不同的取值. 我们知道,在同一个强连通分 ...
随机推荐
- Week1 Team Homework #2 Introduction of team member with photos
小组成员介绍 组长:黄剑锟 11061164 组员:顾泽鹏 11061160 组员:周辰光 11061154 组员:龚少波 11061167 组 ...
- C# ASP .NET WEB方向和WPF方向,我该如何去选择
一个2012年南航毕业学软件的学生,该如何去选择我的职业方向? 2011年11分月份,我被老师介绍在南京珠江路华丽国际大厦工作,开发一个大型国际物流平台,公司的开发人员比较少,设计网站的是高校的老师, ...
- SQL Server数据库事务日志序列号(LSN)介绍
原文:http://blog.csdn.net/tjvictor/article/details/5251463 日志序列编号(LSN)是事务日志里面每条记录的编号. 当你执行一次备份时,一些 ...
- java mail实现Email的发送,完整代码
java mail实现Email的发送,完整代码 1.对应用程序配置邮件会话 首先, 导入jar <dependencies> <dependency> <groupId ...
- UVA 10720 Graph Construction 贪心+优先队列
题目链接: 题目 Graph Construction Time limit: 3.000 seconds 问题描述 Graph is a collection of edges E and vert ...
- js--eval函数
前言: js的eval函数很牛叉,用了几次--不过都没有记录.试想:如果没有EXT.JQery,怎样将json字符串转换为对象呢? 示例: 定义2个字符串变量s1.s2.其中s1表示一个对象:s2表示 ...
- phonegap file操作
phonegap中,有时候需要操作到手机中的文件,这个时候就需要用到phonegap官方提供的插件 file ,英文好的可以直接参考官方文档 首先是安装插件:(需要phonegap 3.0 以上,不止 ...
- Synchronized Methods
Synchronized Methods The Java programming language provides two basic synchronization idioms: synchr ...
- lintcode :最长单词
题目: 最长单词 给一个词典,找出其中所有最长的单词. 样例 在词典 { "dog", "google", "facebook", &quo ...
- linux 线程的内核栈是独立的还是共享父进程的?
需要考证 考证结果: 其内核栈是独立的 206 static struct task_struct *dup_task_struct(struct task_struct *orig) 207 { 2 ...