Educational Codeforces Round 160 (Rated for Div.2)

A Rating Increas

题目大意

给定一个数字,让我们拆分成两个数,这两个数满足以下条件:

  1. a < b.
  2. 两个数没有前缀0.

问:输出满足条件的数a , b.

解题思路

直接暴力循环这个数的位数次,若满足a < b,再判断两个数的位数和是否与拆分前相同.

代码


B Swap and Delete

题目大意

给一个01字符串s,现在有以下操作:

  1. 交换s[i],s[j],此操作花费为0.
  2. 删除s[i],此操作花费一个金币.

将修改后的字符串记录为t.
问:至少花费多少金币,使得t[i] != s[i] (0 <= i <= t.size()).

解题思路

我们可以记一下有多少个0 和多少个1,
然后我们遍历一次字符串,check当前0的个数是否大于1的总数和当前1的个数是否大于0的总数

代码

C Game with Multiset

题目大意

有两种查询类型:

  1. ADD x,即在集合中添加2^x的元素.
  2. GET w,即询问集合中的某子集之和,能否等于w.

解题思路

很显然,本题考查位运算,用数组模拟,其中cnt[i]表示集合中2^i的元素个数.

代码

Built with MDFriday ❤️