T1
给出一个长度为
n
n
n的字符串,改变其中最少的字符数,使得前
k
k
k个字符和后
k
k
k个字符相等。
一开始想打个暴力,但是感觉细节太多,重叠部分会很难处理,再仔细一看数据规模与约定,有个额外限制说有
50
%
50\%
50%的数据保证
1
≤
k
≤
⌊
n
2
⌋
1≤k≤\lfloor \frac{n}{2} \rfloor
1≤k≤⌊2n⌋,所以就只拿这
50
50
50分吧。
T2
给出
n
n
n个长度为
m
m
m的
01
01
01串,每一位做
x
o
r
xor
xor,
o
r
or
or,
a
n
d
and
and操作中的一种,需要确定每一位的这个操作,问还需要至少再给出几个串。
一开始看了好久没看懂题,然后感觉应该是每位需要
2
2
2个
1
1
1,
2
2
2个
0
0
0。在后来搞清楚了这三个位运算是干啥的,应该是需要
2
2
2个
1
1
1,
1
1
1个
0
0
0就够了。
T3
给一个长度为
n
n
n的序列,输出修改后的序列,修改后序列保证两两互质,并且修改量最小。
一开始
g
c
d
gcd
gcd和线性筛的板子都敲好了,但是感觉细节好多啊,最后没能写出来,随便骗了一下分不知道行不行。
T4
T
T
T组数据,每次输入长度为
n
n
n的序列(从
1
1
1到
n
n
n不重复),看看是否存在
a
x
+
a
z
=
a
y
a_x+a_z=a_y
ax+az=ay,其中
x
<
y
<
x
x<y<x
x<y<x。
正解一时间没想到,然后打了个暴力,每次标记序列中有哪些数,然后线性向右移动,把第
y
y
y个数字前数标记一下,然后判断。
成绩出来了
T 1 T1 T1写的 50 50 50分,但由于数据被水所以有 85 85 85, T 2 T2 T2直接 A A A, T 3 T3 T3没分,吃饭的时候还开玩笑说能搞个五维数组水 30 30 30分, T 4 T4 T4得了 40 40 40分算是意料之中。
正解
T
1
T1
T1分情况写比较方便,当
k
>
⌊
k
2
⌋
k>\lfloor \frac{k}{2} \rfloor
k>⌊2k⌋时统计每个应该相同的的位置出现最多的字符。
T
3
T3
T3装压DP,而且还得写上写优化
T
4
T4
T4权值线段树+
H
a
s
h
Hash
Hash