博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 3112 [Zjoi2013]防守战线
阅读量:5086 次
发布时间:2019-06-13

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

题解:单纯形;转化为对偶问题;

对于最大化 cx,满足约束 Ax<=b ,x>0

对偶问题为

最小化 bx,满足约束 ATx>=c ,x>0 (AT为A的转置)

这一题的内存真是坑QwQ;

参考代码为:

1 /************************************************************** 2     Problem: 3112 3     User: SongHL 4     Language: C++ 5     Result: Accepted 6     Time:1800 ms 7     Memory:80004 kb 8 ****************************************************************/ 9  10 #include
11 using namespace std;12 #define clr(a,b) memset(a,b,sizeof a)13 #define lowbit(x) x&-x14 #define RI register int15 #define eps 1e-616 typedef long long ll;17 const int INF=0x3f3f3f3f;18 inline int read()19 {20 int x=0,f=1; char ch=getchar();21 while(ch<'0'||ch>'9') { if(ch=='-') f=-1;ch=getchar();}22 while(ch>='0'&&ch<='9') {x=x*10+ch-'0';ch=getchar();}23 return x*f;24 }25 const int N=1005;26 const int M=10005;27 int n,m;28 double a[N][M],b[M],c[M],v;29 inline void pivot(int l,int e)//矩阵的转秩30 {31 b[l]/=a[l][e];32 for(int j=1;j<=n;++j)33 {34 if(j!=e) a[l][j]/=a[l][e]; 35 }36 a[l][e]=1/a[l][e];37 for(int i=1;i<=m;++i)38 {39 if(i!=l&&fabs(a[i][e])>0)40 {41 b[i]-=a[i][e]*b[l];42 for(int j=1;j<=n;++j)43 {44 if(j!=e) a[i][j]-=a[i][e]*a[l][j];45 }46 a[i][e]=-a[i][e]*a[l][e];47 }48 }49 v+=c[e]*b[l];50 for(int j=1;j<=n;++j)51 {52 if(j!=e) c[j]-=c[e]*a[l][j];53 }54 c[e]=-c[e]*a[l][e];55 }56 57 inline double simplex()58 {59 while(1)60 {61 int e=0,l=0;62 for(e=1;e<=n;++e)63 {64 if(c[e]>eps) break;65 }66 if(e==n+1) return v;67 double mn=INF;68 for(int i=1;i<=m;++i)69 {70 if(a[i][e]>eps&&mn>b[i]/a[i][e]) mn=b[i]/a[i][e],l=i;71 }72 if(mn==INF) return INF;73 pivot(l,e);74 }75 }76 int main()77 {78 n=read(),m=read();79 for(int i=1;i<=n;++i) b[i]=read();80 for(int i=1;i<=m;++i)81 {82 int s,t;83 s=read(),t=read(),c[i]=read();84 for(int j=s;j<=t;++j) a[j][i]=1;//aT85 }86 swap(n,m);87 printf("%d\n",(int)(simplex()+0.5));88 return 0;89 }90 /*91 5 392 1 5 6 3 493 2 3 194 1 5 495 3 5 296 */97
View Code

 

转载于:https://www.cnblogs.com/songorz/p/10003538.html

你可能感兴趣的文章
JAVA转C#开发笔记
查看>>
AngularJs从数据库获取数据并显示
查看>>
JQuery加载html网页
查看>>
ES6的let命令实现猜想
查看>>
VM模板引擎语法
查看>>
UpdatePanel上使用FileUpload上传文件
查看>>
[工具] Altova UModel® 2017 is a UML tool for software modeling & application development.
查看>>
plsql连接Oracle11g 64位数据库导出dmp文件一闪而过
查看>>
易观算法大赛心得
查看>>
公共子序列与公共子串问题
查看>>
Hadoop1.x与2.x安装笔记
查看>>
1029: [JSOI2007]建筑抢修 - BZOJ
查看>>
redis与mysql的比较
查看>>
关于几种编程语言的介绍————Java、Python等
查看>>
windows phone开发-windows azure mobile service使用入门
查看>>
gis 参照资料
查看>>
枚举、结构体 应用
查看>>
CSS 设置table下tbody滚动条
查看>>
linux入门
查看>>
LINUX部署SVN服务器
查看>>