题1: Uva 1636 Headshot

题目大意:

给出一个000111序列,注意实际上是环状的。问是0出现的概率大,还是当前是0,下一个还是0的概率大。

问题比较简单,注意比较大小: A/C > B/D  <=> A * D > B * C

 #include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <iostream> using namespace std; char str[]; void Solve(){
int len = strlen(str);
int cnt1 = , cnt2 = ; for(int i = ; i < len; ++ i){
if(i == len - ){
if(str[i] == '') ++ cnt1;
if(str[i] == '' && str[] == '') ++ cnt2;
}
else{
if(str[i] == '') ++ cnt1;
if(str[i] == '' && str[i + ] == '') ++ cnt2;
}
} if(cnt2 * len > cnt1 * cnt1) puts("SHOOT");
else if(cnt2 * len < cnt1 * cnt1) puts("ROTATE");
else puts("EQUAL");
} int main(){
while(scanf("%s", str) != EOF){
Solve();
} return ;
}

Uva 1636

题2: Uva 1637 Double Patience

扑克牌拿牌问题。开一个9维的数组,记忆化搜索。

 #include <bits/stdc++.h>

 using namespace std;

 double f[][][][][][][][][];
bool vi[][][][][][][][][];
char str[][], poker[][]; double dfs(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9){
if(vi[p1][p2][p3][p4][p5][p6][p7][p8][p9])
return f[p1][p2][p3][p4][p5][p6][p7][p8][p9];
vi[p1][p2][p3][p4][p5][p6][p7][p8][p9] = true; bool flag = false;
int top[] = {, p1, p2, p3, p4, p5, p6, p7, p8, p9};
double &x = f[p1][p2][p3][p4][p5][p6][p7][p8][p9]; for(int i = ; i <= ; ++ i)
if(top[i]){
flag = true;
break;
}
if(!flag)
return x = 1.0; int cnt = ;
double sumper = ; for(int i = ; i <= ; ++ i){
if(top[i]){
for(int j = i + ; j <= ; ++ j){
if(top[j] && poker[i][top[i]] == poker[j][top[j]]){
cnt ++;
top[i] --; top[j] --; sumper += dfs(top[], top[], top[], top[], top[], top[], top[], top[], top[]); top[i] ++; top[j] ++;
}
}
}
} if(sumper > ) x = (double) sumper / cnt; return x;
} int main(){
while(~scanf("%s%s%s%s", str[], str[], str[], str[])){
memset(f, , sizeof f);
memset(vi, false, sizeof vi); for(int i = ; i <= ; ++ i)
poker[][i] = str[i -][];
for(int i = ; i <= ; ++ i){
scanf("%s%s%s%s", str[], str[], str[], str[]);
for(int j = ; j <= ; ++ j)
poker[i + ][j] = str[j - ][];
} dfs(, , , , , , , , ); printf("%.6lf\n", f[][][][][][][][][]);
} return ;
}

Uva 1637

题3:Uva 1639 Candy

题目大意:

两盒子糖,每盒中都有N个,在一个盒子中取的概率是p,另一个是1-p,求一个盒子没有糖之后另一个盒子剩的糖数的期望。

式子不难列,高中数学期望会考。但是主要是计算,组合数是极大数,概率又是极小数,计算机算的话要取对数,把大数化小,小数化大,乘法变加,

除法变减。 注意精度。不要为了简化代码新定义变量等于一长串代码中的一部分,会挂精度。

 #include <bits/stdc++.h>

 using namespace std;

 const int N =  + ;

 int n, cnt = ;
double p;
long double fac[N]; int main(){ fac[] = ;
for(int i = ; i <= ; ++ i)
fac[i] = fac[i - ] + log(i); while(~scanf("%d%lf", &n, &p)){
double ans = ; ++ cnt;
if(p == || p == ){
printf("Case %d: %.6lf\n", cnt, (double) n);
continue;
} int U = * n; for(int i = ; i <= n; ++ i){
ans += exp(fac[U - i] - fac[n] - fac[n - i] + log(p) * (n + ) + log( - p) * (n - i)) * i + exp(fac[U - i] - fac[n] - fac[n - i] + log(p) * (n - i) + log( - p) * (n + )) * i;
} printf("Case %d: %.6lf\n", cnt, ans);
} return ;
}

Uva 1639

数学期望和概率DP题目泛做(为了对应AD的课件)的更多相关文章

  1. 【整理】简单的数学期望和概率DP

    数学期望 P=Σ每一种状态*对应的概率. 因为不可能枚举完所有的状态,有时也不可能枚举完,比如抛硬币,有可能一直是正面,etc.在没有接触数学期望时看到数学期望的题可能会觉得很阔怕(因为我高中就是这么 ...

  2. 动态规划之经典数学期望和概率DP

    起因:在一场训练赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6829 题目大意:有三个人,他们分别有\(X,Y,Z\)块钱 ...

  3. POJ2096Collecting Bugs(数学期望,概率DP)

    问题: Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other material ...

  4. 插头DP题目泛做(为了对应WYD的课件)

    题目1:BZOJ 1814 URAL 1519 Formula 1 题目大意:给定一个N*M的棋盘,上面有障碍格子.求一个经过所有非障碍格子形成的回路的数量. 插头DP入门题.记录连通分量. #inc ...

  5. 期望与概率dp

    概率与期望dp 定义: 概率:事件A发生的可能性,计作P(A) 期望:事件A结果的平均大小,记住E(x) ​ E(x)=每种结果的大小与其概率的乘积的和 注意计算概率时需要考虑是否要用容斥原理 期望d ...

  6. 【长期计划】Atcoder题目泛做

    之前学长跟我说的是700-的应该都能自己做? 然后1000-的应该都能有一定的思路? 记不清了 但总之是要智力康复一下 又加上文化课比较紧 所以这个大概就会是长期计划了 ————————————分鸽线 ...

  7. bzoj 3566: [SHOI2014]概率充电器 数学期望+换根dp

    题意:给定一颗树,树上每个点通电概率为 $q[i]$%,每条边通电的概率为 $p[i]$%,求期望充入电的点的个数. 期望在任何时候都具有线性性,所以可以分别求每个点通电的概率(这种情况下期望=概率 ...

  8. 后缀自动机/回文自动机/AC自动机/序列自动机----各种自动机(自冻鸡) 题目泛做

    题目1 BZOJ 3676 APIO2014 回文串 算法讨论: cnt表示回文自动机上每个结点回文串出现的次数.这是回文自动机的定义考查题. #include <cstdlib> #in ...

  9. 基尔霍夫矩阵题目泛做(AD第二轮)

    题目1: SPOJ 2832 题目大意: 求一个矩阵行列式模一个数P后的值.p不一定是质数. 算法讨论: 因为有除法而且p不一定是质数,不一定有逆元,所以我们用辗转相除法. #include < ...

随机推荐

  1. libtcmalloc 简单使用

    下载地址: https://github.com/gperftools/gperftools这个编译很简单,直接进入vsprojects\libtcmalloc_minimal,用vc编译即可,整个过 ...

  2. No2_5.类的高级特性_Java学习笔记_抽象类和成员内部类

    一.抽象类1.所谓抽象类,只声明方法的存在而不去实现它的类:2.抽象类不能被实例化,即不能实现其对象:3.abstract class 类名{ 类体 }4.包含一个或多个抽象方法的类必须声明成抽象类: ...

  3. MySQL数据库恢复(使用mysqlbinlog命令)

    binlog是通过记录二进制文件方式来备份数据,然后在从二进制文件将数据恢复到某一时段或某一操作点. 1:开启binlog日志记录 修改mysql配置文件mysql.ini,在[mysqld]节点下添 ...

  4. Oracle11g R2学习系列 之六数据库链接,快照及序列

    Create public database link link_name Connect to user identified by password using 'DBName' 为'DBName ...

  5. React java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.edaixi.activity/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit

    E/AndroidRuntime: FATAL EXCEPTION: main Process: com.edaixi.activity, PID: 3659 at java.lang.Runtime ...

  6. [转]jQuery插件开发精品教程,让你的jQuery提升一个台阶

    原文链接:http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html 要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其 ...

  7. 布尔值(Boolean values)

    布尔值是特殊的整数. 尽管布尔值由常量 True 和 False 来表示, 如果将布尔值放到一 个数值上下文环境中(比方将 True 与一个数字相加), True 会被当成整数值 1, 而 False ...

  8. 根据样式获取被选中的checkbox

    <ul id="> </div> </li></ul> $("#btn_CheckManagerCompletionCreateAt ...

  9. 升级10.11后使用CocoaPod出现-bash: pod: command not found 解决办法-备

    升级10.11后,运行pod命令出现: -bash: pod: command not found 解决办法: sudo gem install -n /usr/local/bin cocoapods ...

  10. Linux里如何设置IP(RED HAT)

    一共包括以下两步 1:通过setup命令设置IP 保存…… --如果‘Use DHCP'处事[*],则可能无法手动输入IP,子网掩码和网关. 解决办法: 修改脚本/etc/sysconfig/netw ...