CF Polycarpus' Dice (数学)】的更多相关文章

Polycarpus' Dice time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Polycarp has n dice d1, d2, ..., dn. The i-th dice shows numbers from 1 to di. Polycarp rolled all the dice and the sum of n…
C. Polycarpus' Dice Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/534/problem/C Description Polycarp has n dice d1, d2, ..., dn. The i-th dice shows numbers from 1 to di. Polycarp rolled all the dice and the sum of number…
题意:第一行给两个数,n 和 A,n 表示有n 个骰子,A表示 n 个骰子掷出的数的和.第二行给出n个数,表示第n个骰子所能掷出的最大的数,这些骰子都有问题, 可能或多或少的掷不出几个数,输出n个骰子掷不出的数的个数. 析:我们只要考虑两个极端就好,考由其他骰子投出的最大值和最小值,还有自身在最大值和最小值,作一个数学运算就OK了.公式如下: 骰子的最大值-能投的最大值+能投的最小值-1. 代码如下: #include <cstdio> #include <string> #inc…
这道题比赛中没做出来,赛后搞了好久才出来的,严重暴露的我薄弱的数学功底, 这道题要推公式的,,,有类似于1*a+2*a^2+3*a^3+...+n*a^n的数列求和. 最后画了一张纸才把最后的结果推出来.::(x*M^x)/N. 而且通过这道题我发现有些数学函数还不如直接循环来的快, 例如这道题中求x的值的时候. [我在此收回前面的话,昨天是oj的问题,今天我又交了一遍log的代码,耗时变成了0ms了...OMG] 方法一: int x = int(log(n)/log(m)+0.5);    …
在每个位置讨论一下最大值最小值的取值范围就行 #include<cstdio> #include<iostream> #define maxn 200003 using namespace std; typedef long long LL; LL a[maxn],b[maxn]; int main() { LL n,s; while(scanf("%I64d %I64d",&n,&s)!=EOF) { LL sum=; // memset(b,…
http://codeforces.com/contest/675/problem/C 题目大意: 给一个环,标号为1-n,然后能从n回到1.让这个环的值为0,最少需要的操作数是多少? 这道题目呀...应该说是自己的问题吧,规律并没有那么难找的,只要我将前缀全部都计算一遍就完全可以找出规律了的...然后竟然没有去那么做. 首先我们分析,最多的次数就是n-1.然后我们再看,因为是一个环,那么如果每次前缀和出现了0,就是说明这一段内可以得到0,那么所移动的次数就可以少1. 然后我们在反过来分析,我们…
题目描述: 一个n面的骰子,求期望掷几次能使得每一面都被掷到. 题解:先谈一下期望DP. 一般地,如果终止状态固定,我们都会选择逆序计算. 很多题目如果顺序计算会出现有分母为 0 的情况,而逆序计算中则不会出现. 比如,对于本题,我们设状态 $F_{i}$ 表示当前已翻过 $i$ 种不同的面,为了翻完每个面还需要额外翻的期望次数. 终止状态: $F_{n}=0$  考虑枚举到 $F_{i}$ ,那么当前翻到的面有两种可能. $1.$ 先前被翻过,那么该概率是 $P_{1}=\frac{i}{n}…
[题目链接]:http://codeforces.com/contest/534/problem/C [题意] 给你n个奇怪的骰子,第i个骰子有di个面; 然后给你n个骰子的点数之和; 问你每一个骰子有哪一些面是不可能出现的; [题解] 对于第i个骰子 设它的点数为x 设其他n-1个骰子的最大点数之和(即∑di)为restmax 如果 x+restmax< A 且x是最大的满足这个条件的x; 则1..x这些点数都不能出现; 同时还有 设其他n-1个骰子的最小点数之和(即n-1)为restmin…
昨晚忘记判只有一个字符的情况fst了呜呜呜 挺有趣的题,昨晚连刚带猜弄出结论 考虑答案的取值,最优答案可能是一个后缀,或者是一个前缀,或者是一个后缀加上前缀 那么翻转之后最优答案的可选值就有了1的前缀+n的后缀 对于一个合法的zebra串,无论怎么翻转都不会影响他的取值,所以预处理一遍扫过去找答案即可. 强烈谴责CF昨晚的数学大赛pretest数据太水 Code: #include <cstdio> #include <cstring> using namespace std; ;…
A. Exam 果然,并没有3分钟秒掉水题的能力,=_=|| n <= 4的时候特判.n >= 5的时候将奇数和偶数分开输出即可保证相邻的两数不处在相邻的位置. #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; ) puts("1\n1"); ) puts("2\n1 3\n"); ) puts("4\n2 4 1 3\…