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;
}
 

最新文章

  1. 将string转换成char* (转)
  2. hdu 2256 Problem of Precision 构造整数 + 矩阵快速幂
  3. BZOJ_1084_[SCOI2005]_最大子矩阵_(动态规划)
  4. Android SDK三种更新失败及其解决方法
  5. PHP平台CMS系统Drupal小试身手----安装教程
  6. MySQL一对一:一对多:多对多: 实例!!!!
  7. 减小APK大小
  8. JAVA之旅(九)——Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类
  9. 《Exception团队》第二次作业:团队项目选题报告
  10. 【Unity】透明度渐变
  11. Moving or disabling the package cache for Visual Studio 2017
  12. 如何制作微信动态表情包 GIF制作工具哪个好
  13. 将Maven项目打包成可执行jar文件(引用第三方jar)
  14. all to do list
  15. Effective Java 第三版—— 86. 非常谨慎地实现SERIALIZABLE接口
  16. #5【BZOJ4275】[ONTAK2015]Badania
  17. python的索引问题
  18. pycharm显示Unresolved reference
  19. 【SPOJ METEORS】 Meteors
  20. xpath的常见操作

热门文章

  1. Official Documents
  2. 0613pt-query-digest分析慢查询日志
  3. [MySQLCPU]线上飙升800%,load达到12的解决过程
  4. Java中最小的整数为什么是-2147483648
  5. ant整合junit自己主动化測试
  6. Android-68-Tomcat各种启动错误的解决的方法,如:Exception in thread &amp;quot;Thread-6&amp;quot; NoClassDefFoundError,Document base E:\
  7. Fitnesse中的symbols和variables
  8. Highcharts构建空饼图
  9. 一张游览PHP内核迷宫的藏宝图
  10. tensorflow利用预训练模型进行目标检测(四):检测中的精度问题以及evaluation