codeforces 1221
传送门 A 2048 题意:multiset里面有许多2的幂,每次可以从multiset取出两个一样的数字,放回去两数之和,问能否出现2048. 分析:优先队列模拟操作 B knights 题意:棋子可以走日字,将n*n的棋盘用W与B填满,代表两个阵营的棋子,使得可以互相攻击的点对数量最大。 分析:大水题 解法一: bfs,在左上角先放一个棋子,然后在可以攻击到的地方放敌对棋子,然后重复直到没有格子可以填。 解法二: 棋子与他可以攻击到的位置的曼哈顿距离为奇数,所以构造棋盘使得不存在相邻的B与W即可,就像国际象棋的棋盘。 C Perfect Team 题意:c,m,x代表coder,mathematician,和咸鱼,一只队伍必须要有一个coder和mathematician,必须要有三个人,求最多队伍数。 分析:解法一:不考虑人数配置,队伍数为(c+m+x)/3,考虑人数配置,将这个值跟c和m三个值取最小值即为答案。 解法二:比较容易想到,先组出c,m,x各一个的队伍,对于剩下来的人,二分可以组出的队伍数量,加上前面的结果就是答案。 D Make The Fence Great Again 题意:给定数组a和b,ai是第i元素的值,bi是将ai+1的代价,求最小代价,使得a中没有相邻的元素相同。 分析:首先,很容易想到对于每一个元素只需要+0,+1或