洛谷P3275 [SCOI2011]糖果_差分约束_判负环
2024-09-07 05:57:47
Code:
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
const int N=300000+3;
const int INF=-2333233;
queue<int>Q;
int d[N],inq[N],times[N];
int head[N],to[N<<1],val[N<<1],nex[N<<1];
int cnt,n,s,k;
void add_edge(int u,int v,int c)
{
nex[++cnt]=head[u],head[u]=cnt;
to[cnt]=v,val[cnt]=c;
}
int spfa()
{
for(int i=1;i<=n;++i)
d[i]=INF;
d[s]=0,inq[s]=1;Q.push(s);
while(!Q.empty())
{
int u=Q.front();Q.pop();inq[u]=0;
++times[u];
if(times[u]>=n)return 0;
for(int v=head[u];v;v=nex[v])
if(d[to[v]]<d[u]+val[v])
{
d[to[v]]=d[u]+val[v];
if(!inq[to[v]])
{
inq[to[v]]=1;
Q.push(to[v]);
}
}
}
return 1;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=k;++i)
{
int Ty,a,b;
scanf("%d%d%d",&Ty,&a,&b);
if(Ty==1){
add_edge(b,a,0);
add_edge(a,b,0);
}
if(Ty==2)
add_edge(a,b,1);
if(Ty==3)
add_edge(b,a,0);
if(Ty==4)
add_edge(b,a,1);
if(Ty==5)
add_edge(a,b,0);
if(Ty%2==0&&a==b)
{
printf("-1");return 0;
}
}
s=0;
for(int i=n;i>=1;--i)add_edge(s,i,1);
if(!spfa())
{
printf("-1");return 0;
}
long long ans=0;
for(int i=1;i<=n;++i)ans+=d[i];
printf("%lld",ans);
return 0;
}
最新文章
- 将string转换成char* (转)
- hdu 2256 Problem of Precision 构造整数 + 矩阵快速幂
- BZOJ_1084_[SCOI2005]_最大子矩阵_(动态规划)
- Android SDK三种更新失败及其解决方法
- PHP平台CMS系统Drupal小试身手----安装教程
- MySQL一对一:一对多:多对多: 实例!!!!
- 减小APK大小
- JAVA之旅(九)——Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类
- 《Exception团队》第二次作业:团队项目选题报告
- 【Unity】透明度渐变
- Moving or disabling the package cache for Visual Studio 2017
- 如何制作微信动态表情包 GIF制作工具哪个好
- 将Maven项目打包成可执行jar文件(引用第三方jar)
- all to do list
- Effective Java 第三版—— 86. 非常谨慎地实现SERIALIZABLE接口
- #5【BZOJ4275】[ONTAK2015]Badania
- python的索引问题
- pycharm显示Unresolved reference
- 【SPOJ METEORS】 Meteors
- xpath的常见操作
热门文章
- Official Documents
- 0613pt-query-digest分析慢查询日志
- [MySQLCPU]线上飙升800%,load达到12的解决过程
- Java中最小的整数为什么是-2147483648
- ant整合junit自己主动化測试
- Android-68-Tomcat各种启动错误的解决的方法,如:Exception in thread &;quot;Thread-6&;quot; NoClassDefFoundError,Document base E:\
- Fitnesse中的symbols和variables
- Highcharts构建空饼图
- 一张游览PHP内核迷宫的藏宝图
- tensorflow利用预训练模型进行目标检测(四):检测中的精度问题以及evaluation