继续补题解QAQ
集训题
JZOJ 5414
题意:给一个长度为
n
的序列,求在序列中选
分析:一眼看出,肯定是按位考虑贡献,然后我们马上会想到,如果第
i
位有
JZOJ 5415
题意:
分析:不难想到暴力DP:
但是我们需要考虑的是,这里并不能直接套用,因为有是否满足性质(可否转移)的问题。考虑到如果对于一对 (i,j) 满足 ci=cj 同时 i%ci=j%cj ,那么对于任意 i 和
于是我们就直接按照 ci 和 i%ci 的不同分别维护 maxc2 个栈,然后强行维护凸壳,DP中实际上只需要查满足要求的 maxc 个栈就可以转移了
JZOJ 5416
题意:给出一个排列
T
,以及初始的
分析:考虑出现的次数分为两部分,一部分是原来
m
个字符串的贡献,还有一部分是拼在一起所得。第一部分可以直接计算得,关键在第二部分。
我们考虑到实际上拼在一起的贡献只和这些字符串长度为
(orz%%%出题人……这真是noip模拟吗……)
模拟题(水)
非常的好做,于是我只写t2?
T2.Coke
题意:给
k
个数
分析:这题……是可以变式的orz
原式等价于
∑(a′i−n)=0
那么搜索一发就可以了我怎么没想到呢QAQ
日常乱切
Tsinsen D3516
题意:给一个带权无向图,问如果加多一条边,怎样删最少数目的边使得这条边可以在图的最小和最大生成树上
分析:考虑这条边长度
L
,在最小生成树上有一个桥性质,在这里表现为任意两点之间连接的最短边长实际就是生成树上的某两点直接连接的边长度(最大生成树的结论对称),否则显然可以相互替换。那么我们现在考虑回这条边
Tsinsen D2450
题意:问整系数方程
分析:经典题……之前在smoj上看到过然后就发现了这题……解法非常妙
我们考虑到对于某一个
x
,如果x被凑出来了
那么我们现在要考虑的就是最小的那个怎么凑得出来。取最小的那个(使点数最小化跑得比较快)
ai
,将所有数对
p=minai
取模然后建立相应的节点。这时考虑到
d[(i+u)%p]
可以由
d[i]+u
来得到,所以就直接连边即可,边数很少,只有
O(N2)
级别,但是点数很多,利用Dijsktra+Heap就可以轻松水过