CF884E Binary Matrix(骞舵煡闆?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF884E Binary Matrix(骞舵煡闆?相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/pair' title='pair'>pair   play   std   pac   namespace   string   class   turn   img   

鍒濅竴鐪嬶紝sb棰橈紝涓婂幓涓€涓苟鏌ラ泦锛屽緢蹇晩锛岃繑鍥炰竴涓狹LE锛屽畾鐫涗竴鐪嬶紝绯荤粺寮€鐨勫唴瀛樺緢灏忥紝浣嗘槸杩欎釜绠楁硶澶嶆潅搴﹀張鏄繖涔堟纭?/p>

鍥犳鑰冭檻浼樺寲鍐呭瓨锛岃繖鏍风敤婊氬姩鏁扮粍浼樺寲鍗冲彲

杩欓噷娉ㄦ剰涓€涓棶棰橈紝骞冲父骞舵煡闆嗕粠閭h竟鎸囬偅杈归兘鏄鐨勶紝浣嗘槸婊氬姩鏁扮粍灏变笉涓€鏍蜂簡锛屽浜庝笂涓€灞傜殑锛屼竴瀹氳鎸囧悜涓嬩竴灞傦紝鍥犱负濡傛灉鎸囧悜涓婁竴灞傦紝閭d箞鍦ㄥ仛鐨勬椂鍊欙紝涓婁笂灞傜殑淇℃伅宸茬粡琚粴鎺変簡銆傝繖閲屾槸涓粏鑺傦紝寰堝鏄撴兂涓嶆竻妤氬氨wa姝?/p>

鎶€鏈浘鐗? src=
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pll;
const int N=1e6+10;
const int mod=1e9+7;
int a[4][100010];
int p[N];
int find(int x){
    if(x!=p[x]){
        p[x]=find(p[x]);
    }
    return p[x];
}
int main(){
    ios::sync_with_stdio(false);
    int n,m;
    cin>>n>>m;
    int ans=0;
    int i,j;
    for(i=1;i<=n;i++){
        int now=i&1;
        string s;
        cin>>s;
        s=" "+s;
        for(int j=1;j<=m/4;j++){
            int res;
            if(s[j]>=鈥?/span>0鈥?/span>&&s[j]<=鈥?/span>9鈥?/span>){
                res=s[j]-鈥?/span>0鈥?/span>;
            }
            else{
                res=s[j]-鈥?/span>A鈥?/span>+10;
            }
            a[now][j*4]=res&1,ans+=(res&1),res>>=1;
            a[now][j*4-1]=res&1,ans+=(res&1),res>>=1;
            a[now][j*4-2]=res&1,ans+=(res&1),res>>=1;
            a[now][j*4-3]=res&1,ans+=(res&1),res>>=1;
        }
        int tmp=now*m;
        for(int j=1;j<=m;j++){
            p[tmp+j]=tmp+j;
        }
        for(int j=1;j<m;j++){
            if(a[now][j]&&a[now][j+1]){
                int pa=find(tmp+j);
                int pb=find(tmp+j+1);
                if(pa!=pb){
                    p[pb]=pa;
                    ans--;
                }
            }
        }
        for(int j=1;j<=m;j++){
            if(a[now][j]&&a[now^1][j]){
                int pa=find(tmp+j);
                int pb=find((now^1)*m+j);
                if(pa!=pb){
                    p[pb]=pa;
                    ans--;
                }
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}
View Code

 

以上是关于CF884E Binary Matrix(骞舵煡闆?的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1733锛堣竟甯︽潈骞舵煡闆?绂绘暎鍖栵級

LeetCode 1091. Shortest Path in Binary Matrix

leetcode1284. Minimum Number of Flips to Convert Binary Matrix to Zero Matrix

CF961G Partitions

E. Binary Matrix(dsu&滚动)

[Leetcode] Binary search, Divide and conquer--240. Search a 2D Matrix II