AC日记——花店橱窗布置 codevs 1028
2024-08-22 20:18:19
题目描述 Description
假设以最美观的方式布置花店的橱窗,有F束花,V个花瓶,我们用美学值(一个整数)表示每束花放入每个花瓶所产生的美学效果。为了取得最佳的美学效果,必须使花的摆放取得最大的美学值。
输入描述 Input Description
第一行为两个整数F,V(F<=V<=100)
接下来F行每行V个整数,第i行第j个数表示第i束花放入第j个花瓶的美学值。
输出描述 Output Description
一个整数,即最大美学值。
样例输入 Sample Input
2 2
10 0
5 2
样例输出 Sample Output
12
数据范围及提示 Data Size & Hint
思路:
费用流~~~;
来,上代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> #define lit 10001
#define maxn 505
#define INF 0x7fffffff using namespace std; struct EdgeType {
int v,e,f,w;
};
struct EdgeType edge[maxn*maxn]; int if_z,n,m,head[maxn],s,t=maxn-,cnt=;
int pre[maxn],ans,dis[maxn]; bool if_[maxn]; char Cget; inline void in(int &now)
{
now=,if_z=,Cget=getchar();
while(Cget>''||Cget<'')
{
if(Cget=='-') if_z=-;
Cget=getchar();
}
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
now*=if_z;
} inline void edge_add(int u,int v,int w,int f)
{
edge[++cnt].v=v,edge[cnt].f=f,edge[cnt].w=w,edge[cnt].e=head[u],head[u]=cnt;
edge[++cnt].v=u,edge[cnt].f=,edge[cnt].w=-w,edge[cnt].e=head[v],head[v]=cnt;
} bool spfa()
{
int que[maxn*maxn],h=,tail=;
for(int i=s;i<=t;i++) dis[i]=INF,pre[i]=-;
dis[s]=,que[]=s,if_[s]=true;
while(h<tail)
{
int now=que[h++];
for(int i=head[now];i;i=edge[i].e)
{
if(dis[edge[i].v]>dis[now]+edge[i].w&&edge[i].f>)
{
pre[edge[i].v]=i;
dis[edge[i].v]=dis[now]+edge[i].w;
if(!if_[edge[i].v])
{
if_[edge[i].v]=true;
que[tail++]=edge[i].v;
}
}
}
if_[now]=false;
}
return dis[t]<INF;
} int main()
{
in(n),in(m);int w;
for(int i=;i<=n;i++)
{
edge_add(s,i,,);
for(int j=;j<=m;j++)
{
in(w);
edge_add(i,j+n,lit-w,);
}
}
for(int i=;i<=m;i++) edge_add(i+n,t,,);
while(spfa())
{
int now=t;
while(pre[now]!=-)
{
edge[pre[now]].f-=;
edge[pre[now]^].f+=;
now=edge[pre[now]^].v;
}
ans+=lit-dis[t];
}
cout<<ans;
return ;
}
最新文章
- 解决EBS中JAR包冲突的问题
- linux环境下配置solr5.3详细步骤
- iOS 语录
- ruby cookbook
- IBM X3650 M4安装win 2008 Server操作指南
- 将android Settings 源码 导入到 eclipse工程
- Symfony框架系列----常用命令
- 区间重合判断(pojg校门外的树)
- C# winform 按钮设置左边图标
- flask刷新token
- python 循环 while
- list quen队列
- 十五、Collections.sort(<;T>;, new Comparator<;T>;() {})针对字符串排序
- 上网爱快?EasyRadius FOR 爱快V2接口测试版正式推出,欢迎广大爱迷们测试噢
- Angular 插值字符串
- Spring技术内幕总结 - AOP概述
- python3操作数据库 借助pycharm快速连接并操作mysql数据库
- [Algorithm] Find merge point of two linked list
- TCP的三次握手与四次释放
- 洛谷OJ P2356 弹珠游戏 维护前缀和
热门文章
- 【mysql】【转发】Cannot proceed because system tables used by Event Scheduler were found damaged at server start
- 15.Yii2.0框架where单表查询
- 在ArchLinux、manjaro中安装MySql(mariaDB)
- Applied Nonparametric Statistics-lec1
- (转)iOS获取设备型号
- cpu位图
- Linux学习-Linux的账号与群组
- windows下创建子进程过程中代码重复执行问题
- JAVA-基础(三)
- MyBatis多个接口参数报错:Available parameters are [0, 1, param1, param2], 及解决方法