摘要: 传送门 可以预处理出每种颜色的上下左右的位置,这样就框出来了一个个矩形,代表每种颜色分别涂了哪里。 然后用二维的差分。 就可以求出来每个位置至少涂了几次,如果 > 1 的话,就肯定不是先涂的, 如果是1的话,并且不是只有一种颜色,那么也有可能是先涂的, 如果只有一种颜色,并且 n != 1,那么一定 阅读全文
posted @ 2017-09-21 20:25 zht467 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 传送门 发现就是逆序对 可以树状数组求出 对于旋转操作,把一个序列最后面一个数移到开头,假设另一个序列的这个数在位置x,那么对答案的贡献 - (n - x) + (x - 1) 阅读全文
posted @ 2017-09-21 17:37 zht467 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 传送门 1.每个数的左右位置预处理出来,按照左端点排序,因为左端点是从小到大的,我们只需要知道每条线段包含了多少个前面线段的右端点即可,可以用树状数组 2.如果 ai < bj < bi, 也就是说在两个i之间只有一个j那么对答案的贡献为1,所以可以用树状数组,当第一次出现一个数的时候,那个位置+1 阅读全文
posted @ 2017-09-21 15:03 zht467 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 传送门 f[i][j]表示当前第i个,且最后一个位置连接到j 第一维可以省去,能连边的点可以预处理出来,dp可以用线段树优化 阅读全文
posted @ 2017-09-21 14:59 zht467 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 传送门 把每个点和曼哈顿距离距离它3步或1步的点连一条边,边权为3 * t + a[x][y] 因为,走3步,有可能是3步,也有可能是1步(其中一步拐了回来) 最后,把终点和曼哈顿距离距离它1步和2布的点连一条边,边权为 步数 * t 跑一边spfa即可 阅读全文
posted @ 2017-09-21 11:14 zht467 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 传送门 网上的题解: 枚举左端点,二分右端点位置,最后所有左端点的答案取最小值 我的题解。。。 二分答案,枚举左端点,看看是否有解。。 好像和上面是反的,但是思路没问题 过程用hash判重 阅读全文
posted @ 2017-09-21 10:07 zht467 阅读(272) 评论(0) 推荐(0) 编辑