#2026. 「JLOI / SHOI2016」成绩比较   题目描述 THU 的 G 系中有许许多多的大牛,比如小 R 的室友 B 神.B 神已经厌倦了与其他的同学比较 GPA(Grade Point Average,平均学分绩),他只在意 G 系中共有多少同学被他“碾压”. B 神声称,在 G 系共有 kkk 位同学被他碾压.同是 G 系大牛的 D 神则认为 B 神在吹牛,他查到了 B 神每门必修课在 G 系的排名.他用了 173 毫秒的时间就计算出了有多少种情况使得 B 神所说的话成立.现…
很好的锻炼推柿子能力的题目 LOJ #2026 题意 有$n$个人$ m$门学科,第$ i$门的分数为不大于$U_i$的一个正整数 定义A「打爆」B当且仅当A的每门学科的分数都不低于B的该门学科的分数 已知第一个人第$ i$们学科的排名为$ R_i$, 即这门学科不低于$ n-R_i$人的分数,但一定低于$ R_i-1$人的分数 求有多少种方案使得第一个人恰好「打爆」了$ k$个人 两种方案不同当且仅当存在两个人的分数不同 $ n,m \leq 100 ,U_i \leq 10^9$ $ Sol…
题解 用\(f[i][j]\)表示考虑了前i个排名有j个人被碾压 \(f[i][j] = f[i - 1][k] \* C[k][j] \* C[N - k - 1][N - r[i] - j] \* P[i]\) P[i]是成绩排列的方式,意义是在前面k个人里选了j个来碾压,并将人数空缺用上一次没有碾压的来填补 \(P[i]\)怎么求,对于一个i,考虑枚举B君的成绩,也就是 \(\sum_{j = 1}^{u_{i}} j^{N - r[i]}(u_{i} - j)^{r[i] - 1}\)…
#2024. 「JLOI / SHOI2016」侦查守卫   题目描述 小 R 和 B 神正在玩一款游戏.这款游戏的地图由 nnn 个点和 n−1n - 1n−1 条无向边组成,每条无向边连接两个点,且地图是连通的.换句话说,游戏的地图是一棵有 nnn 个节点的树. 游戏中有一种道具叫做侦查守卫,当一名玩家在一个点上放置侦查守卫后,它可以监视这个点以及与这个点的距离在 ddd 以内的所有点.这里两个点之间的距离定义为它们在树上的距离,也就是两个点之间唯一的简单路径上所经过边的条数. 在一个点上放…
#2025. 「JLOI / SHOI2016」方   题目描述 上帝说,不要圆,要方,于是便有了这道题. 由于我们应该方,而且最好能够尽量方,所以上帝派我们来找正方形.上帝把我们派到了一个有 NNN 行 MMM 列的方格图上,图上一共有 (N+1)×(M+1)(N + 1) \times (M + 1)(N+1)×(M+1) 个格点,我们需要做的就是找出这些格点形成了多少个正方形(换句话说,正方形的四个顶点都是格点). 但是这个问题对于我们来说太难了,因为点数太多了,所以上帝删掉了这 (N+1…
orz #include <iostream> #include <cstdio> using namespace std; typedef long long ll; int n, m, k, C[105][105], u[105], r[105], g[105]; const int mod=1e9+7; int ksm(int a, int b){ int re=1; while(b){ if(b&1) re = (ll)re * a % mod; a = (ll)a…
题解 有什么LNOI啊,最后都是JLOI罢了 一道非常--懵逼的统计题 当然是容斥,所有的方案 - 至少有一个点坏掉的正方形 + 至少有两个点坏掉的正方形 - 至少有三个点坏掉的正方形 + 至少有四个点坏掉的正方形 总共的方案就是 \(\sum_{i}^{min(n,m)}i \* (n - i + 1) \* (m - i + 1)\) 至少有一个点坏掉的怎么统计,我们考虑这个点在底边,左边有l个坐标右边有r个坐标,上面有h个坐标 设\(z = min(l + r,h)\) 如果高度大于左右两…
题解 童年的回忆! 想当初,这是我考的第一次省选,我当时初二,我什么都不会,然后看着这个东西,是不是能用我一个月前才会的求lca,光这个lca我就调了一个多小时= =,然后整场五个小时,我觉得其他题不可做,一直杠这题的20分,然后...day1爆零了,之后day2手玩提答好像骗了一点,总归是没爆零 那么这个东西是可爱的树dp啦 首先我们考虑m = n(因为大体的代码都需要这个思路吧 我们设\(f[u][d]\)是u这个点不包括u,可以继续往上覆盖d个点最少需要的代价 \(g[u][d]\)是u这…
too hard #include <iostream> #include <cstdio> using namespace std; int n, d, m, uu, vv, hea[500005], cnt, w[500005], f[500005][22], g[500005][22]; bool vis[500005]; struct Edge{ int too, nxt; }edge[1000005]; void rn(int &x){ char ch=getch…
Loj #2495. 「AHOI / HNOI2018」转盘 题目描述 一次小 G 和小 H 原本准备去聚餐,但由于太麻烦了于是题面简化如下: 一个转盘上有摆成一圈的 \(n\) 个物品(编号 \(1\) 至 \(n\))其中第 \(i\) 个物品会在 \(T_i\) 时刻出现. 在 \(0\) 时刻时,小 G 可以任选 \(n\) 个物品中的一个,我们将其编号记为 \(s_0\).并且如果 \(i\) 时刻选择了物品 \(s_i\),那么 \(i + 1\) 时刻可以继续选择当前 物品或者选择…