0825-CSP信心赛

众所周知:CSP是cost spend pay的缩写(逃)


A 现代艺术

枚举每一块的上下左右极限覆盖面积 + 二阶差分
被一个数字覆盖的区域求前缀和后==1,被多个数字覆盖的区域求前缀和>=1
然后考场上没有想到枚举每一块的上下左右极限覆盖面积(其实也没想到二阶差分)
当时是枚举了几种类型,但是想不到如何统计覆盖情况,然后草草打了个不正确的解法拿了30分溜了


B [JLOI2012]树

倍增+枚举能否跳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分


C 旅店

倍增
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))

原文地址:https://www.cnblogs.com/qwqq/p/11407996.html