个人对这些题目的感觉如下:
T1 T2 T3 T4 签到题1\orange{签到题1}签到题1 签到题2\red{签到题2}签到题2 是我想多了TwT\orange{是我想多了TwT}是我想多了TwT 大模拟\color{ffe033}{大模拟}大模拟
T5 T6 T7 T8 小模拟\orange{小模拟}小模拟 SA模板\green{SA模板}SA模板 感觉不如方格取数\green{感觉不如方格取数}感觉不如方格取数 [模板]线段树3(?\green{[模板]线段树3(?}[模板]线段树3(?
废话不多说 开解!
T1
数据范围告诉我们需要一个O(1)的解法.
我们可以计算第一次遇到流星雨是在多少岁时,然后就能得出一生能看多少次流星雨了.
T2
按题意模拟即可.
T3
贪心 模拟 按最远的跳
T4
过程如下:
1.将输入的这组排分为顺子和非顺子两种情况去判断.
2.对于顺子,判断是否是同花顺,皇家同花顺.
3.对于非顺子,记录下相同点数的个数,按照最大值与第二大值判断属于哪种类型.
T5
小模拟,只需要判断每次操作会不会形成新的面积为1的正方形即可.
O(1)O(1)O(1) 秒了
T6
骗分方法显然就是求中心点(将所有横坐标纵坐标加起来除以 nnn),但是如何随机偏移呢?
这里就要讲到模拟退火算法了
这个算法的意思是如果新的状态的解更优,就接受新状态;否则也会以一定的概率接受这个新状态.
这个概率应为 e−ΔETe^{\frac{-\Delta E}{T}}eT−ΔE ,其中 ΔE\Delta EΔE 为新旧状态的能量值(就是相当于下面代码的calc函数)差,TTT 表示当前温度(会慢慢降低,使能最终得到稳定的答案).
感谢Macw让答案不需要那么准确
代码如下:
T7
不是这么大个地图 我也搜不过来啊
没事 遇事不决先找小数据,MMM 这么小,有问题
我们又想到每一格的乌龟分为养或者不养两种可能(或者一种),而且不需要判断下面的格子是否有乌龟(只需满足与上面一行无乌龟相邻即可),所以可以使用状态压缩DP.
所以解法就是:枚举每一种可能,然后进行判断.
其中判断左右是否有相邻的乌龟为
判断上面是否有相邻的乌龟为
判断是否有乌龟在养殖设备内为
状态转移方程:
注意,由于这样子可能会有一个乌龟都不放的情况,所以情况数得-1.
这样就完成了……吗?
我的方法需要枚举上下两行的状态,时间复杂度为 O((2M)2)O((2^M)^2)O((2M)2),算上枚举每一行加判断是否有乌龟在养殖设备内总的时间复杂度就为 O(NM×22M)O(NM\times2^{2M})O(NM×22M),最坏情况需要计算约 5.2×1095.2\times 10^95.2×109 次,根本不够用!
那怎么减小运行次数呢?
我们发现可以在判断左右是否有相邻的乌龟下手:先把满足条件的存在vector里,以后就可以通过遍历vector来减少次数了,这时计算次数就减少至约 1.0×1081.0\times 10^81.0×108 次了.(经测试极限数据耗时334ms)
代码如下:
如果N也小于等于10我说不定就真开搜然后做不出来摆烂了
T8
一眼线段树模版,但是如何求区间立方和呢?
我们先以区间平方和为例:
已知 SuS_uSu 存储着 AAA 数组区间 [L,R][L,R][L,R] 的平方和,即 Su=∑i=LR(Ai)2S_u=\sum\limits_{i=L}^R (A_i)^2Su =i=L∑R (Ai )2.
那么若想给 [L,R][L,R][L,R] 中每个数都加 xxx,则新的 SuS_uSu 为
∑i=LR(Ai+x)2\sum\limits_{i=L}^R (A_i+x)^2i=L∑R (Ai +x)2
=(AL)2+(AL+1)2+(AL+2)2+...+(AR−1)2+(AR)2+2(AL×x)+2(AL+1×x)+...+2(AR−1×x)+2(AR×x)+x2+x2+x2+...+x2=(A_L)^2+(A_{L+1})^2+(A_{L+2})^2+...+(A_{R-1})^2+(A_R)^2+2(A_L\times x)+2(A_{L+1}\times x)+...+2(A_{R-1}\times x)+2(A_R\times x)+x^2+x^2+x^2+...+x^2=(AL )2+(AL+1 )2+(AL+2 )2+...+(AR−1 )2+(AR )2+2(AL
×x)+2(AL+1 ×x)+...+2(AR−1 ×x)+2(AR ×x)+x2+x2+x2+...+x2
=Su+2x∑i=LR2Ai+x2×(R−L+1)=S_u+2x\sum\limits_{i=L}^R 2A_i+x^2\times(R-L+1)=Su +2xi=L∑R 2Ai +x2×(R−L+1).
这样就转换成区间求和的问题了!
同理可得区间立方和的求法.