• BZOJ 1201 数三角形


    暴力
    枚举底边
    预处理左右延伸长度
    注意标号
    蒟蒻我分不清l,r

    #include <cstdio>
    
    const int MAXN=1011;
    
    int N;
    int Map[3][MAXN][MAXN];
    int Cnt[3][2][MAXN][MAXN];
    
    int main(){
    	
    	scanf("%d", &N);
    	
    	for(int i=1;i<=N;++i){
    		for(int j=1, a, b, c;j<=i;++j){
    			scanf("%d%d%d", &a, &b, &c);
    			Map[0][i][j]=c;
    			Map[2][N-j+1][i-j+1]=a;
    			Map[1][N-i+j][N-i+1]=b;
    		}
    	}
    	
    	for(int k=0, c;k<3;++k){
    		for(int i=1;i<=N;++i){
    			c=0;
    			for(int j=1;j<=i;++j){
    				if(!Map[k][i][j])	c=0;
    				else	++c;
    				Cnt[k][0][i][j]=c;
    			}
    		}
    	}
    	
    	for(int k=0, c;k<3;++k){
    		for(int i=1;i<=N;++i){
    			c=0;
    			for(int j=i;j>=1;--j){
    				if(!Map[k][i][j])	c=0;
    				else	++c;
    				Cnt[k][1][i][j]=c;
    			}
    		}
    	}
    	
    	/*
    	for(int k=0;k<3;++k){
    		for(int i=1;i<=N;++i){
    			for(int j=1;j<=i;++j){
    				printf("%d ", Cnt[k][1][i][j]);
    			}
    			puts("");
    		}
    		puts("");
    	}
    	*/
    	
    	long long ANS=0LL;
    	for(int i=1, d;i<=N;++i){
    		for(int l=0;l<i;++l){
    			for(int r=l+1;r<=i;++r){
    				d=r-l;
    				if(Cnt[0][0][i][r]<d)	continue;
    				if(Cnt[1][1][N-i+r][N-i+1]>=d && Cnt[2][0][N-l][i-l]>=d){
    					ANS+=1LL;
    					//printf("%d %d %d u
    ", i, l, r);
    				}
    				if(Cnt[2][1][N-r][i-r+1]>=d && Cnt[1][0][N-i+l][N-i]>=d){
    					ANS+=1LL;
    					//printf("%d %d %d d
    ", i, l, r);
    				}
    			}
    		}
    	}
    	
    	printf("%lld
    ", ANS);
    	
    	return 0;
    }
    
    /*
    5
    1 1 1
    1 1 0 1 1 0
    1 1 1 1 1 1 1 0 1
    1 0 1 1 1 1 0 1 1 1 1 1
    0 1 1 1 1 1 0 1 1 1 1 1 0 1 1
    
    19
    
    */
    
  • 相关阅读:
    C#与C++中struct和class的小结
    C#中string的小结
    树的一些操作——遍历,前序和中序建立后续
    一个快速、高效的Levenshtein算法实现——代码实现
    整数拆分
    阶乘结果中0的个数
    普莱菲尔密码矩阵生成算法
    CTF密码学总结
    盲文对照表
    实验吧-古典密码
  • 原文地址:https://www.cnblogs.com/Pickupwin/p/9158754.html
Copyright © 2020-2023  润新知