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 很显然可以差分约束建图.这里问的是变量最多有多少种不同的取值. 我们知道,在同一个强连通分 ...
随机推荐
- android开发,assets下面的资源文件不会变化/改动
我再调试asserts下面的资源文件,发现我改动assets下面的文件内容,在真机上测试的时候还是最原先的内容,没有变,后来,卸载,重装就ok了. 原因: assets下面的资源文件,若覆盖重装,则里 ...
- MapInfo格式转arggis格式
1. 下载MapInfo 11.0 2. 打开工具里的转换工具 3. 选择数据源和结果文件夹(目录中不能包含中文) 4. 转换成功.
- 多线程学习之AsyncOperation实现线程间交互
1.首先我们要实现如下图的效果: a.主线程A运行方法段1时创建子线程B b.然后子线 ...
- 有关javascript中的JSON.parse和JSON.stringify的使用一二
有没有想过,当我们的大后台只是扮演一个数据库的角色,json在前后台的数据交换中扮演极其重要的角色时,作为依托node的前端开发,其实相当多的时间都是在处理数据,准确地说就是在处理逻辑和数据(这周实习 ...
- uva 12086 树状数组
树状数组 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> #i ...
- Guava文档翻译之 Guava简介
用户指南 User Guide Guava项目包括了一些Google的核心库,是我们在基于Java的项目中所依赖的,这些库包括:集合,缓存,对基本类型的支持,并发库,通用的注解,字符串处理,I/O,等 ...
- Asp.net MVC 自定义路由在IIS7以上,提示Page Not Found 解决方法
受限确保自定义路由在开发服务器上Ok! 然后在web.config的<webserver>节点下增加如下配置就好了. 1: <system.webServer> 2: &l ...
- 管理Java垃圾回收的五个建议
[编者按]本文作者是Niv Steingarten,是Takipi 的联合创始人,热衷于编写优雅简洁的代码.作者通过对垃圾收集器的介绍和梳理,在管理垃圾回收方面提出了五个建议,降低收集器开销,帮助大家 ...
- windows service 安装和卸载指令
添加服务: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319InstallUtil.exe D:\OneKeyWebSiteDeployment\Ser ...
- eclipse 或MyEclipse将工程进行移动的时候会对@Override报错的处理方法
有时候导入javaSE,javaEE,android 工程的时候,明明是刚刚用过的没有问题的工程,但重新导入的时候就报错. 提示The method ... must override a sperc ...