bzoj 2330 SCOI2011糖果 查分约束系统
就根据题目中给的约束条件建图就行了
需要注意的是,我们要做的是最长路,因为需要约束每个点都是大于0
那么可以建一个超级源指向所有点,超级源的dis是1,边长为0
那么这样做最长路就可以了
好了我们这么写完了,之后发现re了,然后改大了点数组发现tle了。。。。
然后我也不知道怎么改,超级源连接所有点的时候,是for i:=1 to n do 的,这
样建完图之后,再做spfa相当于直接将n-1的点放入队列中,然后我改了下
连接的时候for i:=n downto 1 do 那么相当于将1-n放入队列中,然后这样就A了,
但是内存太大(之前RE开的),后来干脆把超级源去掉,直接将1-n放入队列,就可以直接A了
PS:最后的ans要用int64也就是longlong存,因为人太多了是吧。。。。
内个大神能告诉我下为啥1-n放入队列就行,n-1就不行,求教。。。orz
/**************************************************************
Problem:
User: BLADEVIL
Language: Pascal
Result: Accepted
Time: ms
Memory: kb
****************************************************************/ //By BLADEVIL
var
n, k :longint;
pre, other, len :array[..] of longint;
last :array[..] of longint;
l :longint;
que :array[..] of longint;
dis :array[..] of longint;
flag :array[..] of boolean;
count :array[..] of longint; procedure connect(x,y,z:longint);
begin
inc(l);
pre[l]:=last[x];
last[x]:=l;
other[l]:=y;
len[l]:=z;
end; procedure init;
var
i :longint;
x, a, b :longint;
begin
read(n,k);
for i:= to k do
begin
read(x,a,b);
if(not odd(x)) and (a=b) then
begin
writeln(-);
halt;
end;
case x of
:
begin
connect(a,b,);
connect(b,a,);
end;
:connect(a,b,);
:connect(b,a,);
:connect(b,a,);
:connect(a,b,);
end;
end;
end; procedure main;
var
h, t :longint;
q, p :longint;
cur :longint;
ans :int64;
i :longint; begin
fillchar(count,sizeof(count),);
h:=; t:=n;
for i:= to n do
begin
que[i]:=i;
flag[i]:=true;
dis[i]:=;
end;
while h<>t do
begin
h:=h mod +;
cur:=que[h];
flag[cur]:=false;
q:=last[cur];
while q<> do
begin
p:=other[q];
if dis[cur]+len[q]>dis[p] then
begin
dis[p]:=dis[cur]+len[q];
if not flag[p] then
begin
inc(count[p]);
if count[p]>n then
begin
writeln(-);
exit;
end;
t:=t mod +;
que[t]:=p;
flag[p]:=true;
end;
end;
q:=pre[q];
end;
end;
ans:=;
for i:= to n do ans:=ans+dis[i];
writeln(ans);
end; begin
init;
main;
end.
bzoj 2330 SCOI2011糖果 查分约束系统的更多相关文章
- bzoj 2330 [SCOI2011]糖果(差分约束系统)
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3574 Solved: 1077[Submit][Status ...
- BZOJ 2330: [SCOI2011]糖果 [差分约束系统] 【学习笔记】
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 5395 Solved: 1750[Submit][Status ...
- BZOJ 2330: [SCOI2011]糖果( 差分约束 )
坑爹...要求最小值要转成最长路来做.... 小于关系要转化一下 , A < B -> A <= B - 1 ------------------------------------ ...
- BZOJ 2330 SCOI2011糖果 差分约束
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2819 Solved: 820 题目连接 http://www ...
- BZOJ 2330 [SCOI2011]糖果 ——差分约束系统 SPFA
最小值求最长路. 最大值求最短路. 发现每个约束条件可以转化为一条边,表示一个点到另外一个点至少要加上一个定值. 限定了每一个值得取值下界,然后最长路求出答案即可. 差分约束系统,感觉上更像是两个变量 ...
- bzoj 2330 [SCOI2011]糖果 差分约束模板
题目大意 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配 ...
- 洛谷 P3275 BZOJ 2330 [SCOI2011]糖果
题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配 ...
- bzoj 2330: [SCOI2011]糖果
#include<cstdio> #include<iostream> using namespace std; ],next[],u[],v[],h,t,a[]; ],f[] ...
- POJ2983 查分约束系统
题意: 给你n个点,然后给你两种情况,P a b c,表明a在b的北边c那么远,V a b 表明a在b的北边(距离最少是1),问你这些条件是否冲突. 思路: 一开始想用带权并 ...
随机推荐
- jmeter完成CAS登录,并获取token(原创)
思路: 1.系统完成CAS登录需要验证用户名/密码,以及动态授权参数 2.先通过指定url用正则提取出动态授权参数 3.完成登录需要cookie,需用正则提取出对应的cookie,已完成参数化的自动登 ...
- 今日Linux
一.复习了vi 三个模式下的一些操作.贴上一些比较常用,个人觉得比较难记的操作.1.一般模式:h 光标向左移动一个字符j 光标向下移动一个字符K 光标向上移动一个字符l 光标向右移动一个 ...
- 关于2018年东南大学Robomaster算法组工作的总结
笔者在写作时,为东南大学机器人俱乐部下Robomaster大赛SUPER NOVA战队算法组的负责人之一(这名字写起来好长).而SUPER NOVA战队则于2018年5月19日正式结束了中部分区赛,获 ...
- Python 3 学习笔记之——错误和异常
1. 语法错误 Python 的语法错误被称为解析错,语法分析器会指出出错的代码行,并且在最先找到的错误的位置标记一个小小的箭头. >>> while True File " ...
- pandas DataFrame的修改方法
pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...
- Z.XML-Cocos2d-x开发笔记
大家都在热火朝天的使用Cocos2d-x引擎做游戏开发,那么大家不妨把过程中解决的关键问题记录在这里,做一个分享! 1.在Android平台下打开网页 1.1修改项目工程源文件 在你的项目工程源文件中 ...
- get? post? put? delete? head? trace? options? http请求方法
http1.1协议里面定义了八种请求方法: get:用作获取,读取数据 post:向指定的资源提交数据 put:更新,向指定的资源上传一个内容,比如说:更新一个用户的头像或者替换掉已有的一个视频 de ...
- lintcode-79-最长公共子串
79-最长公共子串 给出两个字符串,找到最长公共子串,并返回其长度. 注意事项 子串的字符应该连续的出现在原字符串中,这与子序列有所不同. 样例 给出A="ABCD",B=&quo ...
- zuoyebiji
- scrapy使用记录
1 进入pip安装目录 python -m pip install --upgrade pip pip install Scrapy 2. 创建一个项目 scrapy startproject tes ...