2017, X Samara Regional Intercollegiate Programming Contest 题解

 

题目链接

 

A - Streets of Working Lanterns - 2

首先将每一个括号匹配串进行一次缩减,即串内能匹配掉的就匹配掉,每个串会变成连续的y个右括号+连续z个左括号。

我们把缩减后的串分成四类:

第一类:只有左括号

第二类:左右括号都有,且z大于等于y

第三类:左右括号都有,且z小于y

第四类:只有右括号

类与类之间肯定是按第1234类的顺序放置。

第一类内部和第四类内部可以随便放。第二类的放置顺序也很容易想。

问题出在第三类放置的顺序,按照z大的先放是正确方式,其余都能举出反例。

 

B - Pursuing the Happiness

先找出有多少个区间是happiness,接下里分情况讨论:

如果没有:要注意交换后可能出现happiness。

如果有1个:那么可以有多少方式,例如交换第一个和第二个。

如果有2个:可以有多种方式,例如第一个区间的第一个字母和第二个区间的第二个字母交换。

如果大于等于3个:无解。

 

C - Urn with Balls

留。

 

D - Jumps

如果所有的数字的gcdx的约数,则可行,否则不可行。

 

E - Bonuses and Teleports

宝石和跳跃机合起来排序,最左边跳跃机左边那些宝石必须来回走一次,最右边跳跃机右边的那些宝石必须来回走一次。

然后计算每相邻两个跳跃机之间的宝石怎么取费用最小,枚举一下哪个从宝石断开就可以了。

 

F - Circuits

这是我做的第一个交互题。我是随机做法,交了很多次,有一次是通过的,其余全是答案错误。

具体想法是这样的:

假设我们知道其中一个可用的是哪个,那么我们就可以找出所有可用的。

然后我就去猜哪个是可用的,然后验证看看是不是满足条件。验证的时候就是看不可用的数量是否严格小于一半。

因为题目要求在4n次出解,因此我们至少可以猜4次,中一次就可以了,而且每次猜对的概率约等于1/2,再加一点剪枝,可以使得猜的次数增加,具体可以看代码。

 

G - I love Codeforces

模拟一下就可以了。

 

H - Perfect Ban

找到一个最大值的位置,最大值的位置一定要被删掉,不然留下个最值不会让答案更优,接下来有三种策略:

第一种:删掉最大值所在行和列。

第二种:删掉最大值所在的行,再删除剩余矩阵最大值所在的列。

第三种:删掉最大值所在的列,再删除剩余矩阵最大值所在的行。

 

I - Matrix God

一开始的做法:检查每一行的和是否相同,每一列的和是否相同,然后随机选择n个点看是否相同,但是一直答案错误。后来意识到一个问题,假设数据是10001000的矩阵,C矩阵和AB矩阵的差别仅仅是其中的一个22子矩阵,这时候,可以构造出数据使得每一行每一列的和都相同,随机选择n个点大概率也是相同的,所以检测不出来。

后来我检测了每一行的hash值,即和字符串hash做法一样,每一行当做一个字符串,AB矩阵每一行的hash值是可以O(n2)得到的,这样就AC了。

看到大佬都是随机构造一个1nX矩阵做的,只要检查XAB是否等于XC即可,膜。

 

J - Catch the Monster

还在做。

 

K - Competitions

区间按右端点排序,然后就可以dp了,中间要二分一个位置p,只有位置[1,p]是可以转移到位置i的状态的。

 

L - High Probability Cast

区间按L排序,L相同的只保留R最大的那个。

然后一个一个区间加入,加入第i个区间的时候,比Li小的那些位置不需要考虑了,概率肯定是100%。

只需考虑比Li大的那些位置,画画图可以发现是在维护一个斜率递减的图形。

 

M - Last Man Standing

每次让一个ai0的分配给一个aj不为0的人,然后aj就可以减去1,一直这样操作。

 

posted @   Fighting_Heart  阅读(706)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2016-02-07 HDU 2412 Party at Hali-Bula
点击右上角即可分享
微信分享提示