标签:数据 code 多少 区域 错误 没有想到 pre ++ 没有
众所周知:CSP是cost spend pay的缩写(逃)
枚举每一块的上下左右极限覆盖面积 + 二阶差分
被一个数字覆盖的区域求前缀和后==1,被多个数字覆盖的区域求前缀和>=1
然后考场上没有想到枚举每一块的上下左右极限覆盖面积(其实也没想到二阶差分)
当时是枚举了几种类型,但是想不到如何统计覆盖情况,然后草草打了个不正确的解法拿了30分溜了
倍增+枚举能否跳L
fa[x][i]=fa[fa[x][i-1]][i-1];
dis[x][i]=dis[x][i-1]+dis[fa[x][i-1]][i-1];
len = L;
for(int i = 20; i >= 0; i --)
if(dis[x][i]<=len){
len-=dis[x][i];
x=fa[x][i];
}
因为考场上数据出锅了,\(10^5\)的数据题面给的是\(10^3\),没想多少,DFS序 + dfs建树(dis数组)混了90分
倍增
f[i][j]:表示从i号点出发,走\(2^j\)天,最远能到达的店的编号
k=upper_bound(x+1,x+n+1,xi+L)-x-1;
f[i][0]=k;(然后你就推得出来f[i][j]了qwq)
f[i][j]=f[f[i][j-1]][j-1];
[L,R]
for(j = 30;j;j--){
if(R>=f[L][j]){
L=f[L][j];
Ans++;
}
}
没剩多少时间,匆匆打了个lower_bound的暴力混个50分
总得分:30 + 90 + 50 = 170
(可能还是进步了一点点吧orzorz,主要是这场考试没犯什么智障错误orzorzorz(哦A题\(4^2\)莫名其妙整成了\(4*2\)算不算qwq))
标签:数据 code 多少 区域 错误 没有想到 pre ++ 没有
原文地址:https://www.cnblogs.com/qwqq/p/11407996.html