Josephina and RPG

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 929    Accepted Submission(s):
265
Special Judge

Problem Description
A role-playing game (RPG and sometimes roleplaying
game) is a game in which players assume the roles of characters in a fictional
setting. Players take responsibility for acting out these roles within a
narrative, either through literal acting or through a process of structured
decision-making or character development.
Recently, Josephina is busy playing
a RPG named TX3. In this game, M characters are available to by selected by
players. In the whole game, Josephina is most interested in the "Challenge Game"
part.
The Challenge Game is a team play game. A challenger team is made up of
three players, and the three characters used by players in the team are required
to be different. At the beginning of the Challenge Game, the players can choose
any characters combination as the start team. Then, they will fight with N AI
teams one after another. There is a special rule in the Challenge Game: once the
challenger team beat an AI team, they have a chance to change the current
characters combination with the AI team. Anyway, the challenger team can insist
on using the current team and ignore the exchange opportunity. Note that the
players can only change the characters combination to the latest defeated AI
team. The challenger team gets victory only if they beat all the AI
teams.
Josephina is good at statistics, and she writes a table to record the
winning rate between all different character combinations. She wants to know the
maximum winning probability if she always chooses best strategy in the game. Can
you help her?
 
Input
There are multiple test cases. The first line of each
test case is an integer M (3 ≤ M ≤ 10), which indicates the number of
characters. The following is a matrix T whose size is R × R. R equals to C(M,
3). T(i, j) indicates the winning rate of team i when it is faced with team j.
We guarantee that T(i, j) + T(j, i) = 1.0. All winning rates will retain two
decimal places. An integer N (1 ≤ N ≤ 10000) is given next, which indicates the
number of AI teams. The following line contains N integers which are the IDs
(0-based) of the AI teams. The IDs can be duplicated.
 
Output
For each test case, please output the maximum winning
probability if Josephina uses the best strategy in the game. For each answer, an
absolute error not more than 1e-6 is acceptable.
 
Sample Input
4
0.50 0.50 0.20 0.30
0.50 0.50 0.90 0.40
0.80 0.10 0.50 0.60
0.70 0.60 0.40 0.50
3
0 1 2
 
Sample Output
0.378000
 
 /*                    dp[i+1][j]
dp[i][j]=
dp[i+1][num[i]]
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<set>
#include<map>
#include<vector>
#include<stack>
#include<queue>
using namespace std;
const int ms=;
const int cms=;
const int MAXN=;
double dp[MAXN][cms];
double p[cms][cms];
int num[MAXN];
int main()
{
int i,j,k,t,n,m,cnt;
while(scanf("%d",&n)!=EOF)
{
for(cnt=,i=n;i>=(n-+);i--)
cnt*=i;
cnt/=;
for(i=;i<cnt;i++)
for(j=;j<cnt;j++)
scanf("%lf",&p[i][j]);
scanf("%d",&m);
for(i=;i<=m;i++)
scanf("%d",&num[i]);
for(i=;i<=cnt;i++)
dp[m+][i]=1.0;
for(i=m;i>;i--)
{
for(j=;j<cnt;j++)
{
dp[i][j]=p[j][num[i]]*max(dp[i+][j],dp[i+][num[i]]);
}
}
double ans=-1.0;
for(j=;j<cnt;j++)
if(ans<dp[][j])
ans=dp[][j];
printf("%.6lf\n",ans);
}
return ;
}

Josephina and RPG的更多相关文章

  1. 2013长沙赛区现场赛 J - Josephina and RPG

    J - Josephina and RPG Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  2. hdu4800 Josephina and RPG 解题报告

    Josephina and RPG Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  3. Josephina and RPG HDU - 4800

    A role-playing game (RPG and sometimes roleplaying game) is a game in which players assume the roles ...

  4. DP ZOJ 3735 Josephina and RPG

    题目传送门 题意:告诉你C(m,3)个队伍相互之间的胜率,然后要你依次对战n个AI队伍,首先任选一种队伍,然后战胜一个AI后可以选择替换成AI的队伍,也可以不换,问你最后最大的胜率是多少. 分析:dp ...

  5. hdu 4800 Josephina and RPG

    简单dp #include<cstdio> #define maxn 10005 #include<cstring> #include<algorithm> usi ...

  6. HDU 4800/zoj 3735 Josephina and RPG 2013 长沙现场赛J题

    第一年参加现场赛,比赛的时候就A了这一道,基本全场都A的签到题竟然A不出来,结果题目重现的时候1A,好受打击 ORZ..... 题目链接:http://acm.hdu.edu.cn/showprobl ...

  7. The 2013 ACM-ICPC Asia Changsha Regional Contest - J

    Josephina and RPG Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge A role-playin ...

  8. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

  9. 【经典】C++&RPG对战游戏

    博文背景: 还记大二上学期的时候看的这个C++&RPG游戏(博主大一下学期自学的php,涵盖oop内容),一个外校的同学他们大一学的C++,大二初期C++实训要求做一个程序填空,就是这个 RP ...

随机推荐

  1. 纯CSS3实现宽屏二级下拉菜单

    今天我们要来分享一款基于纯CSS3的宽屏二级下拉菜单,这款菜单的子菜单在展开的时候是很宽敞的,菜单项中可以自定义格式的内容,非常实用,也很大气.由于是用纯CSS3实现,所以这款下拉菜单不用运行Java ...

  2. 取消本地SVN文件夹与服务器关联

    问题:之前建了一个SVN代码库,同步了代码上去,但中途发现建库时的规则搞错了,就把服务器上的库给删了重建,然后改变本地代码的svn服务器关联地址,但使用Relocate一直报错. 错误有两种情况:1. ...

  3. leetcode@ [327] Count of Range Sum (Binary Search)

    https://leetcode.com/problems/count-of-range-sum/ Given an integer array nums, return the number of ...

  4. Linux虚拟机创建后如何进行登录(Windows Azure)

    Linux虚拟机创建后如何进行登录 若要管理虚拟机的设置以及在其上运行的应用程序,可以使用安全外壳 (SSH) 客户端.为此,您必须在计算机上安装要用于访问虚拟机的 SSH 客户端.您可以选择很多 S ...

  5. Emacs和它的朋友们——阅读源代码篇(转)

    正如那本<Code Reading>一书中指出的那样,源代码阅读一直没有被很好的重 视:你上大学的时候有“代码阅读”这门课吗?相信没有. 1 Source Insight 谈到阅读源代码, ...

  6. 【转】Maven实战(一)---Maven Build--缺少Jar包

    原博文出于: http://blog.csdn.net/liutengteng130/article/details/41426955   感谢! 新建的Maven项目,在build的时候总是打包失败 ...

  7. AutoCAD.NET二次开发:创建自定义菜单的两种方法比较

    目前我已经掌握的创建CAD菜单方法有两种: COM方式: http://www.cnblogs.com/bomb12138/p/3607929.html CUI方式: http://www.cnblo ...

  8. [C语言 - 1] C语言数据类型

    基本数据类型: byte short int unsigned int long long long unsigned long float double char char * The size ( ...

  9. Javascript/Jquery——简单定时器的多种实现方法

    第一种方法: <script language="javascript"> //使用setInterval间歇调用 (不建议使用该方法) $(function(){ s ...

  10. javascript 工具方法(长期更新)

    //密码强度判断,低级:不到八位:中级:八位以上:高级:八位以上并加入了特殊符号. function pwdStrength(pwd) { var pwdLevel; if ((pwd &&a ...