bzoj3993 [SDOI2015]星际战争 二分答案+网络流检验
来源:互联网 发布:最新杭州网络诈骗案 编辑:程序博客网 时间:2024/05/16 15:08
流量分配模型、
这个题如果时间不知道的话流量是未知的,对于流量未知的网络流肯定是没法做的(没有动态借流量的网络流)
由于时间上满足连续性,就可以二分答案,然后流量确定就可以跑网络流
主要还是化静为动
注:
1、double都要写eps
2、一定注意double和int
码:
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<queue>using namespace std;#define N 12000#define inf 1000000009 queue<int>q;int tot=-1,hou[N],xia[N],zhong[N],yuan[N],s,t,n,m,d[N],i,j,lt[55][55];double v[N],l,r,a[N],b[N],cnt;void jian(int a,int b,double c){++tot,zhong[tot]=b,hou[tot]=yuan[a],yuan[a]=tot,v[tot]=c;}void jia(int a,int b,double c){jian(a,b,c);jian(b,a,0);}bool bfs(){memset(d,0x7f,sizeof(d));for(i=1;i<=t;i++)xia[i]=yuan[i];d[s]=0;q.push(s);while(!q.empty()){int st=q.front();q.pop();for(i=xia[st];i!=-1;i=hou[i]){int nd=zhong[i];if(fabs(v[i]-0)<=0.00001||d[nd]<inf)continue;d[nd]=d[st]+1;q.push(nd);}}//cout<<d[t]<<endl;return d[t]<inf;}double dfs(int o,int t,double limit){if(o==t||!limit)return limit;double flow=0,f;int i;for(i=xia[o];i!=-1;i=hou[i]){xia[o]=i;int nd=zhong[i];if(d[nd]==d[o]+1){f=dfs(nd,t,min(limit,v[i]));if(fabs(f-0)>=0.00001){limit-=f;flow+=f;v[i]-=f;v[i^1]+=f;}if(fabs(limit-0)<=0.00001)break;}}return flow; }double dinic(){double daan=0;while(bfs()){daan+=dfs(s,t,inf);}return daan;}int main(){scanf("%d%d",&n,&m);s=n+m+1;t=n+m+2;for(i=1;i<=n;i++)scanf("%lf",&a[i]),cnt+=a[i];for(i=1;i<=m;i++)scanf("%lf",&b[i]);for(i=1;i<=m;i++)for(j=1;j<=n;j++){scanf("%d",<[i][j]); }l=0.0001;r=1000000;while(l+0.00001<r){double mid=(l+r)/2; memset(yuan,-1,sizeof(yuan)); tot=-1; for(i=1;i<=m;i++)for(j=1;j<=n;j++)if(lt[i][j])jia(i,m+j,inf);for(i=1;i<=m;i++)jia(s,i,mid*b[i]);for(i=1;i<=n;i++)jia(m+i,t,a[i]);if(fabs(dinic()-cnt)<=0.000001)r=mid;else l=mid+0.0001;}printf("%.5lf",l);}
阅读全文
0 0
- bzoj3993 [SDOI2015]星际战争 二分答案+网络流检验
- 【BZOJ3993】星际战争(SDOI2015)-二分答案+最大流
- [BZOJ3993][SDOI2015]星际战争(二分答案+最大流)
- 【BZOJ3993】【SDOI2015】星际战争(网络流+二分)
- 【bzoj3993】[SDOI2015]星际战争 二分+最大流
- [BZOJ3993][SDOI2015]星际战争(二分+最大流)
- 【SDOI2015】【BZOJ3993】星际战争
- bzoj3993: [SDOI2015]星际战争
- bzoj3993: [SDOI2015]星际战争
- bzoj 3993: [SDOI2015]星际战争 二分答案&网络流
- BZOJ3993 星际战争 题解(二分+最大流)
- BZOJ 3993 Sdoi2015 星际战争 二分答案+最大流
- 【SDOI2015】星际战争 网络流
- BZOJ 3993: [SDOI2015]星际战争 二分+网络流
- BZOJ3993 星际战争(最大流)
- BZOJ 3993 [SDOI2015]星际战争 二分+最大流
- bzoj 3993: [SDOI2015]星际战争 (二分+最大流)
- 3993: [SDOI2015]星际战争
- java 操作mysql的创建数据库及数据的增删改查
- java设计模式之装饰模式
- GitHub查找优秀的开源项目和一些资源福利
- 【CCF】Z字扫描 与 Z字形打印矩阵
- shell脚本常用命令与方法总结
- bzoj3993 [SDOI2015]星际战争 二分答案+网络流检验
- Solr4.7.2+tomcat+ZooKeeper 部署SolrCloud 之 删除Collection
- 递归和迭代的区别
- 6.16
- java使用google开源工具实现图片压缩
- HDU 3074 Multiply game【线段树||zkw线段树||扩展gcd*乘法逆元||欧拉定理】
- python实现贝叶斯算法
- 《SVM笔记系列之五》软间隔线性支持向量机
- express-session