栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3307 Magic Machine

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3307 Magic Machine

#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <iostream>#include <vector>#include <set>using namespace std;const int N = 210 ;int n , k ;double a , b ;int magic ;vector<int> v ;set<int> s ;double dp[N][N] ;double calc(int l,int r){ if (l>r) return 0 ; if (dp[l][r] != -1) return dp[l][r] ; double sx = 0 ; for (int i = l ; i <= r ; i++){ sx += ((v[i]==magic)?1.0:0.0) * a ; sx += calc(l,i-1) * b ; sx += calc(i+1,r) * (1.0-a-b) ; } dp[l][r] = sx / (r-l+1) ; return dp[l][r] ;}int main(){ while (scanf("%d",&n)==1 && n>=0){ v.clear(); s.clear(); for (int i = 0 ; i < n ; i++){ int t ; scanf("%d",&t); v.push_back(t) ; s.insert(t) ; } for (int i = 0 ; i < n ; i++) for (int j = 0 ; j < n ; j++) dp[i][j] = -1 ; scanf("%d%lf%lf",&k,&a,&b) ; set<int>::iterator it ; int ak = 0 ; magic = -1 ; for (it = s.begin() ; it != s.end() ; it++) { ak++ ; if (ak==k) { magic = (*it) ; break ; } } if (magic==-1){ printf("0.000n"); continue ; } printf("%.3fn",calc(0,n-1)); } return 0 ;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378033.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号