T1:
对两个字符串\(a,b\),分别选择\(a\)的一个前缀和\(b\)的一个后缀(均允许为空或等于原串),并拼接形成一个新的字符串。
求共有多少种可能得到的本质不同的拼接串。
结论题。对于一个 \(a\) 的前缀 \(a[1\sim i]\),有 \(m+1-cntb[a[i]]\) 个新的串。
证明:
T2:
对一个\(n\)个点\(m\)条边的无向图,边\(1\sim m\)编号并红蓝二染色,保证红边构成一个生成树。
你需要给所有边赋边权,并保证边权构成为\(1\sim m\)的一个全排列,同时保证红边构成的是最小生成树。这显然是可以做到的,因此进一步要求采取边权字典序最小的方案,即若两个方案中\(1\sim k\)号边的边权对应相同,则优先选取\(k+1\)号边边权更小的方案。
求赋值方案。
经典 MST 的限制:一条多余的边对应路径上都要比它小。
按编号从小到大枚举每一条边。如果是树边,直接填当前最小的编号;否则找到它对应路径上所有还没填的边,按编号从小到大填了,再回来填它。
如果直接做是 \(O(n^2\log n)\) 的(边还要排序),但是找路径上没出现的边用并查集可以优化掉。
T3:
有\(n\)个闭区间,其中第\(i\)个为\([l_i,r_i]\),该区间还有一个权值\(w_i\)。
考虑把每个区间视作图的一个结点,点权为区间的权值,并把每一对交集非空的区间对应的结点连一条边,注意这包括交集仅为一个边界值的情况,例如\([1,2],[2,3]\)是要连边的。则得到一个具有点权的无向图。
你需要删除一些结点和它们的邻边,使得剩余的图中,所有连通分支的结点数都不超过\(k\)。问删除结点的权值和最小是多少。
区间端点离散化。\(dp[i]\) 表示考虑所有 \(r\le i\) 的区间,使得每个连通块 \(\le k\) 最多保留多少权值。
\(dp[i]=\max_{0\le j<i}\{dp[j]+f(j+1,i)\}\),其中 \(f(l,r)\) 表示考虑 \([l,r]\) 内的区间最多保留多少权值。
显然 \(f(l,r)\) 也是没法直接求的。但是这里可以直接取 \([l,r]\) 内最大的 \(k\) 个区间,可能导致的不合法答案一定比最优解更劣。
可以使用数据结构求前 \(k\) 大的和,但可以给区间先按权值降序排序,求 \(dp[i]\) 的时候让 \(j\) 扫描,过程中打选择标记,有被选的区间不合法了就把它的标记取消,然后往下扫描找到第一个没被选的合法区间替代。\(dp[i]\) 只会扫 \(n\) 次,总复杂度 \(O(n^2)\)。
T4:
矩形覆盖
题目描述
平面直角坐标系中有\(n\)个矩形,其中每个矩形的边均平行于坐标轴。每个矩形用左下角坐标\((x_1,y_1)\)和右上角坐标\((x_2,y_2)\)描述,坐标均为整数。这些矩形称为“原矩形”。
对这些矩形进行\(m\)次操作,每次操作
- 首先,选择一个“原矩形”,并在向量\((1,0),(1,1),(0,1),(-1,1),(-1,0),(-1,-1),(0,-1),(1,-1)\)中选一个作为\((dx,dy)\),这在本次操作中都是不会变的;
- 然后,对原矩形矩形执行\(d\)次平移,每次的移动向量为\((dx,dy)\),第一次移动使得矩形左下角坐标(矩形形状不变,为描述方便才仅列出左下角坐标的变化)变为\((x_1+1\cdot dx,y_1+1\cdot dy)\),第二次后为\((x_1+2\cdot dx,y_1+2\cdot dy)\),以此类推,最终变成\((x_1+d\cdot dx,y_1+d\cdot dy)\),注意该移动是永久的。
- 最后,在矩形每一步平移前的位置都生成一个生成矩形,这样每次操作会生成\(d\)个新的生成矩形,注意原矩形并不在最终到达位置生成一个生成矩形,因此第一个生成矩形在原矩形移动前的位置,最后一个生成矩形的左下角坐标为\((x_1+(d-1)\cdot dx,y_1+(d-1)\cdot dy)\)。
这些矩形,包括“原矩形”和“生成矩形”,一共有\(n+\sum_{i=1}^{m} d_i\)个,其中有些矩形可能完全重合,它们仍视作不同的矩形。
你要回答\(q\)次询问,每次对于点\((p_x,p_y)\),回答该点位于几个上述的矩形中,即对那个矩形满足\(x_1\le p_x \le x_2,y_1\le p_y \le y_2\)。
横竖就是显然的差分 + 线段树扫描线了。对于斜线也可以按照斜线进行扫描线,但是我们维护两颗线段树:一颗维护 \(x=[l,r]\) 内所有 \(y\) 的信息和,一颗维护 \(y=[l,r]\) 内所有 \(x\) 的信息和。查询一个矩形 \((sx,sy,ex,ey)\) 的信息和,就可以用 \(qx(1\sim ex)+qy(1\sim ey)-qx(1\sim +\infty)\) 查,其实就是个容斥。
标签:11,le,NOIP,cdot,生成,2024,区间,矩形,sim From: https://www.cnblogs.com/FLY-lai/p/18563391