【ZOJ】【3329】One Person Game

概率DP

  kuangbin总结题目中的第三道

  看来还是没有进入状态啊……都说是DP了……当然是要找【状态之间的转移关系】了……

  本题中dp[i]跟 dp[i-(k1+k2+k3)] 到dp[i-1]都有关系……然后所有的dp[i]都跟dp[0]即ans有关……

  用【系数】进行转移……sigh最近越来越水了

 1 //BZOJ 1000
 2 #include<cmath>
 3 #include<vector>
 4 #include<cstdio>
 5 #include<cstring>
 6 #include<cstdlib>
 7 #include<iostream>
 8 #include<algorithm>
 9 #define rep(i,n) for(int i=0;i<n;++i)
10 #define F(i,j,n) for(int i=j;i<=n;++i)
11 #define D(i,j,n) for(int i=j;i>=n;--i)
12 #define pb push_back
13 using namespace std;
14 int getint(){
15     int v=0,sign=1; char ch=getchar();
16     while(!isdigit(ch)) {if(ch==‘-‘) sign=-1; ch=getchar();}
17     while(isdigit(ch))  {v=v*10+ch-‘0‘; ch=getchar();}
18     return v*sign;
19 }
20 const int N=1e7+10,INF=~0u>>2;
21 /*******************template********************/
22
23 double A[505],B[505],p[20];
24
25 int main(){
26 //    freopen("input.txt","r",stdin);
27     int T=getint();
28     int k1,k2,k3,a,b,c,n;
29     while(T--){
30         n=getint(); k1=getint(); k2=getint(); k3=getint();
31         a=getint(); b=getint(); c=getint();
32         double p0=1.0/k1/k2/k3;
33         memset(p,0,sizeof p);
34         F(i,1,k1) F(j,1,k2) F(k,1,k3)
35             if (i!=a || j!=b || k!=c) p[i+j+k]+=p0;
36
37         D(i,n,0){
38             A[i]=p0; B[i]=1;
39             F(j,1,k1+k2+k3){
40                 if (i+j>n) break;
41                 A[i]+=A[i+j]*p[j];
42                 B[i]+=B[i+j]*p[j];
43             }
44         }
45         printf("%.15lf\n",B[0]/(1-A[0]));
46     }
47     return 0;
48 }

时间: 2024-10-27 17:58:09

【ZOJ】【3329】One Person Game的相关文章

【ZOJ】3380 Patchouli&#39;s Spell Cards

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3957 题意:m个位置,每个位置填1~n的数,求至少有L个位置的数一样的概率(1<=n,m,l<=100) #include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct inum { static const int N=205,

【ZOJ】3785 What day is that day? ——浅谈KMP应用之ACM竞赛中的暴力打表找规律

首先声明一下,这里的规律指的是循环,即找到最小循环周期.这么一说大家心里肯定有数了吧,“不就是next数组性质的应用嘛”. 先来看一道题 ZOJ 3785 What day is that day? Time Limit: 2 Seconds      Memory Limit: 65536 KB It's Saturday today, what day is it after 11 + 22 + 33 + ... + NN days? Input There are multiple tes

ZOJ输出 【杭电-3783】 附:2009浙大研究生复试题

/* ZOJ Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1588    Accepted Submission(s): 1129 Problem Description 读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出. Input 题目包含多组用例,

【ZOJ】3430 Detect the Virus

动态建树MLE.模仿别人的代码模板各种原因wa后,终于AC. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <queue> 5 using namespace std; 6 7 #define MAXN 515*70 8 #define NXTN 256 9 10 bool visit[515]; 11 char str[3005]; 12 unsigned

【ZOJ 4070】Function and Function

[链接] 我是链接,点我呀:) [题意] [题解] 递归一会. 会发现最后肯定是0,1一直循环. 开始循环之后就直接返回结果就好. [代码] #include <bits/stdc++.h> #define ll long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) using namespace std; const int N

【AC大牛陈鸿的ACM总结贴】【ID AekdyCoin】人家当初也一样是菜鸟

acm总结帖_By AekdyCoin 各路大牛都在中国大陆的5个赛区结束以后纷纷发出了退役帖,总结帖,或功德圆满,或死不瞑目,而这也许又会造就明年的各种"炸尸"风波.为了考虑在发退役贴以后明年我也成为"僵尸"的可能性,于是改名曰"总结贴",不提比赛细节,不提比赛流水账,权当是大学本科生涯中acm生活的点滴记录-- (1)入门篇甲 PS:下面内容为 Ctrl+a,c,v的产物 ===================================

HDU1394 Minimum Inversion Number 【线段树】+【逆序数】

Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9864    Accepted Submission(s): 6069 Problem Description The inversion number of a given number sequence a1, a2, ..., an

【转】【DP_树形DP专辑】【9月9最新更新】【from zeroclock&#39;s blog】

树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多信息,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树都出现了,二叉树.三叉树.静态搜索树.AVL树,线段树.SPLAY树,后缀树等等.. 枚举那么多种数据结构只是想说树方面的内容相当多,本专辑只针对在树上的动态规划,即树形DP.做树形DP一般步骤是先将树转换为有根树,然后在树上进行深搜操作,从子节点或子树中返回信息层层往上更新至根节点.这里面的关键就是返回的信息部分,这个也没一般性的东西可讲

【HDOJ图论题集】【转】

1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How Many Tables 基础并查集★ 4 1272 小希的迷宫 基础并查集★ 5 1325&&poj1308 Is It A Tree? 基础并查集★ 6 1856 More is better 基础并查集★ 7 1102 Constructing Roads 基础最小生成树★ 8 1232

【Windows10&nbsp;IoT开发系列】配置篇

原文:[Windows10 IoT开发系列]配置篇 Windows10 For IoT是Windows 10家族的一个新星,其针对不同平台拥有不同的版本.而其最重要的一个版本是运行在Raspberry Pi.MinnowBoard和Galileo平台上的核心版.本文重点针对Raspberry Pi平台的Windwos10 IoT配置做介绍. Windows 10 IoT Editions ​一:设置你的电脑. 注:​开发Windows10 IoT的电脑需要Visual Studio 2015.