HDU 4309 Seikimatsu Occult Tonneru(网络流+枚举状态)
来源:互联网 发布:dota2多核优化启动项 编辑:程序博客网 时间:2024/05/23 13:06
由于桥最多只有12个,所以可以直接枚举修理那个桥,注意不修理的桥可以通过一个人,而且注意图中的边有方向,对于隧道,只可以其他点到隧道起始点再到隧道,所以可以从起始点向汇点连一条流量为容量的边,而其他边只需要连容量为无穷的边,然后最大流一下。
Online JudgeOnline ExerciseOnline TeachingOnline ContestsExercise AuthorF.A.QHand In HandOnline AcmersForum | DiscussStatistical ChartsProblem ArchiveRealtime Judge StatusAuthors Ranklist C/C++/Java Exams ACM StepsGo to JobContest LiveCastICPC@ChinaSTD Contests VIP Contests Virtual Contests DIY | Web-DIY betaRecent ContestsAuthor 宦成颖Mail Mail 0(0)Control Panel Control Panel Sign Out Sign Out7月22-8月21多校联合训练期间,会根据实际负载关闭部分模块,若有不便,请谅解~View CodeProblem : 4309 ( Seikimatsu Occult Tonneru ) Judge Status : AcceptedRunId : 11003913 Language : C++ Author : huanzhizun888Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta#include<iostream>#include<stdio.h>#include<memory.h>#include<cmath>#include<algorithm>using namespace std;#define MAXN 230#define MAXE 10010#define INF 1e9int tmp,source,des,cnt;int n,m;int x[MAXN];struct Edge{ int from, to; int next,cap;}edge[MAXE];struct pi{ int no; int to; int cos;}pp[30];struct ppi{ int no; int to; int val; int d;}pp1[1001];int head[MAXN];int gap[MAXN],dep[MAXN],cur[MAXN], stack[MAXN], top;int ISAP(){ int cur_fLow,max_fLow,u,insert,i; memset(dep,0,sizeof(dep)); memset(gap,0,sizeof(gap)); memcpy(cur, head, n); max_fLow = 0; u = source; top = 0; while(dep[source] < n) { if(u == des) { cur_fLow = INF; for(i = 0; i < top; ++i) { if(cur_fLow > edge[stack[i]].cap) { insert = i; cur_fLow = edge[stack[i]].cap; } } for(i = 0; i < top; ++i) { edge[stack[i]].cap -= cur_fLow; edge[stack[i]^1].cap += cur_fLow; } max_fLow += cur_fLow; u = edge[ stack[top = insert]].from; } for(i = cur[u]; i != -1; i = edge[i].next) if((edge[i].cap > 0) && (dep[u] == dep[edge[i].to]+1)) break; if(i != -1) { stack[top++] = i; u = edge[i].to; } else { if(0 == --gap[dep[u]]) break; int minn = n; for(i = head[u]; i != -1; i = edge[i].next) { if(edge[i].cap > 0) minn = (minn > dep[edge[i].to]) ? (cur[u]= i, dep[edge[i].to]) : minn; } ++gap[dep[u] = minn + 1]; if(u != source) u = edge[stack[--top]].from; } } return max_fLow;}void add(int u,int v,int f){ edge[cnt].next = head[u]; edge[cnt].from = u; edge[cnt].to = v; edge[cnt].cap = f; head[u] = cnt++; edge[cnt].next = head[v]; edge[cnt].from = v; edge[cnt].to = u; edge[cnt].cap = 0; head[v] = cnt++;}int main(){ int i,j,p,k,tot,a,b,c,d,cal; while(scanf("%d%d",&n,&m)!=EOF){ tot=0; cnt=0; cal=0; for(i=1;i<=n;i++){ scanf("%d",&p); x[i]=p; } for(i=0;i<m;i++){ scanf("%d%d%d%d",&a,&b,&c,&d); if(d>0){ pp[tot].no=a; pp[tot].to=b; pp[tot].cos=c; tot++; } else{ pp1[cal].no=a; pp1[cal].to=b; pp1[cal].val=c; pp1[cal++].d=d; } } k=1<<tot; a=0; b=INF; for(i=0;i<k;i++){ cnt=0; memset(head,-1,sizeof(head)); for(j=1;j<=n;j++){ add(0,j,x[j]); } for(j=0;j<cal;j++){ if(pp1[j].d<0){ add(pp1[j].no,pp1[j].to,INF); add(pp1[j].no,n+1,pp1[j].val); } else{ add(pp1[j].no,pp1[j].to,INF); } } c=0; for(j=0;j<tot;j++){ if(i&(1<<j)){ add(pp[j].no,pp[j].to,INF); c+=pp[j].cos; } else{ add(pp[j].no,pp[j].to,1); } } source=0; des=n+1; d=ISAP(); if(d>a){ a=d; b=c; } else if(d==a&&b>c){ b=c; } } if(a==0){ printf("Poor Heaven Empire\n"); } else{ printf("%d %d\n",a,b); } } return 0;}[ Copy to Clipboard ] [ Save to File]Home | Top Hangzhou Dianzi University Online Judge 3.0Copyright © 2005-2014 HDU ACM Team. All Rights Reserved.Designer & Developer : Wang Rongtao LinLe GaoJie GanLuTotal 0.001500(s) query 1, Server time : 2014-07-11 18:04:50, Gzip enabledAdministration
0 0
- HDU 4309 Seikimatsu Occult Tonneru(网络流+枚举状态)
- HDU 4309 Seikimatsu Occult Tonneru 状压枚举+网络流
- hdu - 4309 - Seikimatsu Occult Tonneru - 网络流
- hdu 4309 Seikimatsu Occult Tonneru ----网络流
- hdu 4309 Seikimatsu Occult Tonneru 网络流
- HDU 4309 Seikimatsu Occult Tonneru(网络流-最大流)
- HDU 4309 Seikimatsu Occult Tonneru(网络流-最大流)
- hdu 4309 Seikimatsu Occult Tonneru(网络流,4级)
- hdu 4309 Seikimatsu Occult Tonneru(枚举+最大流)
- hdu 4309 Seikimatsu Occult Tonneru 枚举+最大流
- HDU 4309 Seikimatsu Occult Tonneru(最大流SAP+状态压缩枚举)
- HDU 4309 Seikimatsu Occult Tonneru 网络流+状压
- 【网络流】 HDU 4309 Seikimatsu Occult Tonneru 状压枚举边
- hdu 4309 Seikimatsu Occult Tonneru
- 【HDU】 4309 Seikimatsu Occult Tonneru
- MUTC 1 E - Seikimatsu Occult Tonneru 枚举 网络流
- HDOJ 4309 - Seikimatsu Occult Tonneru 枚举,构图,最大流..
- Hdu 4309Seikimatsu Occult Tonneru【最大流Dinic+暴力枚举Dfs+建图】人生难免磕磕碰碰
- 不弹出提示框直接导出excel
- spring技术内幕11-JdbcTemplate封装Jdbc
- 编写高质量的Objective-C代码
- Go-XPath解析
- HKEY_LOCAL_MACHINE\Software\WOW6432Node
- HDU 4309 Seikimatsu Occult Tonneru(网络流+枚举状态)
- IOS企业开发者帐号申请
- response.setHeader()的用法
- 修改下拉日历的样式
- js获取节点 dom操作
- Gnu Linux--Ubuntu系统清理项整理
- Ios 常用类库
- proftpd-1.3.4c安装实例
- Ext4 简单的treepanel