6.11(J,K,L,M,N)

J - Magic Stones

题意:

  给定两个序列c和t,每次可以进行一个操作让c[i]=c[i-1]+c[i+1]-c[i](1<i<n)

思路:

  首先c1和t1,cn和tn必须相等,先设一个数组c1,c2,c3,c4和t1,t2,t3,t4,如果我们改变c3,那么c3'=c4+c2-c3,那么c4-c3'=c3-c2,c3'-c2=c4-c3,可以发现交换的是c4-c3和c3-c2,所以判段两个差分数组就可以了。

 

K - Perfect Triples

题意:

  每次选择一个数字不重复的三元组(a,b,c),满足a xor b xor c=0,加入序列S中,求序列S的第n项

思路:

  看了半天没发现什么规律,数列的前几项是(1 2 3)(4 8 12)(5 10 15)(6 11 13)(7 9 14)...由于是要xor,写成二进制

  1 10 11   100 1000 1100   101 1010 1111  110 1011 1101  111 1001 1110  10000 100000 110000  10001 100010 110011...

  就可以发现除去第一组,剩下的数字结尾都是以00 01 10 11循环,然后第三第四位也是如此,第一个数在最前面加个1,第二个数在最前面加个10,第三个数在加个11

 

L - Sum of Digits

题意:

  定义f(x)为数字x的各位数之和,给一组n和k,找到x满足f(x)+f(x+1)+...+f(x+k)=n

思路:

  题目范围k<9,所以最多有一次进位,且n<=150,所以最多10+位,所以可以枚举数字x的位数.进位的位置i和第一位数字j,第一位到第i位之间全部填9,最后判断剩下的值%k是否等于0

 

M - Kuroni and the Score Distribution

题意:

  构造一个数列a满足ai+aj=ak(i<j<k)的情况共有m组

思路:

  对于一个数列,最多的情况就是1,2,3,4...,每增加一个数字x,满足条件的组数就加(x-1)/2,先一直加到边界,下一个数字枚举,剩下的位置从大到小

 

N - Koa and the Beach (Hard Version)

题意:

  有n片沙滩,有个初始深度,每2k秒内,前k秒+1,后k秒-1,当深度大于l时会淹死,每秒可以前进一格或不动,问是否能穿过

思路:

  这个没有要求最快的时间,只问了能否通过,沙滩中在d[i]+k<l的位置是可以无限停留的,那么就是要从穿过安全点之间的区域,所以时间为下降段到上升段之间的时间,然后每个位置可以求出一个最早到达的时间,然后保证时间递增且在上升段时不超过l,否则NO

posted @ 2021-06-11 22:17  kasiruto  阅读(108)  评论(0编辑  收藏  举报