uva-10491-经典问题】的更多相关文章

经典博弈区间DP 题目链接:https://uva.onlinejudge.org/external/108/p10891.pdf 题意: 给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能从一端选取. 并且A B都尽力使自己选择的结果为最大的,可以理解成A B每一步走的都是最优的. 如果A先选择,则A B差值最大是多少. 分析: 总和是一定的,所以一个得分越高,另一个人的得分越低.当前状态总是最开始的状态的一个子状态. d(i,j): 先手取 i ~ j 最优策略下,得分最大值. d…
10491 - Cows and Cars Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=115&page=show_problem&problem=1432 In television contests, participants are often asked to choose one from a set…
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1432 #include <stdio.h> int main () { int a, b, c; ) { printf()) / (a + b - c - ) / (a + b )); } ; }…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1432 题意: 有这么一个电视节目:你的面前有3个门,其中两扇门里是奶牛,另外一扇门里则藏着奖品——一辆豪华小轿车.在你选择一扇门之后,门并不会立即打开.这时,主持人会给你个提示,具体方法是打开其中一扇有奶牛的门(不会打开你已经选择的那个门,即使里面是牛).接下来你有两种可能的决策:…
https://vjudge.net/problem/UVA-103 也是一个经典的DAG模型,因为书上的翻译和原文不照导致WA两发= = 对于同一维度的两个箱子A,B,A可以嵌套在B中的一个充分条件是A所有的边长和 < B所有的边长和,先根据边长和进行排序,在比较A是否能嵌套于B中时,把两个箱子的边长按升序排列后一一对比只要均满足A<B就说明A可以嵌套与B中. #include<bits/stdc++.h> using namespace std; ]; struct box {…
題目:有m+n個們,每個門後面有牛或者車:有n仅仅牛,m輛車,你選擇当中1個: 然後打開当中的k你沒有選中的門後是牛的,問你改變選時得到車的概率. 說明:數學題,概率.全概率公式就可以: 說明:第1001了O(∩_∩)O~ #include <stdio.h> int main() { int cow,car,show; while (~scanf("%d%d%d",&cow,&car,&show)) printf("%.5lf\n&quo…
https://vjudge.net/problem/UVA-10491 题意: 假设有a头牛,b辆车,在最终选择前主持人会替你打开c个有牛的门,输出"总是换门"的策略下,赢得车的概率. 思路:全概率公式的话就是把样本空间分成若干个不相交的部分,计算每个部分的概率并且最后相加. 对于这道题来说,可以分成两种情况,①一开始选中了牛:②一开始选中了车.分别计算出两种情况下的概率并相加. #include<iostream> #include<cstdio> #inc…
按照题目的去推就好了 两种情况 1.第一次选择奶牛的门  概率是 a/(a+b) 打开c扇门后  除去选择的门 还剩 a-1-c+b扇门  则选到车的概率为b/(a-1-c+b) 2.第一次选择车的门 概率是b/(a+b) 打开c扇门后  除去选择的门 还剩 a-c+b-1扇门  则再次选择选到车的概率为(b-1)/(a-c+b-1) 最后结果即为 a/(a+b)* b/(a-1-c+b) + b/(a+b)* (b-1)/(a-c+b-1) #include <iostream> #incl…
公式很好推,表示被高中生物遗传概率计算虐过的人 这个公式简直不需要动脑 #include<cstdio> using namespace std; int main() { double a, b, c; while(~scanf("%lf%lf%lf", &a, &b, &c)) { double ans = (a * b + b * (b - 1)) / ((a + b) * (a + b - c - 1)); printf("%.5l…
#include<bits/stdc++.h> #include<stdio.h> #include<iostream> #include<cmath> #include<math.h> #include<queue> #include<set> #include<map> #include<iomanip> #include<algorithm> #include<stack&g…