
其它-离散化
Endless_Way
这个作者很懒,什么都没留下…
展开
-
BZOJ 4584 [Apio2016]赛艇
区间离散化+DPAiBiAiBi太大了,一个数一个数地做肯定不行。于是先按照区间端点把区间离散化,至多形成2n−12n-1个区间。f[i][j][k]f[i][j][k]表示第i个学校,派出的数量在第j个离散区间内,且第j个区间内有k个学校的方案数。f[i][j][1]f[i][j][1]可以由所有f[i−n][j−m][k]f[i-n][j-m][k]转移过来,于是DP的时候记下前缀和来统计。f[原创 2016-09-10 11:12:03 · 341 阅读 · 0 评论 -
BZOJ 4195 & UOJ 127 [Noi2015]程序自动分析
并查集出现矛盾当且仅当x1=x2且x1!=x2于是先处理所有等于,把两个数用并查集并起来,对于每一个不等于判断一下就好了NOI为什么会有这种题。。。#include<map>#include<cstdio>#include<cstring>#include<algorithm>#define N 100005using namespace std;int a[N], b[N], c[N]原创 2016-09-25 15:26:56 · 365 阅读 · 0 评论 -
BZOJ 3333 排队计划
每排序一次,减少的只能是在p的右边由所有小于等于h[p]的数构成的逆序对。用线段树维护区间最小值,没个数只需访问一次,总时间复杂度O(nlogn)#include<cstdio>#include<algorithm>#define N 500005#define ll long long#define lowbit(_i) (_i&-_i)using namespace std;stru原创 2016-10-29 13:49:05 · 391 阅读 · 0 评论 -
BZOJ 4444 [Scoi2015]国旗计划
破环为链+离散化+倍增环上问题一般转化为链上问题。本题破环为链之后再在末尾复制一条链,那么一个环上覆盖就等价于一个i~i+m的链上覆盖。对每一个点维护从它的左边最远能跳到的右边的点。发现这是一个树形结构。因此对于每一个询问倍增往上跳找到第一个点j满足j≥i+m。这样O(n*log^2)还注意到每个人的答案之差最多为1。假设不强制取任何人,此时最优解为A,那么显然强制取一个人的解是A或A+1。所以只要原创 2017-01-28 00:17:23 · 570 阅读 · 0 评论