感觉真的大心脏,t3复杂度算错想O(1)解法调了一个半点,最后还是O(n) 的暴力写的。
t1高中数学排列组合直接过,这应该是唯一一道自信的题
t2不会,敲5分钟直接放弃
t3写了暴力的O(n),但感觉应该有O(1)的解法
t4一眼高精,不会写,直接用double骗分
t5也是一眼不会,但是能骗分。把答案式子推一下 $s=gcd(a,b,c)*gcd(a,b)*gcd(b,c)*gcd(a,c)$,就是找最大公因数的最小乘积。然后直接判断能不能找到公因数为1的两个数,这样子的暴力能不能过就赌了,只会再暴力找最小的最大公因数,直接 $n^2$ 骗分,中间还乱用了一个贪心的性质,估计骗不了多少。由于字典序最小,把整个数组快排一下就可。
t6是dfs,考虑交叉需要开个数组jc[i][j][x][y]表示从(i,j)到(x,y)的一条路径。只有在走斜线的时候才会出现交叉,那么特判一下即可。
if(o==1||o==3||o==5||o==7)
{
if(o==1&&jc[i-1][j][x+1][y])
continue;
else if(o==3&&jc[i+1][j][x-1][y])
continue;
else if(o==5&&jc[i+1][j][x-1][y])
continue;
else if(o==7&&jc[i-1][j][x+1][y])
continue;
}
t7优先队列,很惊喜的一道题,以为可以全过,但是被一个数据hack掉了
2 1 1
8 9
正解应该是6,我输出7,这里对当开根号只剩一个的时候作一个特判比较最大和次打选择是否开根号还是除二。我没想到估计丢不少分,看数据能骗多少了。
t8不会写,只能用前缀和的$O(n^4)$来骗分。
希望我是一个合格的骗子,多骗点儿分。