训练日记7.9

一、训练赛情况

  1. A.Two Rival Students(AC)(水题)
    题意:
    有长度为n的序列,有两个位置分别为a跟b的学生,他们有矛盾,现在你可以交换x次使得他们之间的距离最大,交换的人必须是位置相邻的。
    思路:
    看懂题目就会做了,直接按题目所说的模拟就可以

  2. B.Minimize the Permutation(AC)
    和昨天的B题一模一样…就不多说了

  3. C.Dominated Subarray
    题意:
    给出一个序列,要求找出他的长度最小的区间,满足区间内有唯一的众数。
    思路:
    这个题比赛的时候想了好久还是没出来,之后一看题解发现自己想多了…其实区间出现最多的就是出现两个。因为不管出现多少个,要算这个区间的长度的时候,看的就是相同2个之间的距离,所以暴力枚举只要和上一个位置相比较,取最小的就ok,可以用map记录一下比较方便。

  4. D.Yet Another Monster Killing Problem
    题意:
    题意:有n个怪兽,每个怪兽有个血量,再给出m个奥特曼,每个奥特曼两个属性攻击力跟耐久力,每天可以派一个奥特曼出战,能战胜怪兽的条件是其攻击力大于怪兽的血量,每消灭一个怪兽耐久力,就会减少一个,当耐久力为0或者怪兽被消灭完则退出战斗。
    思路:
    定义个d数组表示能攻击i天的最大攻击力。然后每次枚举能攻击的天数j,如果d[j]≥这j天的最大值则继续尝试增加天数,否则break。这个d数组的求法就是求个后缀最值就可以了,因为考虑个问题,如果能攻击i天的最大攻击力为j,那么j这个攻击力也一定能攻击i - 1天。

  5. E.The Contest
    题意:
    分别给出长度为n,m,k的a,b,c的序列,序列中的元素为[1, n + m + k]的不同数字。每一次操作可以从一个序列中拿出一个数放到另一个序列,代价为1.问最少代价使得a序列的元素为1~n+m+k的一个前缀,c为一个后缀,b为中间一个序列。某个序列可以为空。
    思路:
    设d[i][j]表示第i个数字属于序列j的最小代价。
    所以可以得出
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    再记录个vis数组,如果当前数字i属于第j个序列,d[i][j]–
    最后取个min就行了

  6. F.Make Them Similar
    题意:
    给出一个数组a,让你找到一个数字满足异或完每个数后得到的数相似.
    思路:
    相似的定义就是二进制位中1的个数相同, 这题可以折半枚举,先枚举答案的前15位,记录每个数字前15位异或完后含有多少多少个1,再枚举后十五位,每次枚举再枚举答案异或完这些数字后这些数字含有多少个1,再在枚举的前15位中查询是否有满足条件的输出即可,最后如果没有就是-1。

二、总结

今天这个比赛心态打崩了,B题想了好久也没想出来,看了看其他的题也没啥思路都没啥心情做下去了。就出了两道题,其中一道还是昨天的原题…有种越打越菜的感jio。调整了下心态,看了看题目有关的知识,位运算啥的。这一天就这么过去了。
明天继续!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值