赛时
题意:在一个有n个数的a集合(第i个读入的数编号即为i)里选出三个数组合成三角形,这三个数的编号为i,j,k(i<j<k),求这三个数(以从小到大的形式输出)的最小(指i,j,k最小)解。
依据:三角形的边的性质:两边之和大于第三边
设三角形的三条边为a,b,c
∵a+c>b
∴|a-c|<b
∵a+b>c
∴|a-b|<c
∵b+c>a
∴|b-c|<a
若a<b<c
则可根据上述内容推出以下不含绝对值的结论:
1、c-a<b 2、b-a<c 3、c-b<a
4、a+c>b 5、a+b>c 6、b+c>a
那么a的取值范围为:c-b<a<b+c
b的取值范围为:c-a<b<a+c
c的取值范围为:b-a<c<a+b
若a,b,c没有明确谁大谁小
则a的取值范围变为:|c-b|<a<b+c
b的取值范围变为:|c-a|<b<a+c
c的取值范围变为:|b-a|<c<a+b
若a,b,c依次为Ai,Aj,Ak,那就变成:
则Ai的取值范围为:|Ak-Aj|<Ai<Aj+Ak
Aj的取值范围为:|Ak-Ai|<Aj<Ai+Ak
Ak的取值范围为:|Aj-Ai|<Ak<Ai+Aj
并且结论为:
1、Ai+Ak>Aj 2、Ai+Aj>Ak 3、Aj+Ak>Ai
4、Ak-Ai<Aj 5、Aj-Ai<Ak 6、Ak-Aj<Ai
所以这道题可以先暴力枚k,再枚j,再枚i,期望分应为30分(时超),结果我特么90(数据太水了吧)?
或者用单调队列维护(我不知道该怎么做)
预估正解:单调队列维护
题意:有n个点,m条边(每条边分别连接一个x点和一个y点),那还要加多几条边才能使每个点都至少有k条边(两个点之间可以连若干条边!)。
O(n)方法(期望分100)(我怎么打成了60分?好吧是错解,没有特判):
我们用一个a数组存第i个点已有的边数,由于一个边可以连两个点,那就用一个变量yu存当前还可以使用的边数(前面的点用剩的边数(加的边),也就是另一端(加的边)还没有连点的边的数量),然后扫一遍,如果a[i]<k,那就给它加边,先从变量yu里面拿另一端没有连到点的边来凑,如果不够ans就加上k-a[i](凑了以后的a[i]),这样子答案就出来了。
题意:给了一个由n个数组成的后缀数组A,再给了一个n*26的矩阵数组W(用输入的x0和一条“w[i][j]=x=(100000005x + 1532777326) mod 998244353"的关系式推出整个数组),求价值最大的(w{i, j}表示第i个位置填第j个小写字母的价值)推出来后缀数组是A的字符串的价值和。
我*,这什么鬼,不会啊,这道题跳过。
题意(已被作者篡改成另一个故事,但题目的意思相同):在一个平面直角坐标系(二维宇宙)中有n个恒星际光速飞船,它的坐标的x轴和y轴都是整数,每个恒星际光速飞船必须要向四个方向(沿着这个坐标系的x轴和y轴行驶,也就是上、下、左、右四个方向)之一以亚光速(每个恒星际光速飞船的速度都相同,且速度时瞬间变为亚光速)前进,将这条路变成一条黑域((等同于黑洞),其他飞船一旦走上这个点就会被吸走),所以这条路线上必须没有其他恒星际光速飞船经过,或者是有恒星际光速飞船从这个点出发(出发时也会将这个位置变成黑域),求让这些飞船都不会发生事故的方案有多少个(对998244353取模)
这肯定是道4重(四个方向)以上的dp题,我不知该怎么搞,不会昂,先跳过,比完赛再想。
得分:90+60+0+0=150分
赛后:
T1:我的暴力没判找不到(事实暴力可以过)的情况,挂在了第一个点(我@#&#&%#&@)!
T2:我没判当max(a[i])>sum(a[i])/2的情况,如果是这种情况就要输出max,否则输出sum(a[i])/2(向上取整)
T3:将A数组转成一个Rank数组(就是转成排名),然后dp一下
T4:写一个5重dp