20251016模拟赛总结

总结

预计:230,实际:180

A(cipher)

预计:100,实际:100

  • 思路历程:由于括号匹配问题不需要考虑匹配先后问题,所以先把能匹配的先匹配扔掉,剩下的用问号去模拟分配即可
  • 细节:会分为两种情况:))?)?((?(或者((?((?。但是这两种情况可以用同种做法解决:把)和(所在区间分开,剩下的问号再内部匹配,完美
    缺点:实现用时较长,用1h左右,应注意先把实现思路写下来再打代码

B(seq)

预计:100,实际:50

  • 思路历程:
    关键节点1:看到是将不同串拼接,想到了把(变成1,)变成-1,去实现
    关键节点2:由于是不同串拼接后的最优附加属性,想到状压DP
    到这已经有50分了,但是不知道怎么处理新的串中间val<0的答案统计问题
  • 题解:重点(本质上是单调性吗?)
    关键节点3:上述的val<0的问题可以通过预处理解决。在统计第i个串的某个val的个数的时候,如果有某个值<val,则它与后面的val都不统计,见下图

image

C(france)

预计:30,实际:30

  • 思路历程:看到了boss的数值是单调不降的,考虑对卡牌的生命值分块,失败
  • 题解:
    关键节点1:可以对不同攻击力时有的贡献统计,再用双指针统计答案即可

D(tree)

预计:0,实际:0

  • 思路历程:无
  • 题解:

总结

  1. 应该先设计代码思路再开打
posted @ 2025-10-17 14:57  姜树  阅读(6)  评论(0)    收藏  举报