比赛的时候想的是把n个n个的题目进行状压 但这样不能讲究顺序,当时精神面貌也不好,真是挫死了

其实此题的另一个角度就是一个n个数的排列,如果我对n个人进行状压,外面套一个按题目循序渐进的大循环,那么,在当前做第i个题目,前i-1个题目已经做完,然后做完的人的状态为j, j可能是1110 1101 1011什么的(假设已经做了三道题),因为我这样就可以只管状态而不管顺序了,我只取这种状态下的最大值,他究竟是怎么个顺序排列我不用管

到此。。。好像问题就没有什么问题了,这种做法重复 m/n次最后把剩余的再跑一下就可以了,因为每次考虑第i个题的时候 只和i-1有关,则用个滚动数组即可,比较麻烦的是每次要清空,只能说空间和时间不可兼得啊

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
double A[][];
int n,m;
double dp[][<<];
int main()
{
int t,kase=;
scanf("%d",&t);
while (t--)
{
scanf("%d%d",&n,&m);
for (int i=;i<n;i++){
for (int j=;j<m;j++) scanf("%lf",&A[i][j]);
}
int ALL=<<n;
for (int i=;i<=ALL;i++){
dp[][i]=dp[][i]=;
}
for (int i=;i<n;i++){
dp[][<<i]=A[i][];
}
int p=;
double ans=;
for (int i=;i<m;i++){
p^=;
for (int j=;j<=ALL;j++) dp[p][j]=;
for (int j=;j<ALL;j++){
if (dp[p^][j]==) continue;
for (int k=;k<n;k++){
if ((<<k)&j) continue;
int nt=(<<k)|j;
if (nt==ALL-) nt=;
dp[p][nt]=max(dp[p][nt],dp[p^][j]+A[k][i]);
if (i==m-) ans=max(ans,dp[p][nt]);
}
}
} printf("Case #%d: %.5lf\n",++kase,ans);
}
}

最新文章

  1. CS0103: The name ‘Scripts’ does not exist in the current context解决方法
  2. IOS 手势-轻点、触摸、手势、事件
  3. EntityFramework动态多条件查询与Lambda表达式树
  4. Python操作文件文档
  5. CityGML文件格式
  6. malloc、calloc、realloc的区别
  7. HDU1540 Tunnel Warfare 水题
  8. 用Python实现的一个简单的随机生成器
  9. Oracle PL/SQL 非预定义异常、自定义异常处理、RAISE_APPLICATION_ERROR
  10. LightOJ 1095 Arrange the Numbers-容斥
  11. 【HDFS API编程】第一个应用程序的开发-创建文件夹
  12. Retrofit2 原理解析
  13. MySql中drop、truncate、delete的区别
  14. 用C#创建一个窗体,在构造函数里面写代码和在from_load事件里面写代码有什么不同?
  15. 使用QFileDiaglog实战designer快速开发
  16. CH0101 a^b、 CH0102 64位整数乘法(快速幂、快速乘)【模板题】
  17. Grid Virtual Server 和 网格计算
  18. 使用maven-shade-plugin插件解决spark依赖冲突问题
  19. HDU 3829
  20. Hbase—学习笔记(一)

热门文章

  1. Python学习第二十一课——Mysql 对数据库的基本操作
  2. Jquery 事件 文本框常用
  3. [WC2018]通道(乱搞,迭代)
  4. [ DLPytorch ] 循环神经网络进阶&amp;拟合问题&amp;梯度消失与爆炸
  5. kafka start bat
  6. Sqoop 一点通
  7. Centos 下安装php
  8. Plastic Sprayers Manufacturer - Spray Principle, Spray Note
  9. 后台框架 FastAdmin V1.0.0.20200228 发布,为疫情防控作贡献
  10. Css——显示2行数据,超出显示...