YCOJ003

YCOJ003(育才20240902模拟赛)

有2场没写,不想写了,一场 \(rk1\) 一场挂爽了。

这场不是很难。

T1:

简要题意:给定 \(n\) 个数的序列 \(a\),钦定 \(i,j(1 \leq i,j\leq n)\) 之间有一条边权为 \(a_i\times a_j\) 的边,求最小生成树。

简单分讨,如果全是负数或正数因为不论怎么乘都是正数,那么其他 \(n-1\) 个点连向权值最小的点即可。

否则权值正的连负的,负的连正的即可。

T2:

Robot and String - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

\(f_{i,j}\) 为字符 \(s_i\) 变成 \(j\) 的最小右端点。

显然

  • \(f_{i,j}=i,j=s_i\)
  • \(f_{i,j}=f_{f_{i,j-1}+1,j-1},j>s_i\)
  • \(f_{i,j}=f_{f_{i,27}+1,j},j<s_i\)

其中 \(f_{i,27}\) 表示空字符串的位置。

此时显然可以倍增,最后看删完没有就行。

T3:

P6303 eJOI2018] AB 串 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

差点场切,呜呜呜,细节好多,挂了 29pts。

显然一段连续的字母可以缩成一个字母。

发现答案和最长的字符串的长度有关,考虑让两个字符串长度相等。

如果开头两个不一样,那么直接交换,可以发现可以一次性消掉 2 个,如果一样把长度那一个的前一个换下来即可。

T4:

T507586 打怪(monster) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

签。

显然花费金币数为 \(a_i\times 2^{x-1}\) \(x\) 使比 \(a_i\) 小或等于的数的个数。

然后打表发现设当前数出现次数为 \(p\)

则当前赚到的金币数为 \(2^{n-p}\)

posted @ 2024-09-04 15:01  Mu_leaf  阅读(70)  评论(0)    收藏  举报