9.29 - 10.6 更新时间约持续一周
优惠券 Coupons
题目链接:优惠券 Coupons
假设我们某个情况下,我们已经有了 k 种图案,在这个条件下,获得一个新图案需要 天,那我们要求的就是 。由于已经有了 k 种图案,那么获得一个新图案的概率就是 ,那么期望天数 ,最终答案就是
要注意一下分数时候的输出格式。
另外就是这道题我刚开始给卡常了,有点ex。
cpp
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, x, y;
int gcd(int a, int b) { return a == 0 ? b : gcd(b % a, a); }
signed main() {
while (scanf("%lld", &n) != EOF) {
x = n, y = 1;
for (int i = 2; i <= n; i++) {
x = x * i + y * n, y *= i;
int GCD = gcd(x, y);
x /= GCD, y /= GCD;
}
if (x % y == 0) printf("%lld\n", x / y);
else {
int a = x / y;
x %= y;
int lena = log10(a) + 1, leny = log10(y) + 1;
for (int i = 0; i <= lena; i++) printf(" ");
printf("%lld\n%lld ", x, a);
for (int i = 1; i <= leny; i++) printf("-");
puts("");
for (int i = 0; i <= lena; i++) printf(" ");
printf("%lld\n", y);
}
}
return 0;
}