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;
    }
    
    
  • 相关阅读:
    linux上搭建私人Git服务器的详细教程
    25个经典的Spring面试问答
    面试题汇总
    idea 中添加查看字节码工具
    HTTP 及 http 请求解析过程
    常见的攻击类型及防范
    Postman 压力测试
    Postman 接口测试配置 Pre-request Script
    jq图片展示插件highslide.js
    cesium transform 倾斜摄影模型矩阵指定经纬度
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/15117370.html
Copyright © 2011-2022 走看看