zoukankan      html  css  js  c++  java
  • 2018年全国多校算法寒假训练营练习比赛(第一场)C 六子冲

    https://www.nowcoder.com/acm/contest/67/C

    思路:

    模拟。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define pb push_back
    #define mem(a,b) memset(a,b,sizeof(a))
    
    int dir[4][2]={-1,0,1,0,0,-1,0,1};
    int mp[5][5];
    int belong[15];
    int inx,iny;
    bool is(int x,int y,int xx,int yy){
        if(x==inx&&y==iny)return true;
        if(xx==inx&&yy==iny)return true;
        return false;
    }
    int main(){
        ios::sync_with_stdio(false);
        cin.tie(0);
        int cs=0,n,q,p;
        while(cin>>n){
            for(int i=1;i<=4;i++){
                for(int j=1;j<=4;j++)mp[i][j]=0;
            }
            mp[1][1]=11;mp[1][2]=10;mp[1][3]=9;mp[1][4]=8;
            mp[2][1]=12;                       mp[2][4]=7;
            mp[3][1]=1;                        mp[3][4]=6;
            mp[4][1]=2;mp[4][2]=3;mp[4][3]=4;mp[4][4]=5;
            for(int i=1;i<=6;i++)belong[i]=1;
            for(int i=7;i<=12;i++)belong[i]=2;
            while(n--){
                cin>>q>>p;
                for(int i=1;i<=4;i++){
                    bool f=false;
                    for(int j=1;j<=4;j++){
                        if(mp[i][j]==q){
                            mp[i][j]=0;
                            f=true;
                            inx=i+dir[p-1][0];
                            iny=j+dir[p-1][1];
                            //cout<<inx<<" "<<iny<<endl;
                            mp[inx][iny]=q;
                            break;
                        }
                    }
                    if(f)break;
                }
                for(int i=1;i<=4;i++){
                    if(is(i,1,i,2)&&mp[i][1]>0&&belong[mp[i][1]]==belong[mp[i][2]]&&belong[mp[i][2]]!=belong[mp[i][3]]&&mp[i][4]==0)mp[i][3]=0;
                    if(is(i,2,i,3)&&mp[i][2]>0&&belong[mp[i][2]]==belong[mp[i][3]]&&belong[mp[i][3]]!=belong[mp[i][4]]&&mp[i][1]==0)mp[i][4]=0;
                    if(is(i,2,i,3)&&mp[i][2]>0&&belong[mp[i][2]]==belong[mp[i][3]]&&belong[mp[i][2]]!=belong[mp[i][1]]&&mp[i][4]==0)mp[i][1]=0;
                    if(is(i,4,i,3)&&mp[i][3]>0&&belong[mp[i][3]]==belong[mp[i][4]]&&belong[mp[i][3]]!=belong[mp[i][2]]&&mp[i][1]==0)mp[i][2]=0;
                }
                for(int i=1;i<=4;i++){
                    if(is(1,i,2,i)&&mp[1][i]>0&&belong[mp[1][i]]==belong[mp[2][i]]&&belong[mp[2][i]]!=belong[mp[3][i]]&&mp[4][i]==0)mp[3][i]=0;
                    if(is(2,i,3,i)&&mp[2][i]>0&&belong[mp[2][i]]==belong[mp[3][i]]&&belong[mp[3][i]]!=belong[mp[4][i]]&&mp[1][i]==0)mp[4][i]=0;
                    if(is(2,i,3,i)&&mp[2][i]>0&&belong[mp[2][i]]==belong[mp[3][i]]&&belong[mp[2][i]]!=belong[mp[1][i]]&&mp[4][i]==0)mp[1][i]=0;
                    if(is(4,i,3,i)&&mp[3][i]>0&&belong[mp[3][i]]==belong[mp[4][i]]&&belong[mp[3][i]]!=belong[mp[2][i]]&&mp[1][i]==0)mp[2][i]=0;
                }
                /*for(int i=1;i<=4;i++){
                for(int j=1;j<=4;j++){
                    cout<<setw(3)<<mp[i][j];
                }
                cout<<endl;
            }*/
            }
            cout<<"#Case "<<++cs<<":"<<endl;
            for(int i=1;i<=4;i++){
                for(int j=1;j<=4;j++){
                    cout<<setw(3)<<mp[i][j];
                }
                cout<<endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    Selenium(十五)---JavaScript的调用
    Selenium(十三)---文件下载
    Selenium(十四)----上传文件
    Selenium(十二)---警告框处理
    Selenium(十一)---获取url与title
    Selenium(十)---模拟键盘操作
    Selenium(九)---模拟鼠标操作
    iOS关于RunLoop和Timer
    iOS关于应用内分享
    iOS内存错误EXC_BAD_ACCESS的解决方法(message sent to deallocated instance)
  • 原文地址:https://www.cnblogs.com/widsom/p/8324900.html
Copyright © 2011-2022 走看看