2330: [SCOI2011]糖果
来源:互联网 发布:国内erp软件 编辑:程序博客网 时间:2024/05/15 04:41
差分约束系统。
特殊数据害人不浅。。。。。。。。
Spfa可能TLE,最好用Dijkstra。
#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;struct Edge{int to,next,v;}e[400005];int head[100005],d[100005],cnt[100005],edge,n,k;bool inq[100005];void ins(int u,int v,int w){edge++;e[edge].to=v;e[edge].next=head[u];e[edge].v=w;head[u]=edge;}bool spfa(int s){queue<int>q;q.push(s);inq[s]=true;cnt[s]=1;while(!q.empty()){int u=q.front();q.pop();inq[u]=false;for(int i=head[u];i;i=e[i].next)if(d[e[i].to]<d[u]+e[i].v){d[e[i].to]=d[u]+e[i].v;if(++cnt[e[i].to]>=n)return true;if(!inq[e[i].to]){inq[e[i].to]=true;q.push(e[i].to);}}}return false;}bool init(){scanf("%d%d",&n,&k);int x,a,b;for(int i=1;i<=k;i++){scanf("%d%d%d",&x,&a,&b);switch(x){case 1:ins(a,b,0);ins(b,a,0);break;case 2:if(a==b)return false;ins(a,b,1);break;case 3:ins(b,a,0);break;case 4:if(a==b)return false;ins(b,a,1);break;case 5:ins(a,b,0);break;}}return true;}int main(){if(!init()){printf("-1");return 0;}int S=n+1;for(int i=n;i>=1;i--)ins(S,i,1);if(spfa(S)){printf("-1");return 0;}long long ans=0;for(int i=1;i<=n;i++)ans+=d[i];printf("%lld",ans);return 0;}
0 0
- BZOJ 2330: [SCOI2011]糖果
- 2330: [SCOI2011]糖果
- BZOJ 2330 [SCOI2011]糖果
- 2330: [SCOI2011]糖果
- BZOJ 2330: [SCOI2011]糖果
- BZOJ 2330: [SCOI2011]糖果
- BZOJ 2330: [SCOI2011]糖果
- 2330: [SCOI2011]糖果
- BZOJ 2330[SCOI2011]糖果
- BZOJ 2330 [SCOI2011]糖果
- [scoi2011]糖果
- SCOI2011 糖果
- [SCOI2011] 糖果
- [SCOI2011]糖果
- [SCOI2011]糖果
- BZOJ 2330 SCOI2011 糖果 差分约束
- 【差分约束】BZOJ 2330: [SCOI2011]糖果
- 【bzoj 2330】[SCOI2011]糖果 差分约束
- 详细解析oracle中left join,right join,inner join用法
- JS获取select属性值
- #pragma 预处理指令详解
- unset
- 【adb】如何在Android模拟器下添加busybox?
- 2330: [SCOI2011]糖果
- Touch事件分发机制
- ARP 协议
- 安装Perl模块SVN::Notify报错:ERRORS/WARNINGS FOUND IN PREREQUISITES.
- QT工程pro设置实践(with QtCreator)
- 初始化NSDate为指定时间(Initialize a NSDate object with a specific time)
- .net android base64加解密
- 软件设计六大原则
- 解决json_encode中文UNICODE转码问题