pid=5045">主题链接~~>

做题感悟:比赛时这题后来才写的,有点小尴尬。两个人商议着写写了非常久才写出来,I want to Powerful ,I believe me .

解题思路:

遗憾 !

感觉领悟能力太低 。由于随意时刻随意两个人做的题不超过 1 题 ,so~>  必须是一轮一轮的来(n 道题一轮),每一个人在一轮中仅仅能做一题。假设多做一题就,有可能某个人没选,某个人选择了两道,这样就不符合规定了 。 用 1  代表选择。0  代表没选择。进行某一行的时候就选择上一行某位为  0  的状态 。假设选择某位为 1的状态那么那个人就比某些人多选择了两门课程。

比赛时分轮来的,一轮一轮的来。最后有可能剩余零头。每次进行 n * n  的DP 。零头单独处理
,每行每列选一个 。赛后看了大牛的解题报告顿时感觉太弱了。事实上能够等到选满的时候然后转移一下。转移到当前行的 0 状态,这样就能够继续从上一行的 0 状态往下 dp 。

代码:

#include<iostream>
#include<sstream>
#include<map>
#include<cmath>
#include<fstream>
#include<queue>
#include<vector>
#include<sstream>
#include<cstring>
#include<cstdio>
#include<stack>
#include<bitset>
#include<ctime>
#include<string>
#include<iomanip>
#include<algorithm>
using namespace std ;
#define INT __int64
const double INF = 99999999 ;
const double esp = 0.0000000001 ;
const double PI = acos(-1.0) ;
const int MY = 100000 + 5 ;
const int MX = 1024 + 5 ;
int n ,m ;
double dp[MX][MX] ,mp[MX][MX] ;
int main()
{
int Tx ,cse = 1 ;
cin>>Tx ;
while(Tx--)
{
cin>>n>>m ;
for(int i = 0 ;i < n ; ++i)
for(int j = 0 ;j < m ; ++j)
cin>>mp[j][i] ;
for(int i = 0 ;i < m ; ++i)
for(int j = 0 ;j < (1<<n) ; ++j)
dp[i][j] = -1.0 ; for(int i = 0 ;i < n ; ++i)
dp[0][1<<i] = mp[0][i] ;
for(int i = 1 ;i < m ; ++i)
for(int j = 0 ;j < (1<<n) ; ++j)
for(int k = 0 ;k < n ; ++k)
{
if(dp[i-1][j] < 0 || (j&(1<<k))) continue ;
if((j|(1<<k)) != (1<<n)-1) // 推断是否选满
dp[i][j|(1<<k)] = max(dp[i][j|(1<<k)] ,dp[i-1][j] + mp[i][k]) ;
else dp[i][0] = max(dp[i][0] ,dp[i-1][j] + mp[i][k]) ;
}
double ans = 0 ;
for(int i = 0 ;i < (1<<n) ; ++i)
ans = max(ans ,dp[m-1][i]) ;
cout<<"Case #"<<cse++<<": "<<fixed<<setprecision(5)<<ans<<endl ;
}
return 0 ;
}

               

版权声明:本文博客原创文章,博客,未经同意,不得转载。

HDU 5045 Contest的更多相关文章

  1. hdu - 5045 - Contest(国家压缩dp)

    意甲冠军:N个人M通过主打歌有自己的期望,每个问题发送人玩.它不能超过随机播放的次数1,追求最大业绩预期 (1 ≤ N ≤ 10,1 ≤ M ≤ 1000). 主题链接:pid=5045" ...

  2. HDU 5045 Contest(状压DP)

    Problem Description In the ACM International Collegiate Programming Contest, each team consist of th ...

  3. [ACM] hdu 5045 Contest (减少国家Dp)

    Contest Problem Description In the ACM International Collegiate Programming Contest, each team consi ...

  4. hdu 5045 Contest(状态压缩DP)

    题解:我们使用一个二位数组dp[i][j]记录进行到第i个任务时,人组合为j时的最大和(这里的j我们用二进制的每位相应一个人). 详细见代码: #include <iostream> #i ...

  5. HDU 5045 5047 5050 5053(上海网络赛E,F,I,L)

    HDU 5045 5047 5050 5053 太菜了,名额差点没保住.吓尿..赶紧开刷树链抛分 5045:状压DP.压缩10个人.因为两个人不能差2以上,所以能够用01表示 5047:推推公式就可以 ...

  6. HDU 5045

    http://acm.hdu.edu.cn/showproblem.php?pid=5045 题意:n个学生m道题,一个n*m的矩阵代表第n个学生解第m题AC的概率,任意两学生做题数差距不能大于1,问 ...

  7. hdu 5045 N个人做M道题的正确率

    http://acm.hdu.edu.cn/showproblem.php?pid=5045 给出N个人做M道题的正确率,每道题只能由一个人做出,并且当所有人都做出来且仅做出一道题时,做过题的人才可以 ...

  8. HDU 5045(Contest-费用流)[template:费用流]

    Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submi ...

  9. HDOJ 5045 Contest

    状压DP.. . . Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

随机推荐

  1. Android虚拟机器学习总结Dalvik虚拟机创建进程和线程分析

    Dalvik调用一个成员函数时,虚拟机,假设发现,该成员函数是一个JNI办法,然后,它会直接跳转到其地址来运行.也就是说.JNI方法是直接在本地操作系统上运行的.而不是由Dalvik虚拟机解释器运行. ...

  2. [HA]负载均衡:HAPROXY与KEEPALIVED强强联合

    第一步:更改系统控制配置文件,同意分配虚拟IP(VIP) /etc/sysctl.conf net.ipv4.ip_nonlocal_bind=1 <pre style="word-w ...

  3. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法(转)

    对象的synchronized方法不能进入了,但它的其他非synchronized方法还是可以访问的 对每一个class只有一个thread可以执行synchronized static method ...

  4. crm创建报告补充导航

    报告导航实现动态交互体验报告. 通过使用各种类型的操作的,报告允许用户导航到特定的报告.Microsoft Dynamics CRM 记录或其它网站 动态钻取到 Microsoft Dynamics ...

  5. Linux内核分析(三)----初识linux内存管理子系统

    原文:Linux内核分析(三)----初识linux内存管理子系统 Linux内核分析(三) 昨天我们对内核模块进行了简单的分析,今天为了让我们今后的分析没有太多障碍,我们今天先简单的分析一下linu ...

  6. JavaScript之函数作用域

    有过类似C语言编程经验的同学应该都知道“块级作用域(block scope)”:花括号内的每一段代码都具有各自的作用域,而且在声明它们的代码段之外是不可见的.而在JavaScript中是没有块级作用域 ...

  7. 笔试题&amp;面试题:设计一个复杂度为n的算法找到单向链表倒数第m个元素

    设计一个复杂度为n的算法找到单向链表倒数第m个元素.最后一个元素假定是倒数第0个. 提示:双指针查找 相对于双向链表来说,单向链表仅仅能从头到尾依次訪问链表的各个节点,所以假设要找链表的倒数第m个元素 ...

  8. SQL Server的还原

    原文:SQL Server的还原 1.差异备份的还原 不备份结尾日志的情况下还原数据 创建差异备份的放在我们已经在前面一篇博客SQL Server的备份中提到了,这里我们不再赘述,下面我们给出差异备份 ...

  9. Codeforces 514 D R2D2 and Droid Army(RMQ+二分法)

    An army of n droids is lined up in one row. Each droid is described by m integers a1, a2, ..., am, w ...

  10. 基于Js实现的UrlEncode和UrlDecode函数代码

    <script language="javascript">//UrlEncode函数function UrlEncode(str){  var ret="& ...