【搜索】 ZOJ 3864 Quiz for EXO-L BFS

来源:互联网 发布:八爪鱼淘宝采集器贴吧 编辑:程序博客网 时间:2024/05/23 13:03

点击打开链接

乍一看什么鬼!

实际上 数0 1 的联通块的个数即可。

最后一个与最后第四个是相同的 

需要判断下黑白的比例(根据给出的案例1,2)

用了DFS爆栈了。。


#include <bits/stdc++.h>using namespace std;typedef pair<int, int> PII;#define  ll long longconst ll mod = 1e9 + 7;const int maxn= 1111;int mp[maxn][maxn];int dd[8][2]={    0,1,    0,-1,    1,0,    -1,0,    1,1,    1,-1,    -1,1,    -1,-1},n;string s[12]={"Baekhyun","Chanyeol","Chen","D.O","Kai","Kris","Lay","Luhan","Sehun","Suho","Tao","Xiumin"};int a[12][2]={9,2,5,1,1,3,1,2,2,13,3,1,6,2,5,8,5,2,2,8,2,4,5,2};//int dfs(int x,int y,int p)//{//    mp[x][y]=-1;//    for(int i=0;i<8;++i)//    {//        int dx=x+dd[i][0];//        int dy=y+dd[i][1];//        if(dx<0||dy<0||dy>=n||dx>=n) continue;//        if(mp[dx][dy]!=p) continue;//        dfs(dx,dy,p);//    }//}void bfs(int x, int y, int c){    queue<PII> Q;    Q.push(PII(x, y));    mp[x][y] = -1;    while (!Q.empty())    {        PII nw = Q.front(); Q.pop();        for (int i = 0; i < 8; ++ i)        {        x = nw.first + dd[i][0], y = nw.second + dd[i][1];        if (x < 0 || y < 0 || x >= n || y >= n) continue;        if (mp[x][y] != c) continue;        mp[x][y] = -1;        Q.push(PII(x, y));    }  }}int main(){    int m,t;    cin>>t;    while(t--)    {        cin>>n>>m;        int x,cb=0,l=0,r=0;        for(int i=0;i<m;i++)        {            cin>>x;            if(1&i) cb+=x;            while(x--)            {                mp[l][r]=i&1;                r++;                if(r==n)                    l++,r=0;            }        }        int ans[2]={0,0};        for(int i=0;i<n;i++)            for(int j=0;j<n;j++)                if(mp[i][j]!=-1)                    ans[mp[i][j]]++,bfs(i,j,mp[i][j]);        if(ans[1]==5&&ans[0]==2)        {            if(cb*10000<1800*n*n)                printf("Xiumin\n");            else printf("Sehun\n");            continue;        }        for(int i=0;i<12;i++)            if(ans[1]==a[i][0]&&ans[0]==a[i][1])            {                cout<<s[i]<<endl;                break;            }    }    return 0;}



0 0
原创粉丝点击