uva 10759(数论)
来源:互联网 发布:质谱软件 编辑:程序博客网 时间:2024/06/03 20:53
题意:有n个骰子,给出一个目标值x,求出得到的所有骰子点数之和大于x的概率。
题解:分母肯定是6^n,分子需要dp得到,开一个二维数组f[i][j]表示i个骰子组成和大于等于j的情况有多少种。状态转移方程是f[i][j + k] += f[i - 1][j],然后两个值求最大公约数约分一下就可以了。
#include <stdio.h>#include <string.h>#include <math.h>#define ll long longint n, sum;ll f[25][160];ll gcd(ll a, ll b) {return b == 0 ? a : gcd(b, a % b);}void init() {memset(f, 0, sizeof(f));f[0][0] = 1;for (int i = 1; i <= 24; i++)for (int j = 0; j <= 150; j++)if (f[i - 1][j])for (int k = 1; k <= 6; k++)f[i][j + k] += f[i - 1][j];}int main() {init();while (scanf("%d%d", &n, &sum) && n + sum) {if (sum <= n) {printf("1\n");continue;}ll res1 = 0, res2 = pow(6, n);for (int i = sum; i <= 150; i++)res1 += f[n][i];if (res1 == 0) {printf("0\n");continue;}long long temp = gcd(res1, res2);printf("%lld/%lld\n", res1 / temp, res2 / temp);}return 0;}
0 0
- uva 10759(数论)
- UVa 11889 Benefit (数论)
- UVA 10110(数论)
- UVA 571(数论)
- UVA 1529 - Clock(数论)
- UVA 278 - Chess(数论)
- uva 1529 - Clock(数论)
- UVA 10127 - Ones(数论)
- UVA 10090 - Marbles (数论)
- UVA 756 - Biorhythms(数论)
- uva 10127 - Ones(数论)
- UVA 1434 - YAPTCHA(数论)
- uva 1434 - YAPTCHA(数论)
- UVa 571 - Jugs (数论)
- uva 10105(数论)
- uva 10375(数论)
- uva 11027(数论)
- uva 10056(数论)
- 最强大android开发中文指南网站
- POJ 2337 Catenyms (有向图欧拉通路)
- C#操作配置文件(一)
- 架构师
- C#操作配置文件(二)
- uva 10759(数论)
- 利用数组作为缓存池实现对象的缓存
- 深入解析NoSQL数据库的分布式算法
- pip 在windows下的更新升级
- 刷新和加载
- 【HDOJ 2031】 进制转换
- 在已有Windows 7/8/8.1的PC上装Ubuntu14.04双系统的安装指南及常见问题
- 调用Android系统相册并裁剪图片
- python win32 Workbooks.Open path error