1054 The dominant Color
没什么好说的,map之~
注意题里说严格多数是一定存在的
1055 The World's Richest
这道题目的测试点2数据量较大,易超时
做法是
每条数据编为node
放入vector的数组(以age(0, 200]为下标)
按worth-name排序
这里不用set存储是因为vector可以用下标操作,比较好处理
再用优先队列做M次循环
优先队列按worth-age-name排序
每次出队一个node就入队一个相同age的node(如果有的话)
用一个辅助数组记录这是该age的第几个node即可
这样可以保证最后的输出是按worth-age-name排序的
如果把所有符合age的node筛选出来做排序再输出会超时
1056 mice and rice
这道题目真正的困难在于读懂题意,表述得很不清楚,又是英文的
注意区分编程者的编号和编程的出场顺序,别绕晕了
可以用list进行操作,写一个函数在循环体中操作,当一次操作中一个loser都没有产生的时候跳出循环
最后转化为序号依次输出即可
1057 Stack
普通的栈操作用STL的stack
求中间那个数可以用树状数组
由于可能有重复的数,就用数组A存放大小为数组下标的数的个数做++和--操作,对应push和pop
此时问题转化为求其前缀和是总的前缀和的一半的数
用二分法即可求解
答案是满足sum(mid-1)<sumall&&sum(mid)>=sumall的mid