zoukankan      html  css  js  c++  java
  • Codeforces Round #540 (Div. 3)--1118C

    https://codeforces.com/contest/1118/problem/C

    在查找元素的时候,必须按4,2,1的顺序进行。因为,如果先找1,可能就把原来的4拆散了,然后再找4,就找不到了

    #include<bits/stdc++.h>
    using namespace std;
    int ans[25][25];
    int main(){
        int n;
        cin>>n;
        map<int,int> mp;
        int t;
        for(int i=0;i<n*n;i++){
            cin>>t;
            mp[t]++;
        }
        vector<pair<int,pair<int,int> > > ceil;
        for(int i=0;i<(n+1)/2;i++)
            for(int j=0;j<(n+1)/2;j++){
                if(i!=n-1-i&&j!=n-1-j)
                    ceil.push_back({4,{i,j}});
                else if(i!=n-1-i||j!=n-1-j)
                    ceil.push_back({2,{i,j}});
                else
                    ceil.push_back({1,{i,j}});
            }
        int number[3]={4,2,1};
        for(int q=0;q<3;q++){
            int w=number[q];
            for(int v=0;v<ceil.size();v++){
                pair<int,pair<int,int> > c=ceil[v];
                int times=c.first;
                if(times!=w)
                    continue;
                int i=c.second.first;
                int j=c.second.second;
                map<int,int>::iterator it;
                for(it=mp.begin();it!=mp.end();it++){
                    if(it->second>=times){
                        it->second-=times;
                        ans[i][j] = ans[n - i - 1][j] = ans[i][n - j - 1] = ans[n - i - 1][n - j - 1] = it->first;
                        break;
                    }
                }    
                if(it==mp.end()){
                    cout<<"NO"<<endl;
                    return 0;
                }
            }
        }
        cout<<"YES"<<endl;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                cout<<ans[i][j]<<" ";
            }
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    PATA 1071 Speech Patterns.
    PATA 1027 Colors In Mars
    PATB 1038. 统计同成绩学生(20)
    1036. 跟奥巴马一起编程(15)
    PATA 1036. Boys vs Girls (25)
    PATA 1006. Sign In and Sign Out (25)
    读取web工程目录之外的图片并显示
    DOS命令
    java连接oracle集群
    servlet
  • 原文地址:https://www.cnblogs.com/albert67/p/10415614.html
Copyright © 2011-2022 走看看