P1042 乒乓球

题目大意 赢 11 分并且压对手两分以上则一局结束,否则要追分至压对手两分。 给定 $\texttt{WL}$ 序列,分别求 11 分制和 21 分制下每场比分,$\texttt{E}$ 是结束符。 分析 这是一道比较烦的模拟题,很绕。 char ch[62510]; int solve(int win, int len) { int w = 0, l = 0; for (ll i = 0; i < len; i++) { w += ch[i] == 'W'; l += ch[i] == 'L'; if (max(w, l) >= win && abs(w - l) >= 2) { printf("%d:%d\n", w, l); w = l = 0; } } printf("%d:%d\n", w, l); } int main() { char ccc; int len = 0; while (scanf("%c", &ccc) !...

September 23, 2020 · rogeryoungh

P2181 对角线

题目大意 凸 $n$ 边形中,任意三条对角线不共点,求所有对角线交点的个数。 分析 注意到一个交点对应凸多边形 $4$ 个定点,于是等价于 $n$ 个点任选 $4$ 个点的选法种数,即 $$ \binom{n}{4} = \frac{n(n-1)(n-2)(n-3)}{24} $$ 注意爆 long long,需要写成 n * (n-1) / 2 * (n-2) / 3 * (n-3) / 4。 int main() { unsigned long long n; scanf("%llu", &n); n = n * (n - 1) / 2 * (n - 2) / 3 * (n - 3) / 4; printf("%llu", n); return 0; }

September 22, 2020 · rogeryoungh