Problem A Advertising Strategy

显然把\(x\)两部分是最优的。一部分在第一天用,另一部分在最后一天用。

暴力枚举第一天用多少,然后剩下的都在最后一天用。

直接模拟这个过程即可,因为次数是\(log(n)\)级别的。

要注意模拟过程的时候可能会死循环。

 


Problem B Byteland Trip

留坑。


Problem C Carpet

构造的矩阵\(y\)很小。所以我们要尽量的在行上面放。

对于每一个结点\(x\),我们肯定会把他最长的链单独拿出来作为,然后其余的放在下一列,尽量的避免冲突。

具体地,我们用\(g[x]\)表示最长链所在的儿子编号,\(c[x]\)表示\(x\)为根结点的子树的结点数量

如果当前子树的根结点放在\((x,y)\),我们把最长链所在的儿子放在\((x+c[x]-c[g[x]],y)\),其余的儿子一次放在\(x+\sum_{i\in x_child} c[i],y+1\)。


Problem D Decoding of Varints

 按照题意模拟一下。


Problem E Empire History

留坑。


Problem F Fake or Leak?

留坑。


Problem G God of Winds

显然,如果有解的话,一定又无穷多组解。

那么我们不妨把\((0,0)\)位置的数定下来,然后计算出其他位置的数。

一个位置相关四个位置,直接dfs把所有的位置求出来。

然后再把求出来的位置check一下是否符合,符合的话,那么这个就是一个解,否则就是无解了。

注意会爆int。


Problem H Hilarious Cooking

一个数列里的数都是连续的。

我们可以通过给出的这些数,求出整个数列和的最大值和最小值,那么显然这个范围内的数都是有解的。

计算最大值,区间两端的数固定,一定是先在大的一遍上升,在下降到小的一遍;

最小值就肯定是在小的一遍下降,然后在上升到大的一边。

细节比较多。


Problem I Infinite Gift

留坑。


Problem J Judging the Trick

留坑。


 


发表评论

电子邮件地址不会被公开。 必填项已用*标注