zoukankan      html  css  js  c++  java
  • 【CF】B. Mine Sweeper II

    B. Mine Sweeper II

    戳我

    思路

    地雷格向非地雷格发出的数字等于非地雷格向地雷格接收到的数字也将等于地雷格从非地雷格回收到的数字总和。

    (根据“数字”守恒)

    将非地雷格转换成地雷格可以看成是把此时该地雷格上的数字一一归还给相应的非地雷格,而地雷格在接收到周围的原本的非地雷格归还的数字后将变成用来接收数字的非地雷格。

    至于[m*n/2]操作次数能够完成,以上的变换是互补的,如果说一种方案的操作次数是大于[m*n/2],那么另外一种方案的所需的操作次数将少于这个变换次数。

    补题代码

    #include <bits/stdc++.h>
    #define MEM(a,x) memset(a,x,sizeof(a))
    #define W(a) while(a)
    #define gcd(a,b) __gcd(a,b)
    #define pi acos(-1.0)
    #define PII pair<int,int>
    #define pb push_back
    #define mp make_pair
    #define fi first
    #define se second
    #define ll long long
    #define rep(i,x,n) for(int i=x;i<n;i++)
    #define repd(i,x,n) for(int i=x;i<=n;i++)
    #define MAX 1000005
    #define MOD 1000000007
    #define INF 0x3f3f3f3f
    #define lowbit(x) (x&-x)
    using namespace std;
    int n,m;
    
    int main()
    {
    	scanf("%d%d",&n,&m);
    	char g[2][n+1][m+1],comp[n+1][m+1];
    	repd(i,1,n)
    	    repd(j,1,m)
    	    {
    	    	cin>>g[0][i][j];
    	    	g[1][i][j]=g[0][i][j]=='X'?'.':'X';
    		}
    		
    	repd(i,1,n)
    	    repd(j,1,m)
    		    cin>>comp[i][j];
    
    	    
      
    	int cnt[2]={0};
    	repd(i,1,n)
    	    repd(j,1,m)
            {
                if(g[0][i][j]^comp[i][j]) cnt[0]++;
    			if(g[1][i][j]^comp[i][j]) cnt[1]++;	
    		}	    
    	
    	bool flag=1;
    	repd(i,0,1)
    	{
    		if(cnt[i]<=(n*m)/2)
    	    {
    	    	flag=0;
    	    	repd(j,1,n)
    	    	{
    	    		repd(k,1,m)
    	    		    printf("%c",g[i][j][k]);
    	    	    printf("
    ");
    			}
    			break;
    		}
    	}
    	if(flag)cout<<-1<<endl;
        return 0;
    }
    
    
  • 相关阅读:
    1.1.28 文字所在段落增加下划线
    Microsoft Project 2010基础使用方法
    16.3 将Win7文档的内容到复制Linux的vi中
    3.4 在Word中的公式和序号之间填充连续的点
    18.25 JLink调试程序步骤
    18.24 Ubuntu修改静态IP
    18.23 inline函数功能
    18.22 sprintf函数功能
    18.21 关键字extern
    18.20 频率单位转换
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/15117370.html
Copyright © 2011-2022 走看看