当前位置: 首页 > wzjs >正文

外国人在中国做视频网站湖南衡阳网站建设

外国人在中国做视频网站,湖南衡阳网站建设,威海网站开发公司,网站建设广金手指六六十四审题: 本题需要我们找到消除矩阵行与列后可以获得的最大权值 思路: 方法一:贪心二进制枚举 这里的矩阵消除时,行与列的消除会互相影响,所以如果我们先统计所有行和列的总和,然后选择消除最大的那一行/列&am…

审题:
本题需要我们找到消除矩阵行与列后可以获得的最大权值

思路:
方法一:贪心+二进制枚举

这里的矩阵消除时,行与列的消除会互相影响,所以如果我们先统计所有行和列的总和,然后选择消除最大的那一行/列,选择完后更新所有行和列的总和,再循环进行消除选择,此时会导致部分情况无法得到最优解。

eg:进行回合数限制为2,矩阵如下图

此时我们会先选择第一列,然后更新各行列的总和

此时我们就再选择第三行,选择结束

不过其实我们完全一开始可以直接就选择第一行和第三行,这样子两个回合就拿到了所有权值,所以这个策略是有问题的

正确贪心策略:先用二进制枚举行的选择情况,得到所有行的选取方案,然后失去了行的变动干扰,我们再对列求总和并取总和较大的前k-cnt列加入sum中即可,然后多组数据利用max维护一个最终答案answer

解题:
 

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 30;
int n,m,k;
int a[N][N];
int col[N];//计算每列总和
int answer;
int calcnt(int num)//计算有多少个1
{int count = 0;while(num){count++;num &= num-1;}return count;
}
bool cmp(int a, int b)
{return a > b;
}
int main()
{//数据录入cin >> n >> m >> k;for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)cin >> a[i][j];//二进制枚举所有行选择情况for(int i = 0; i < (1 << n); i++){ int cnt = calcnt(i);//非法回合数直接跳过if(cnt  > k) continue;//多组数据除去残留痕迹int sum = 0;memset(col,0,sizeof col);//完成对行和的累加和列和的统计for(int x = 0; x < n; x++){for(int y = 0; y < m; y++){if((i >> x) & 1)//当前行被选择{sum += a[x][y];}else{col[y] += a[x][y];  }}}sort(col,col+m,cmp);for(int j = 0; j <(k-cnt); j++){sum += col[j];}answer = max(answer,sum);}cout << answer << endl;return 0;
}

1.calcnt的作用是找到二进制枚举方案中对行进行了几次选取,也就是求出i的二进制表示中有多少个1

2.cmp是传递给sort的仿函数,用于将排序变为降序

矩阵消除游戏

http://www.dtcms.com/wzjs/786679.html

相关文章:

  • iis7建网站网站推广优化外包公司哪家好
  • 益阳网站建设网站好看的网站的导航怎么做
  • 不花钱网站怎么做网站建设公司的公司
  • wordpress自适应站点网站建设公司如何约客户
  • 敬请期待换个说法网站seoapp
  • 网站开发使用哪些开发语言wordpress统计在线人数
  • 网站建设及运营 多少钱淘宝客是以下哪个网站的会员简称
  • 深圳手机商城网站设计公司理财公司网站模板下载
  • 新手如何学网站建设智慧团建电脑版登录
  • 前端静态网站模板产品经理做网站
  • 做公司网站教程视频纯净系统基地
  • 河南公司网站可以做天津备案吗wordpress企业建站教程
  • 河南周口东宇网站建设中国建设网建设通
  • 深圳龙华汽车站附近有做网站建设的网站正在建设中源码
  • 网站推广排名报价网站内容的重要性
  • iis如何设置服务器上网站空间大小wordpress cdn 阿里云
  • 有了域名 怎么做网站自己架设的传奇怎么做网站
  • 网站用的什么数据库私人可以买服务器吗
  • 北京网站建设成都企业建设网站的主要目的
  • 网站运营分析wordpress免费别人无法访问
  • 有口碑的番禺网站建设付费小说网站怎么做
  • 濮阳网站建设在哪做不用代码做网站的软件
  • 网站中的打赏怎么做的高性能网站建设在线阅读
  • 潍坊哪里有做360网站的建设网站哪里好
  • 丹东市住房和城乡建设网站山东建设网站公司
  • 本网站正在建设中正规电商培训班
  • 长沙企业官方网站建设延吉网站开发公司有哪些
  • 买完服务器怎么做网站自己做的网站只能用谷歌浏览器打开
  • 廊坊网站建设方案朝阳区互联网公司排名
  • golang 网站开发网页设计平面设计培训机构