• 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))

  • 相关阅读:
    CodeForces 460B
    CodeForces 456A
    CodeForces462B
    HDU1394(线段树||树状数组)
    HDU1541(树状数组)
    HDU1556(树状数组)
    HDU5726(RMQ&&二分)
    POJ1182(并查集)
    HDU4496(并查集)
    HDU3038(并查集)
  • 原文地址:https://www.cnblogs.com/qwqq/p/11407996.html
Copyright © 2020-2023  润新知