zoukankan      html  css  js  c++  java
  • Week12 CSP-M3 B

    思路:

    暴力搜索即可,先搜行,再搜列,需要消除的就打标记,最后按标记输出,有标记就输出0,没标记就正常输出

    每一个点最多会被访问四次,最少被访问两次,上限复杂度O(4*N*M)

    代码:

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;
    int G[35][35];
    int G2[35][35];
    int main()
    {
    	int N,M; cin>>N>>M;
    	for(int i=1;i<=N;i++)
    		for(int j=1;j<=M;j++)
    			scanf("%d",&G[i][j]);
    	//搜行
    	for(int i=1;i<=N;i++)
    	{
    		for(int l=1;l<=M;l++)
    		{
    			int r=0;
    			for(r=l;r<=M;r++)
    			{
    				if(G[i][l]!=G[i][r]) break;
    			}
    			if(r-l>=3)  //形成了连续的三个
    			{
    				for(int k=l;k<=r-1;k++)
    					G2[i][k]=1;		
    			} 
    		} 
    	}
    	//搜列
    	for(int i=1;i<=M;i++)
    	{
    		for(int l=1;l<=N;l++)
    		{
    			int r=0;
    			for(r=l;r<=M;r++)
    			{
    				if(G[l][i]!=G[r][i]) break;
    			}
    			if(r-l>=3)  //形成了连续的三个
    			{
    				for(int k=l;k<=r-1;k++)
    					G2[k][i]=1;		
    			} 
    		} 
    	} 
    	//输出
    	for(int i=1;i<=N;i++)
    	{
    		for(int j=1;j<=M;j++)
    		{
    			if(G2[i][j]==1) printf(j==1 ? "0" : " 0");
    			else printf(j==1 ? "%d" : " %d",G[i][j]);
    		}
    		printf("
    ");	
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    汇编指令(它不区分大小写)
    汇编
    LINUX命令
    LInux 终端命令
    回文串的Manacher算法
    hdu3336 Counting the string kmp的next数组的应用
    hdu2203kmp匹配
    hdu2087kmp模板练习
    hdu1171kmp果题
    hdu1686kmp果题
  • 原文地址:https://www.cnblogs.com/qingoba/p/13051001.html
Copyright © 2011-2022 走看看