题意:模拟克苏恩打奴隶战对对方英雄所造成的伤害

题解:因为昨(今)天才写过记忆化搜索 所以这个就是送经验了

   1A还冲了个榜 但是我惊奇的发现我数组明明就比数据范围开小了啊???

#include <bits/stdc++.h>
using namespace std; int k, a, b, c;
double dp[][][][]; double dfs(int at, int x, int y, int z)
{
if(dp[at][x][y][z]) return dp[at][x][y][z]; double tmp = ;
double fm = 1.0 * (x + y + z + 1.0);
tmp += 1.0 / fm * (dfs(at - , x, y, z) + 1.0);
if(x) tmp += 1.0 * x / fm * dfs(at - , x - , y, z);
if(y)
{
if(x + y + z == ) tmp += 1.0 * y / fm * dfs(at - , x + , y - , z);
else tmp += 1.0 * y / fm * dfs(at - , x + , y - , z + );
}
if(z)
{
if(x + y + z == ) tmp += 1.0 * z / fm * dfs(at - , x, y + , z - );
else tmp += 1.0 * z / fm * dfs(at - , x, y + , z);
}
dp[at][x][y][z] = tmp;
return tmp;
} int main()
{
int T;
scanf("%d", &T);
for(int i = ; i < ; i++)
for(int j = ; j < ; j++)
{
if(i + j > ) continue;
for(int k = ; k < ; k++)
{
if(i + j + k > ) continue;
dp[][i][j][k] = 1.0 / (i + j + k + 1.0);
}
} while(T--)
{
scanf("%d%d%d%d", &k, &a, &b, &c);
double ans = dfs(k, a, b, c);
printf("%.2lf\n", ans);
}
return ;
}

最新文章

  1. 分布式系统理论进阶 - Raft、Zab
  2. Python笔记总结week4
  3. Android高手速成
  4. dubbo源码分析4-基于netty的dubbo协议的server
  5. javascript权威指南笔记--javascript语言核心(六)
  6. 关于IE6浮动问题!
  7. c++ 虚继承与继承的差异 (转)
  8. POI 中的CellRangeAddress 参数
  9. Yaroslav and Divisors
  10. 201521123115 《Java程序设计》第12周学习总结
  11. shell中的数字
  12. html文档知识补充
  13. javaweb聊天室源码免费
  14. requests 可以玩接口自动化测试,爬虫也是可以滴
  15. /etc/security/limits.conf不生效
  16. Netty 系列七(那些开箱即用的 ChannelHandler).
  17. Django之--网页展示Hello World!
  18. 一言难尽的js变量提升
  19. GMA Round 1 极坐标的忧伤
  20. Java 身份证号码验证

热门文章

  1. bzoj 1014 火星人prefix —— splay+hash
  2. 值得网页设计师&amp;前端收藏的实用工具列表
  3. POJ3682;King Arthur&#39;s Birthday Celebration(期望)
  4. Python网络爬虫与信息提取
  5. [AHOI2007]密码箱
  6. Tian Ji -- The Horse Racing HDU - 1052
  7. 线程间的参数传递 分类: linux c/c++ 2014-06-15 17:48 607人阅读 评论(0) 收藏
  8. 转-MAC 下安装PHONEGAP开发环境
  9. E. Comments dfs模拟
  10. hadoop-0.20.2完全分布式集群