A:略
B:构造,考虑m最小为1,所以构造的两个数之和的数字和为1。下面给出一种构造方法,a=99…99(500个9)00…0(499个0)1, b=99…9(500个9)
C:给定n个矩形,找出一个点,使其至少被n-1个矩形覆盖。考虑按y从大到小线段树维护扫描线。但在考场我忽略了n个矩形会产生2*n个不同的横坐标,也就是说线段树维护的值域最坏在2*n,以至于fst。
D:给定n个操作,add p或accept p。add p表示添加一个价值为p的sell或buy(保证不重复)。accept p表示接受一个最优的sell或buy且这个值为p。求方案数mod1e9+7。(sell的最优质为sell集合内的最小值,buy的最优值为最大值,添加的sell不能低于buy的最大值,添加的buy不能低于sell的最小值)考虑用set暴力模拟,我们开三个set分别表示sell,buy,unknown。对于add操作,若p>=sell.begin(),则sell.insert(p)。若p<=*buy.rbegin(),则buy.insert(p)。否则unknow.insert(p)。对于accept操作,若p在unknown内,答案*2,否则再在sell和buy里查找。最后将unknown按p分成两部分比p小的插入sell,比p大的插入buy,情况unknown。答案就是ans(unknown.size()+1)。
Codeforces AIM Tech Round 5 总结
最新推荐文章于 2018-08-29 06:57:47 发布