博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1061 单纯形法,或转化网络流(待补)
阅读量:4606 次
发布时间:2019-06-09

本文共 1214 字,大约阅读时间需要 4 分钟。

tags:没搞懂,单纯形法,很数学的感觉。。但又学到一个模板=^=,MDZZ

#include
#include
using namespace std;#pragma comment(linker, "/STACK:102400000,102400000")#define rep(i,a,b) for (int i=a;i<=b;i++)#define per(i,b,a) for (int i=b;i>=a;i--)#define mes(a,b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3ftypedef long long ll;const int N=1010, M=10010;const double inf=1e10, eps=1e-7;int n, m;double b[M], c[N], cof[M][N], ans;void pivot(int id, int pos){ b[id]/=cof[id][pos]; cof[id][pos]=1/cof[id][pos]; for(int i=1; i<=n; i++) if(i!=pos) cof[id][i]*=cof[id][pos]; for(int i=1; i<=m; i++) if(i!=id && fabs(cof[i][pos])>eps) { b[i]-=cof[i][pos]*b[id]; for(int j=1; j<=n; j++) if(j!=pos) cof[i][j]-=cof[i][pos]*cof[id][j]; cof[i][pos]= -cof[i][pos]*cof[id][pos]; } ans+=c[pos]*b[id]; for(int i=1; i<=n; i++) if(i!=pos) c[i]-=c[pos]*cof[id][i]; c[pos]= -c[pos]*cof[id][pos];}double simplex(){ while(1) { int pos, id; for(pos=1; pos<=n; pos++) if(c[pos]>eps) break; if(pos==n+1) return ans; double temp=inf; for(int i=1; i<=m; i++) if(cof[i][pos]>eps && b[i]/cof[i][pos]

转载于:https://www.cnblogs.com/sbfhy/p/6496824.html

你可能感兴趣的文章
【转】C++之父 Bjarne Stroustrup访谈录
查看>>
nodeJS项目gitignore文件参考
查看>>
iTOP4418开发板Android4.4/5.1.1_Linux3.4.39_QT5.7_Ubuntu12.04系统
查看>>
3ds max学习笔记-- 复合对象运算
查看>>
Handler 的sendEmptyMessage(int what)和sendMessage(Message msg)有啥区别?
查看>>
ubuntu下screen的使用
查看>>
SQL中# 与$ 的区别
查看>>
逻辑卷LVM
查看>>
linux基础-CentOS下安装JDK的三种方法
查看>>
springMVC绑定json参数之二(2.1)
查看>>
display的32种写法--摘抄
查看>>
H5学习第四周
查看>>
AJAX无刷新加购物车
查看>>
【bzoj5174】[Jsoi2013]哈利波特与死亡圣器 二分+树形dp
查看>>
Cloud Test 单页面即时监测功能上线!
查看>>
Allowed memory size of 134217728 bytes exhausted (tried to allocate 2 bytes)
查看>>
2018新的开始
查看>>
通俗的讲,就是高层模块定义接口,低层模块负责实现。 Bob Martins对DIP的定义: 高层模块不应依赖于低层模块,两者应该依赖于抽象。 抽象不不应该依赖于实现,实现应该依赖于抽象。...
查看>>
自定义单选框和复选框
查看>>
BZOJ2196: [Usaco2011 Mar]Brownie Slicing
查看>>