题目链接:https://www.cometoj.com/contest/59/problem/E?problem_id=2714 求期望并且一堆转移基本上就是期望dp了(叉腰 照常的设dp[i]表示i位置到n位置的期望步数.则我们所求的是dp[0]. 初始化dp[n]=0,因为n到n的期望为0. 之后先讨论下i为n-1到n-k的时候. 我们可以列出转移方程(随便写几个 $dp[n-1]=\tfrac{1}{k}*(dp[n]+dp[n-1]+dp[n-2]+\cdot \cdot \cdot…
Comet OJ 夏季欢乐赛 篮球校赛 题目传送门 题目描述 JWJU注重培养学生的"唱,跳,rap,篮球"能力.于是每年JWJU都会举办篮球校赛,来给同学们一个切磋篮球技术的平台.校赛冠军的奖励是看wls女装一次,为了这个目标,大家都努力训练,希望自己能看到wls女装. 教练my*m**y手下有 nn* 名队员,现在他要挑选 55 人组成一个篮球队来参赛.众所周知,一个篮球队伍有五个不同的位置(控球后卫,得分后卫,小前锋,大前锋,中锋),现在教练my*m**y*给出每名队员在每个位置…
Comet OJ 夏季欢乐赛 Gree的心房 题目传送门 题目描述 据说每一个走进Gree哥哥心房的小姑娘都没有能够再走出来-- 我们将Gree哥哥的心房抽象成一个n \times mn×m的地图,初始所有点均为空.当小姑娘走入他的心房时(此时小姑娘的位置为 (1,1)(1,1) 点),他会将kk 个 1 \times 11×1 障碍物放入地图来阻止小姑娘的行动,每个位置最多只能放置一个障碍物(即不能叠加放置).但由于Gree哥哥被小姑娘的美貌所捕获,并没有一套很好的策略去放置这些障碍物,于是就…
Comet OJ 夏季欢乐赛 H 分配学号 题目传送门 题目描述 今天,是JWJU给同学们分配学号的一天!为了让大家尽可能的得到自己想要的学号,鸡尾酒让大家先从 [1,10^{18}][1,1018] 中随机挑选一个数字作为自己的学号.但是总有一些心有灵犀的小伙伴们选择了一样的数字--显然这样是不合法的,因为每个人的学号都应该是唯一的. 于是鸡尾酒决定调整大家的学号.他采用如下两个原则来修改: 1.只增不减,每个人的最终学号 \ge≥ 每个人初始选择的学号 2.总修改量尽量少,总修改量指每一个人…
Comet OJ 2019 夏季欢乐赛题解 我是来骗访问量的 A 完全k叉树 \(n\)个点的完全k叉树的直径. 直接做 B 距离产生美 直接做 C 烤面包片 \(n!!!\mod p\) 显然\(n\)太大就是0,不然直接暴力 D 茶颜悦色 原题 E 飞行棋 最后肯定是起点->最后\(k\)个点->终点(弹回去->..->弹回去->..->终点) 矩乘做出起点到最后\(k\)个点的概率\(f_i\)与期望步数\(g_i\). 最后\(k\)个点任意一个点走到终点的期望…
Preface 在一个月黑风高的夜晚我这个蒟蒻正踌躇着打什么比赛好 是继续做一场AGC,还是去刷一场CF 然后,一道金光闪过(滑稽),我们的红太阳bzt给我指明了方向: 你太菜了,我知道有一场很水的比赛,你快来做吧 然后我就点进比赛,看到了排行榜上Minamoto旁大大的AK二字,不禁心生敬意 同时对于它一人狂得两题一血,身穿两条小裙子的事迹有不免心生敬佩 然后我就开始了刷水之旅(被水题狂虐) 以下题目按照编号顺序排列(怎么感觉在说废话) A 完全k叉树 一眼发现可以处理出这棵树的深度和最后一层…
题面 一开始想到一个 O(N^2) 做法,先把x排序,然后顺次枚举x最大的点,看向前最多可以保留多少点 (也就是先不管正方形的上下长度限制,先考虑左右的限制).然后再对这些点做一遍类似的..(等等这么一说感觉怎么成 O(N^2 logN)的了23333). 但反正这样肯定是不行的,数据太大了,我们要做一些优化. 我们保留限制左右边界的这个过程,看能不能优化一下限制y坐标找答案的过程.    考虑一颗线段树,从左向右第i个叶子节点代表如果上边界在纵坐标i,此时的答案是多少 (注意,右边界是在枚举的…
题面 F比较友善(相较于E),我们发现如果i和j是满足条件的两个下标,那么: a[i]-2*b[i] + a[j]-2*b[j] >=0 或者 b[i]-2*a[i] + b[j]-2*a[j] >=0. 又因为两个条件不可能同时成立(你把左边式子的不等号左边全移到右边试试),所以我们可以分开算两种情况并最后把答案加起来...(其实两种情况是对称的,所以可以直接用一个函数解决,两次调用之间把所有 a[]与b[] swap一下就好啦) 对于每种情况,我们不妨把下标小的移项到右边,然后发现这就是一…
题面 这个题暴好啊,考了很多东西. 首先设f(x)为离终点还有x步要走的期望步数,我们可以发现 : 1.x>=k时,x可以转移到的点的下标都<x. 2.x<k时,则可能走回到x或者下标更大的点. 因为k特别小,所以我们可以把 f(0) (显然是0),f(1),f(2),.....,f(k-1) 暴力高斯消元出来 (这个你们不会的话可以试着把每个0<x<k的x的等式写出来,然后把f(x)项全移到左边,其他项全移到右边,就可以得到一个方程:这样可以列k-1个方程,正好k-1个未知…
题面 被神葱安利安利了本题. 我们贪心的想,如果有那么一坨相等的学号,那么肯定是保留一个人学号不变,其余的再推到学号+1的位置(准备与那个位置的其他人合并)处理. 虽然a[i]可大至1e18,不过如果你的码力够强,还是可以5min写出O(N)的模拟的(而本菜鸡代码能力过菜写了10min) #include<bits/stdc++.h> #define ll long long using namespace std; const int N=100005,ha=1e9+7; int n,ans…