说好的人均3.5道题呢?骗我们打代码
A筱玛爱地理
在经济地理学中,交通的联结度表示交通网络的发达程度,通常用贝塔指数来计算与比较。若用$V$表示一个交通网络中结点的数量,用$E$表示边的数量,则贝塔指数的计算方式为:$ \beta = \frac{E}{V}$。
“实践是检验真理的唯一标准”。作为一个热爱地理的好筱玛,她马上就把新学的知识应用到实践当中去。筱玛一口气出了$n$张交通网络规划图,其中第$i$张交通网络$G_i$有$V_i$个结点和$E_i$条边。筱玛一眼就看出了哪张图好、哪张图坏。但是作为一个负责任的好筱玛,她必须带领同学们一起进步。因此,她需要你将所有的$n$张图按照贝塔指数排序,并求出它们各自的贝塔指数在模$10^9+7$意义下的值
直接计算$\beta$(浮点数),然后排序,再求逆元输出取模之后的结果就好了
1 |
|
D筱玛爱线段树
筱玛的爷爷马爷在游戏中被筱玛吊打了,于是他恼羞成怒,决定给筱玛出这样一道数据结构题:
给定一个长度为n的数组A,刚开始每一项的值均为0。
支持以下两种操作,操作共m次:
1 l r :将$A_i \sim A_j$的每一项的值加上1。
2 l r :执行操作编号在[l,r]内的所有操作各一次,保证r小于当前操作的编号。
m次操作结束后,你要告诉马爷A数组变成什么样子了。
由于答案可能会很大,你只需要输出数组
A中的每个数在模 $10^9+7$ 意义下的值
方法一:线段树,维护了两棵线段树即可
1 |
|
方法二:差分(留坑待补……)
E筱玛爱游戏
两个人轮流从桌面上取走一个数,并把这个数放入集合中。
如果在某次操作结束后,集合中存在一个异或和为0的非空子集,那么进行这次操作的人输。
如果全部取完,则最后操作的人赢。
筱玛和马爷都聪明绝顶,他们都会按照最优策略进行游戏。
马爷作为筱玛的爷爷,决定让筱玛选择先手还是后手。
筱玛为了稳操胜券,想提前知道对于当前的游戏,是先手必胜还是后手必胜。
筱玛想考考你,让你帮他解决这个问题
思路:每一个数都是一个向量,以二进制形式的向量,此时数的异或就是向量的加法(不带进位),就是求所有向量不相关的集合,其实就是矩阵的秩。然后就要求所有的向量组矩阵的秩,如果秩为偶数,后手赢,否则先手赢。可以通过高斯消元或者线性基,这里是线性基的方法
1 |
|