【BZOJ2300】【SCOI2011】糖果
差点就忘了还有差分约束这个东西……看见了就要学习一个
原题:
幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww需要满足小朋友们的K个要求。幼儿园的糖果总是有限的,lxhgww想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。
N<=100000,K<=100000,1<=A, B<=N
差分约束模板题,学习一个!
以操作3为例,如果a不少于b,那么a-b>=0,a>=b+0
所以连b到a权值为0的边,根据三角形不等式,要跑最长路来使条件满足
具体原理我也想不太清楚,反正记住搞出三角形不等式后跑符号相反的spfa就对了 _(:3 」∠)_
因为写出了像"q[tl]=false"酱sb的东西+没对拍所以没1A……
注意longlong
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int rd(){int z=,mk=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-')mk=-; ch=getchar();}
while(ch>=''&&ch<=''){z=(z<<)+(z<<)+ch-''; ch=getchar();}
return z*mk;
}
struct ddd{int nxt,y,v;}e[]; int lk[],ltp=;
inline void ist(int x,int y,int z){ e[++ltp].nxt=lk[x],lk[x]=ltp,e[ltp].y=y,e[ltp].v=z;}
int n,m;
int dstc[],cnt[];
int q[],hd=,tl=,tp=; bool vstd[];
bool spfa(){
memset(vstd,,sizeof(vstd));
//memset(dstc,0,sizeof(dstc));
for(int i=;i<=n;++i) q[++hd]=i,dstc[i]=;
while(tl!=hd){
tl=(tl==tp ? : tl+);
for(int i=lk[q[tl]];i;i=e[i].nxt)if(dstc[q[tl]]+e[i].v>dstc[e[i].y]){
dstc[e[i].y]=dstc[q[tl]]+e[i].v;
if(++cnt[e[i].y]==n) return false;
if(!vstd[e[i].y]) q[hd=(hd==tp ? : hd+)]=e[i].y,vstd[e[i].y]=true;
}
vstd[q[tl]]=false;
}
return true;
}
int main(){//freopen("ddd.in","r",stdin);
cin>>n>>m;
int mk,l,r;
while(m--){
mk=rd(),l=rd(),r=rd();
if(mk==) ist(l,r,),ist(r,l,);
else if(mk==){
if(l==r){ cout<<-<<endl; return ;}
ist(l,r,);
}
else if(mk==) ist(r,l,);
else if(mk==){
if(l==r){ cout<<-<<endl; return ;}
ist(r,l,);
}
else if(mk==) ist(l,r,);
}
if(!spfa()){ cout<<-<<endl; return ;}
long long ans=;
for(int i=;i<=n;++i) ans+=dstc[i];
cout<<ans<<endl;
return ;
}
【BZOJ2300】【SCOI2011】糖果的更多相关文章
- bzoj2330: [SCOI2011]糖果
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MB Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友 ...
- BZOJ 2330: [SCOI2011]糖果 [差分约束系统] 【学习笔记】
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 5395 Solved: 1750[Submit][Status ...
- bzoj 2330 [SCOI2011]糖果(差分约束系统)
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3574 Solved: 1077[Submit][Status ...
- BZOJ 2330: [SCOI2011]糖果( 差分约束 )
坑爹...要求最小值要转成最长路来做.... 小于关系要转化一下 , A < B -> A <= B - 1 ------------------------------------ ...
- [luogu P3275] [SCOI2011]糖果
[luogu P3275] [SCOI2011]糖果 题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些 ...
- P3275 [SCOI2011]糖果 && 差分约束(二)
学习完了差分约束是否有解, 现在我们学习求解最大解和最小解 首先我们回想一下是否有解的求解过程, 不难发现最后跑出来任意两点的最短路关系即为这两元素的最短路关系. 即: 最后的最短路蕴含了所有元素之间 ...
- [Luogu 3275] SCOI2011 糖果
[Luogu 3275] SCOI2011 糖果 第一道差分约束.感谢 AZe. 我的理解是根据一些不等关系建一个图,在图上边跑一个最长路(有时候是最短路). 因为可能存在负环,所以必须用 SPFA! ...
- BZOJ 2330 SCOI2011糖果 差分约束
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2819 Solved: 820 题目连接 http://www ...
- BZOJ2330 SCOI2011 糖果 【差分约束】
BZOJ2330 SCOI2011 糖果 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一 ...
- 【bzoj2330】: [SCOI2011]糖果 图论-差分约束-SPFA
[bzoj2330]: [SCOI2011]糖果 恩..就是裸的差分约束.. x=1 -> (A,B,0) (B,A,0) x=2 -> (A,B,1) [这个情况加个A==B无解的要特 ...
随机推荐
- day24-python操作数据库四
#!/usr/bin/env python # -*- coding:utf-8 -*- # @time: 2017/11/23 23:10 # Author: caicai # @File: dem ...
- day19 反射
今日所学 : 1. isinstance , type , issubclass 2.如何区分方法和函数(代码) 3.反射(重要) 1. isinstance ,type ,issubclass is ...
- TTL反相器的外部特性
TTL反相器的外部特性 电压传输特性 输入端噪声容限特性 静态输入特性: 静态输出特性: 动态特性: 传输延迟时间:是由晶体管的延迟时间,电阻以及寄生电容元素引起的.包括俩部分:输入由低电平跳为高电平 ...
- box-shadow 边框阴影
box-shadow: 0 0 20px #000 inset;
- div 内 图片 垂直居中
vertical-align属性适用于 line-block: <div class="title"> <img src="img_p1_title.p ...
- jquery 将一组元素转换成数组
HTML 代码: <p><b>Values: </b></p> <form> <input type="text" ...
- DevExpress v18.1新版亮点——DevExtreme篇(三)
用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExtreme JavaScript Controls v18.1 的新功能 ...
- Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域
Spring实现Ioc的多种方式 一.IoC基础 1.1.概念: 1.IoC 控制反转(Inversion of Control) IoC是一种设计思想. 2.DI 依赖注入 依赖注入是实现IoC的一 ...
- spring4全注解web项目demo
记得没接触框架的时候,写demo测试时真的很爽,新建web项目,然后随便写写servlet随便调试 框架越来越多,配置记不得了,整合容易出问题,集成新东西越来越少了,不敢动了. 这是个spring4的 ...
- Mvc Api 自定义路由
// [RoutePrefix("api/ssm")]// public class ValuesController : ApiController// {// ///<s ...