摘要:"codeforces" 很有意思的构造题,自己并没想到 构造方法就是每次从一列的第一个连向最后一列的最后一个,然后不断交叉去连。 连完这两列后再往内走一个,以此类推 代码: c++ include include include using namespace std; define rg reg 阅读全文
posted @ 2019-08-23 18:36 蒟蒻--lichenxi 阅读 (21) 评论 (0) 编辑
摘要:"codeforces" 简单题 考虑每次都买它能买的最大的,所以他买的一定是价格比他钱低的东西。 我们考虑建立权值线段树,对于$a_i$将$[1,a[i]]$这一段加$1$,对于$b_i$将$[1,b[i]]$这一段减$1$。 每次查询就查询最右边的值大于$0$的,因为这意味着在他后面还有没被购买 阅读全文
posted @ 2019-08-23 17:21 蒟蒻--lichenxi 阅读 (19) 评论 (0) 编辑
摘要:"codeforces" 有一个很显然的$O(a+b)$的做法可以想到,就是枚举$k$,然后$O(1)$判断 如何$O(1)$判断,我们显然考虑将这个序列每$k$个分一个块,只要判断存不存在合法方案就行了 其实这个时候很显然就能想到整除分块了,所以复杂度已经优化到$O(\sqrt{a+b})$了 判 阅读全文
posted @ 2019-08-23 17:08 蒟蒻--lichenxi 阅读 (22) 评论 (0) 编辑
摘要:"codeforces" 考虑只有三个字符,所以每四个必然选出两个来,也就是不存在$\rm impossible$的情况 所以我们简单模拟就好了,从两端往中间扫,不匹配就移动一端,时间复杂度$O(n)$。 代码: c++ include include include include using n 阅读全文
posted @ 2019-08-23 16:36 蒟蒻--lichenxi 阅读 (13) 评论 (0) 编辑