网站大量收购闲置独家精品文档,联系QQ:2885784924

130、鳄鱼!水泡?大作战!.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

方法优劣分析

优点:这种方法可以准确地计算出期望得分。

缺点:需要两层循环,某些极端情况下时间复杂度很高。

时间复杂度分析

时间复杂度为?O(n)O(n×100)=O(n)。

空间复杂度O(n)O(n×100)=O(n)。

AC_Code

C++

#includeiostream

#includevector

usingnamespacestd;

intmain(){

intn;

cinn;

vectorpairint,intballoons(n);

for(inti=0;in;i++){

cinballoons[i].firstballoons[i].second;

}

//dp[i][j]代表在第i轮,击中概率为j%时的期望得分。

vectorvectordoubledp(n+1,vectordouble(101,0));

dp[0][balloons[0].first]=0;//初始概率

for(inti=1;i=n;i++){

inta=balloons[i-1].first,b=balloons[i-1].second;

for(intj=0;j=100;j++){//0到100的击中概率

doublehit_prob=j/100.0;

doublemiss_prob=1-hit_prob;

intprev_prob=min(j+10,100);//增加10%但最大为100%

dp[i][j]=hit_prob*(dp[i-1][prev_prob]+b)+miss_prob*dp[i-1][j];

}

}

printf(%.2lf\n,dp[n][balloons[0].first]);

return0;

}

Java

importjava.util.Scanner;

importjava.util.ArrayList;

importjava.util.List;

publicclassMain{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

intn=scanner.nextInt();

Listint[]balloons=newArrayList();

for(inti=0;in;i++){

inta=scanner.nextInt();

intb=scanner.nextInt();

balloons.add(newint[]{a,b});

}

//dp[i][j]代表在第i轮,击中概率为j%时的期望得分。

double[][]dp=newdouble[n+1][101];

dp[0][balloons.get(0)[0]]=0;//初始概率

for(inti=1;i=n;i++){

inta=balloons.get(i-1)[0],b=balloons.get(i-1)[1];

for(intj=0;j=100;j++){//0到100的击中概率

doublehitProb=j/100.0;

doublemissProb=1-hitProb;

intprevProb=Math.min(j+10,100);//增加10%但最大为100%

dp[i][j]=hitProb*(dp[i-1][prevProb]+b)+missProb*dp[i-1][j];

}

文档评论(0)

如此醉 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档