摘要: 思路 dsu on tree的板子,可惜人傻把 打成 cpp include include include include using namespace std; int sz[100100],val[100100],heason[100100],u[100100 Q[100100]; void 阅读全文
posted @ 2018-12-15 23:38 dreagonm 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 思路 好像是一道挺水的计数的,不知道为什么会是紫题 显然每行和每列最多放两个 首先考虑状压,然后发现三进制状压可做,但是三进制太麻烦了,可以拆成两个二进制,一个表示该列是否是放了一个的,一个表示该列是否是放了两个的 可以发现并不需要知道具体每列放了什么,只需要知道有几个即可,所以把有几列放了一个和有 阅读全文
posted @ 2018-12-15 16:07 dreagonm 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 思路 看到这种偏序类的题目,而且不要求强制在线,可以立刻想到cdq分治 注意这题有一个问题,就是询问的是小于等于而不是小于,如果相等的话两个元素会相互贡献,而cdq的特点是右区间不能对左边有影响,所以要先去重,再然后就是板子 代码 cpp include include include using 阅读全文
posted @ 2018-12-15 09:18 dreagonm 阅读(176) 评论(0) 推荐(0) 编辑