湛蓝色的初一,柠檬色的海。
上午教练找了些网络流的板子题,基本爆0嘻嘻.
下午51nod省选模拟赛,切了B拿了C的最高档暴力(除了分块qwq),A的暴力DP写不出来有点可惜.
其实懒得写
A 抽卡大赛
51Nod为了活跃比赛前的气氛,组织了场抽卡比赛。这场比赛共 nn个人参加,主办方根据非欧血统鉴定器,得到了一些数据。每个人抽卡有 MiMi 种可能,得到的卡能力值为 AijAij 代价为 GijGij 的可能性为 PijPij ,所谓代价指的是玩家需要将一轮比赛后所得的点头盾的 Gij% 交给主办方。每轮比赛每个人都随机抽取卡片,待全部人抽取完毕后进行排名(按照A从大到小排),排在第 ii 位的人有 ViVi 的点头盾收入。现在主办方想知道一轮比赛后每个人的期望收入。
输入
1 | 第一行一个正整数 n |
输出
1 | 输出 n 行,每行一个数表示每个人的期望收入 |
输入样例
1 | 2 |
输出样例
1 | 1 |
题解
只会指数做法,暂时咕咕咕.
B 异或约数和
定义 f(i)f(i) 为 ii 的所有约数的异或和,给定 n(1≤n≤1014)n(1≤n≤1014) ,求 f(1) xor f(2) xor f(3) xor…xor f(n)f(1) xor f(2) xor f(3) xor…xor f(n) (其中xor表示按位异或)
样例解释:
$f(1) = 1$
$f(2) = 1 xor 2 = 3$
$f(3) = 1 xor 3 = 2$
$f(4) = 1 xor 2 xor 4 = 7$
$1 xor 3 xor 2 xor 7 = 7$
输入
1 | 一行,输入一个整数n |
输出
1 | 一行,一个整数为答案 |
输入样例
1 | 4 |
输出样例
1 | 7 |
题解
先想了个最简单的$O(nlogn)$的暴力处理约数模拟一下,20多分.
然后正当我准备分段打表的时候,我突然想到这不就是所有1~n出现了多少次就xor多少次.
然后就是求
$Xor \sum_{i=1}^{n}[\biggl\lfloor\frac{n}{i}\biggr\rfloor mod 2]i$
然后就是$O(n)$ , 45
然后我们整除分块找找规律$O(logn)$求一下前缀异或,就是$O(\sqrt{n}logn)$ , 65
然后输出一下规律,发现可以$O(1)$前缀异或,$O(\sqrt{n})$ , AC
似乎逻辑非常清晰的一道题.
C 小朋友的笑话
小O是一个很萌很萌的女孩子。
有一天小O叫了很多很多萌萌哒小朋友到家里来玩。
由于太无聊了,她们开始讲笑话。
总共有N个小朋友排成一排,编号1~N。
在某个时刻,会有编号为xi的小朋友看到了笑话li,然后她会把这个笑话讲出来,与她距离不超过ki的小朋友都会听到这个笑话。
当一个小朋友听到一个笑话时,如果她是第一次听得到这个笑话,那么她会觉得这个笑话非常好笑,笑的停不下来。如果她听到之前就是在笑的她会继续笑。
如果她之前听过这个笑话,那么她会觉得这个笑话非常无聊,她会立即停止笑。
现在小O想知道,在某些时刻一段区间内有多少小朋友在笑。
输入
1 | 第一行两个整数N,M,表示小朋友的数量和事件数量,(1<=N,M<=100000) |
输出
1 | 对每个询问操作,输出答案 |
输入样例
1 | 10 14 |
输出样例
1 | 1 |
题解
暂时只会一个bitset暴力,本来想口胡一个CDQ分治的做法结果失败了….
暴力给每个人维护一个听过的桶.只需要把桶用bitset就可以加快一点速度,拿到24分.
感觉这题挺有意思,改天写下.
最大密度子图
题意: 给你一组点,点有点权,一组边,边有边权.可以选定一组点集,端点都在其中的边将被选中,设边权之和为$\sum E$,点权之和为$\sum V $, 请求出最大的$\frac{\sum E}{\sum V}$
数据范围是Dinic接受范围.
题解
Emmmmm据说在郑州学过,可是发高烧的我根本没学会啥……
这种题可以使用最小割模型.
就像上面那样 , 我们从源点向每个代表边的点连一个边权的流量,然后边的点分别向两个端点连INF边表示不能割掉,然后那些代表原图中点的点向汇点连点权乘比值(0/1分数规划)
注意乘比值!!
然后我感觉从这个啥也没学到,甚至不怎么理解为什么这么做很正确.
真是尴尬.
分治FFT看完也来不及写了
明天补完锅好了.