HDUOJ---------2255奔小康赚大钱
奔小康赚大钱
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2575 Accepted Submission(s): 1135
无奈,只好用KM来做,结果很理想!....
/*@code龚细军*/
#include<stdio.h>
#include<string.h>
#define maxn 301
int peo[maxn][maxn];
int dp[maxn]; int max(int const a,int const b)
{
return a>b?a:b;
} int main()
{
int i,n,j,k;
while(scanf("%d",&n)!=EOF)
{
memset(dp,,(n+)*sizeof(int));
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
scanf("%d",&peo[i][j]);
}
for(i=;i<=n;i++)
{
for(j=n;j>=;j--)
{
for(k=;k<=j;k++)
{
dp[k]=max(dp[k],dp[j-k]+peo[i][k]);
}
} }
printf("%d\n",dp[n]);
}
return ;
}
下面是有km最大匹配算法来做的。。。。
代码:
//二分图最佳匹配,kuhn munkras算法,邻接阵形式,复杂度O(m*n*m);
/*返回最佳匹配值,传入二分图的大小,m,n和邻接阵mat,表示权值
/*@coder龚细军*/
#include<stdio.h>
#include<string.h>
#define MAX 305
#define inf 1000000000 int km(int n, int mat[][MAX],int *match1,int *match2 )
{
int s[MAX],t[MAX],lx[MAX]={},ly[MAX],p,q,ret=,i,j,k;
for( i=; i<n ; i++)
{
for(lx[i]=-inf,j= ; j<n ;j++)
{
lx[i]=mat[i][j]>lx[i]?mat[i][j]:lx[i];
}
}
memset(ly,,n*sizeof(int)); /*节约大把的时间是不*/
memset(match1,0xff,sizeof(int)*n);
memset(match2,0xff,sizeof(int)*n);
for(i= ; i<n ;i++)
{
memset(t,0xff,sizeof(int)*n);
p=q=;
for(s[p]=i;p<=q&&match1[i]< ; p++)
{
for(k=s[p],j=; j<n&&match1[i]< ;j++)
{
if(lx[k]+ly[j]==mat[k][j]&&t[j]<)
{
s[++q]=match2[j];
t[j]=k;
if(s[q]<)
for(p=j ; p>= ; j=p)
{
match2[j]=k=t[j];
p=match1[k];
match1[k]=j;
}
}
}
}
if(match1[i]<)
{
for(i--,p=inf,k=; k<=q; k++)
{
for(j=; j<n; j++)
{
if(t[j]<&&lx[s[k]]+ly[j]-mat[s[k]][j]<p)
p=lx[s[k]]+ly[j]-mat[s[k]][j];
}
}
for(j=;j<n;ly[j]+=t[j]<?:p,j++);
for(k=; k<=q ; lx[s[k++]]-=p);
}
}
for(i=;i<n;i++)
{
ret+=mat[i][match1[i]];
}
return ret;
}
int map[MAX][MAX],aa[MAX],bb[MAX];
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
for(i=;i<n;i++)
{
for(j=;j<n;j++)
{
scanf("%d",&map[i][j]);
}
}
printf("%d\n",km(n,map,aa,bb));
}
return ;
}
HDUOJ---------2255奔小康赚大钱的更多相关文章
- HDU 2255 奔小康赚大钱(带权二分图最大匹配)
HDU 2255 奔小康赚大钱(带权二分图最大匹配) Description 传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子. 这可是一件大事,关系到人民的住房问题啊 ...
- 最大流增广路(KM算法) HDOJ 2255 奔小康赚大钱
题目传送门 /* KM:裸题第一道,好像就是hungary的升级版,不好理解,写点注释 KM算法用来解决最大权匹配问题: 在一个二分图内,左顶点为X,右顶点为Y,现对于每组左右连接Xi,Yj有权w(i ...
- 二分图最大权匹配问题&&KM算法讲解 && HDU 2255 奔小康赚大钱
作者:logosG 链接:https://www.cnblogs.com/logosG/p/logos.html (讲解的KM算法,特别厉害!!!) KM算法: 现在我们来考虑另外一个问题:如果每个员 ...
- HDU 2255.奔小康赚大钱 最大权匹配
奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 2255 奔小康赚大钱 (KM算法 模板题)
奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 2255 ——奔小康赚大钱——————【KM算法裸题】
奔小康赚大钱 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- [ACM] HDU 2255 奔小康赚大钱 (二分图最大权匹配,KM算法)
奔小康赚大钱 Problem Description 传说在遥远的地方有一个很富裕的村落,有一天,村长决定进行制度改革:又一次分配房子. 这但是一件大事,关系到人民的住房问题啊. 村里共同拥有n间房间 ...
- hdu 2255 奔小康赚大钱 (KM)
奔小康赚大钱Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu 2255 奔小康赚大钱--KM算法模板
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 题意:有N个人跟N个房子,每个人跟房子都有一定的距离,现在要让这N个人全部回到N个房子里面去,要 ...
- hdu 2255 奔小康赚大钱 最大权匹配KM
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子.这可是一件大事 ...
随机推荐
- Android网络请求之OkHttp框架
首先声明权限 <uses-permission android:name="android.permission.INTERNET"/> 在build.gradle中加 ...
- dubbo培训文档
培训文档 1.<服务框架实践与探索> 主题:QCon2011杭州主题演讲,分享Dubbo服务框架的实践历程.主讲:钱霄,梁飞课件:Service Framework Practices.p ...
- 数据库实例: STOREBOOK > 用户 > 编辑 用户: DBSNMP
ylbtech-Oracle:数据库实例: STOREBOOK > 用户 > 编辑 用户: DBSNMP 编辑 用户: DBSNMP 1. 一般信息返回顶部 1.1, 1.2, 2 ...
- PHP array与Json学习
在 PHP 中,有三种数组类型: 索引数组 - 带有数字索引的数组,(可以理解C/C++/Java中的数组,按照索引位置直接访问) 关联数组 - 带有指定键的数组,(可以理解为map,按照键值对存储, ...
- Winform中用了皮肤控件之后,报错:容量超出了最大容量 参数名:capacity
解决方案: 设置 skin.SkinDialogs = false;
- Template Method 模板方法 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- C#版查杀本地/远程进程工具
xkill [原创] Author: R&S E-mail: yrwithsh@vip.sina.com HomePage: fz5fz.yeah.net Date: 10/04/2003 u ...
- cocos2dx游戏存储举例及其注意事项
今天白白跟大家分享一下cocos2dx中游戏的存储及需要注意的事项 cocos2dx中自带了存储类:CCUserDefault ,倘若需要存储的数据量教大的话,建议使用数据库来存储 现在先给大家看一下 ...
- MybatisGen1.0 Mybatis JavaBean Mapper生成工具
MybatisGen 一:主要技术 1:apache commons dbutils 2:freemarker模板引擎 3:java(1.5+) 二:使用说明 1:配置文件是src/config.pr ...
- C# 中奇妙的函数–8. String Remove() 和 Replace()
http://www.cnblogs.com/multiplesoftware/archive/2011/09/27/2192710.html 当对字符串进行操作时,我们经常要删除或者是替换一部分子字 ...