当前位置:首页 > 芯闻号 > 充电吧
[导读]题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5045 题面: Contest Time Limit: 2000/1000 MS (Java/Oth

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5045


题面:

Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1237    Accepted Submission(s): 494


Problem Description In the ACM International Collegiate Programming Contest, each team consist of three students. And the teams are given 5 hours to solve between 8 and 12 programming problems.

On Mars, there is programming contest, too. Each team consist of N students. The teams are given M hours to solve M programming problems. Each team can use only one computer, but they can’t cooperate to solve a problem. At the beginning of the ith hour, they will get the ith programming problem. They must choose a student to solve this problem and others go out to have a rest. The chosen student will spend an hour time to program this problem. At the end of this hour, he must submit his program. This program is then run on test data and can’t modify any more.

Now, you have to help a team to find a strategy to maximize the expected number of correctly solved problems.

For each problem, each student has a certain probability that correct solve. If the ith student solve the jth problem, the probability of correct solve is Pij .

At any time, the different between any two students’ programming time is not more than 1 hour. For example, if there are 3 students and there are 5 problems. The strategy {1,2,3,1,2}, {1,3,2,2,3} or {2,1,3,3,1} are all legal. But {1,1,3,2,3},{3,1,3,1,2} and {1,2,3,1,1} are all illegal.

You should find a strategy to maximize the expected number of correctly solved problems, if you have know all probability  
Input The first line of the input is T (1 ≤ T ≤ 20), which stands for the number of test cases you need to solve.

The first line of each case contains two integers N ,M (1 ≤ N ≤ 10,1 ≤ M ≤ 1000),denoting the number of students and programming problem, respectively.

The next N lines, each lines contains M real numbers between 0 and 1 , the jth number in the ith line is Pij .  
Output For each test case, print a line “Case #t: ”(without quotes, t means the index of the test case) at the beginning. Then a single real number means the maximal expected number of correctly solved problems if this team follow the best strategy, to five digits after the decimal point. Look at the output for sample input for details.  
Sample Input
1
2 3
0.6 0.3 0.4
0.3 0.7 0.9

 

Sample Output
Case #1: 2.20000

 

Source 2014 ACM/ICPC Asia Regional Shanghai Online

题目大意:
    给定n个人分别完成m个编程问题的成功率,问怎样分配可以使得最终期望的AC问题数最多。有一个限制,(每个人耗时1小时完成1道题)任意时刻,任何两个选手间的耗时数差不能超过1个小时。

解题:
    突破点在于耗时数差不能超过1个小时,我是没想到用01表示当前每个选手的答题数量减去一个基准值,如果想到了就很好写了。感觉状态压缩dp的精髓在于人为地筛选出一些合法的状态,减少盲目搜索,从而提高效率。

代码:
#include 
#include 
#include 
#include 
#include 
using namespace std;
int n,m,t;
//dp[i][j]表示第i位答题状态为j的最优值,posi存的是每个选手答每道题的正确概率
double dp[1010][1050],posi[11][1010];
int main()
{
	int tmp,lim;
	scanf("%d",&t);
	double ans,temp;
	for(int i=1;i<=t;i++)
	{
		//读入
		scanf("%d%d",&n,&m);
		memset(dp,0,sizeof(dp));
		for(int j=1;j<=n;j++)
			for(int k=1;k<=m;k++)
				scanf("%lf",&posi[j][k]);
		//两个set配合使用记录前一步合法状态
		set  s;
		set  ts;
		set  :: iterator it;
		//初始化
		for(int j=0;jdp[j][tmp])
							dp[j][tmp]=temp;
					}
				}
			}
			//将ts的内容放入s
			s.clear();
			for(it=ts.begin();it!=ts.end();it++)
				s.insert(*it);
		}
		lim=(1<ans)
				ans=dp[m][j];
		}
		printf("Case #%d: %.5lfn",i,ans);
	}
	return 0;
}



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

大象汽车北美公司与加拿大最大的上装厂及经销商ITD工业公司签署加拿大独家经销合作备忘录。 双方将探索在加拿大市场提供组装制造服务的合资企业。 香港2024年5月8日 /美通社/ -- 5月8日,全球领先的...

关键字: 汽车 电动 新能源 氢燃料电池

汽车公司 Automobili Pininfarina 策划了一项独特的 Battista 委托计划,以此向1955 年 Lancia Florida,一辆由 Battista 'Pinin' Farina 设计和喜爱的...

关键字: BAT INA 汽车 TI

全球通信技术公司Tata Communications 于今日推出了 Tata Communications CloudLyte,这是一款全自动边缘计算平台,旨在帮助面向未来的企业在数据驱动的世界中蓬勃发展。

关键字: 边缘计算 5G 物联网

如同造纸术的改良推动了人类文明的传承、蒸汽机的改进催生了工业革命,在人类历史上,创新的工具引领了影响深远的变革。今天,大模型发展如火如荼,但企业在大模型应用落地过程中仍需要解决幻觉、开发难度大、适配迁移难、试错成本高等系...

关键字: AI 数据处理 大模型

近日,特斯拉发布了Optimus最新进展视频,展现了其分拣电池、行走、执行工厂任务的能力,并配文“最近正在努力变得有用!”。

关键字: 特斯拉 机器人 Optimus

2024年5月9日晚,中国大陆晶圆代工龙头厂中芯国际发布2024年第一季度财报,销售收入为17.5亿美元,环比增长4.3%,同比增长19.7%;毛利率为13.7%,均好于指引。值得一提的是,这也是中芯国际的季度营收首次超...

关键字: 中芯国际

据韩联社报道,近日 SK 海力士子公司 SK 海力士系统集成电路拟以3.493亿美元的价格向无锡产业发展集团有限公司转让所持有的 SK 海力士系统集成电路(无锡)有限公司(下文简称无锡晶圆厂) 49.9% 股权。

关键字: SK 海力士 晶圆厂

近日,美国空军在加州爱德华兹空军基地进行了首次正式的AI控制战斗机试飞,美联社等少数媒体代表受邀观摩,美国空军方面明确表示,AI战机将是未来美国空中力量的重要组成部分。

关键字: 美国 AI

从近期媒体的一份爆料来看,苹果近年来其实已经下了不少力气深耕AI领域——在过去六年间从谷歌挖走了数十名人工智能专家,并在苏黎世创建了一个神秘的欧洲实验室。

关键字: 苹果 谷歌 实验室 AI

据外媒最新报道,微软近日披露了一个名为“ Dirty Stream ”的严重安全漏洞,该漏洞可能影响到数十亿下载量的 Android 应用。这种攻击可能使得攻击者完全控制应用,未经授权访问敏感用户数据,或拦截私密登录信息...

关键字: 安卓 漏洞 小米
关闭
关闭