lightoj 1064 Throwing Dice
题意:给你n个骰子,求n个骰子的和不小于x的概率。
刚开始想每给一组数就计算一次~~太笨了- -,看了别人的代码,用dp,而且是一次就初始化完成,每次取对应的数据就行了。WA了好多次啊,首先不明白的就是:
for(int i=;i<=;i++) for(int j=i*;j>=;j--) dp[i][j]+=dp[i][j+];
这段代码不清楚干什么用的,想清楚没?
刚开始求的dp[i][j]表示的是前 i 个骰子掷出总和为 j 的概率 ,题意让求总和不小于 j 的概率,所以把大于 j 的要加上。
然后输出的又WA了好几次~~
有概率为0和1的情况,就不能输出分数形式。
#include<stdio.h>
#include<string.h>
#define N 30
#define LL long long LL dp[N][N*],p[N];
void Init()
{
memset(dp,,sizeof(dp));
p[]=;
for(int i=;i<=;i++) p[i]=p[i-]*;
for(int i=;i<=;i++) dp[][i]=;
for(int i=;i<=;i++)
for(int j=i;j<=i*;j++)
for(int k=;k<=;k++)
if((j-k)>=i-)
dp[i][j]+=dp[i-][j-k];
for(int i=;i<=;i++) for(int j=i*;j>=;j--) dp[i][j]+=dp[i][j+];
}
LL Gcd(LL a,LL b)
{
return b?Gcd(b,a%b):a;
}
int main()
{
Init();
int T,cas=;
int n,x;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&x);
LL a=p[n];
LL b=dp[n][x];
LL yu = Gcd(a,b);
if(a/yu==) printf("Case %d: %lld\n",cas++,b/yu);
else printf("Case %d: %lld/%lld\n",cas++,b/yu,a/yu);
}
return ;
}
lightoj 1064 Throwing Dice的更多相关文章
- Light OJ 1064 - Throwing Dice
题目大意: 给你n个骰子, 问点数大于等于x的概率是多少? #include<cstdio> #include<cstring> #include<iostream> ...
- Throwing Dice LightOJ - 1064 || (勉强能用的)分数类
Throwing Dice LightOJ - 1064 方法: 设ans[i][j]表示i个骰子点数恰好为j的概率.那么ans[1][1]到ans[1][6]都为1/6. 显然,$ans[i][j] ...
- Throwing Dice(概率dp)
C - Throwing Dice Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Lig ...
- lightOJ 1317 Throwing Balls into the Baskets
lightOJ 1317 Throwing Balls into the Baskets(期望) 解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/ ...
- LightOJ1064 Throwing Dice(DP)
第一眼以为是概率DP,我还不会.不过看题目那么短就读读,其实这应该还不是概率DP,只是个水水的DP.. dp[n][s]表示掷n次骰子点数和为s的情况数 dp[0][0]=1 dp[i][j]=∑dp ...
- LightOJ - 1317 Throwing Balls into the Baskets 期望
题目大意:有N个人,M个篮框.K个回合,每一个回合每一个人能够投一颗球,每一个人的命中率都是同样的P.问K回合后,投中的球的期望数是多少 解题思路:由于每一个人的投篮都是一个独立的事件.互不影响.所以 ...
- lightoj刷题日记
提高自己的实力, 也为了证明, 开始板刷lightoj,每天题量>=1: 题目的类型会在这边说明,具体见分页博客: SUM=54; 1000 Greetings from LightOJ [简单 ...
- KUANGBIN带你飞
KUANGBIN带你飞 全专题整理 https://www.cnblogs.com/slzk/articles/7402292.html 专题一 简单搜索 POJ 1321 棋盘问题 //201 ...
- [kuangbin带你飞]专题1-23题目清单总结
[kuangbin带你飞]专题1-23 专题一 简单搜索 POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278 Catch That CowPOJ 3279 Fli ...
随机推荐
- 命令行运行命令时报错You don't have write permissions for the /Library/***
这是由于要运行这些操作时必须有管理员的权限(比方更新软件),比方更新cocoapods时报错 soindy:SmartThermo soindy$ gem install cocoapods Fetc ...
- Apple Mach-O Linker Warning 警告解决的方法
此警告解决的方法: 项目名字 -> targets -> Build Settings -> search path 把里面无用的东西 点 减号 删掉 即可了. $(function ...
- C#运算符的优先级
在C#中,一共有38个常用的运用符,根据它们所执行运算的特点和它们的优先级,为了便于记忆,我将它们归为七个等级:1.单元运算符和括号.2.常规算术运算符.3.位移运算符.4.比较运算符.5.逻辑运算符 ...
- sublime text 2 安装
下载 http://pan.baidu.com/s/1eRemu0y http://jingyan.baidu.com/album/ff4116259b057c12e48237b8.html?pici ...
- (c#)WinForm遍历所有控件
遍历WinForm中的所有控件,只执行一次以下语句是不行的 foreach (Control ctl in this.Controls) { } 这样只能遍历到第一层控件,子控件是遍历不到的,要想遍历 ...
- java之认识基本数据类型及其封装类装箱和拆箱总结
由于在java中,数据类型总共可分为两大种,基本数据类型和引用数据类型.基本类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,java提供了相对应的包装类.对于8种数据类型的总结如下: 自 ...
- flac文件提取专辑封面手记
博客迁移后整理发型这篇文章当时没写完,不补了,不过还是得说明一些东西 下面这部分代码可用之处为从flac文件头开始然后各种形式的大跳,最后到达专辑封面的数据块,之后解析. 当时写的时候不会写图片解析部 ...
- python学习笔记:python对象
一.python对象 python使用对象模型来存储数据,构造任何类型的值都是一个对象.所有的python对象都拥有三个特性:身份.类型和值. 身份:每个对象都有一个唯一的身份标识自己,对象的身份可以 ...
- getActionBar()空指针异常
网上的各种解决方案已经不少了,但是不适合于我的,谷歌一种新的解决方案 you can directly specify it in manifest file 1 2 3 4 <applicat ...
- Eclipse配色插件
1.打开Help -- Eclipse Marketplace 2.搜索Eclipse Color Theme,点击Install 3.安装完成后点击Window -- Preference -- A ...