zoukankan      html  css  js  c++  java
  • Codeforces Round #454 D. Seating of Students

    分三类
    1 1: 一个就好了
    3 3:特殊讨论下
    n4m4 : 第一行奇序号的数放前面,偶序号的数放后面,第二行奇序号的数放前面,偶序号的数放后面,第二行依次类推
    有点难写,真的菜

    #include<iostream>
    #include<map>
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<set>
    #include<vector>
    #include<queue>
    #include<cmath>
    #include<stack>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    const int N = 1e5 + 5;
    #define MS(x,y) memset(x,y,sizeof(x))
    #define MP(x, y) make_pair(x, y)
    const int INF = 0x3f3f3f3f;
    
    map<pair<int, int>, int> mp;
    int vc[N];
    
    
    int main() {
        int n, m;
        while(~scanf("%d %d", &n, &m)) {
            mp.clear();
            for(int i = 0; i < n; ++i) {
                for(int j = 0; j < m; ++j) {
                    mp[MP(i, j)] = i*m + j;
                }
            }
    
            if(n == 1 && m == 1) {
                printf("YES
    1
    ");
            }else if(n == 3 && m == 3) {
                printf("YES
    ");
                printf("6 1 8
    7 5 3
    2 9 4
    ");
            }else if(n >= 4) {
                printf("YES
    ");
                for(int i = 0; i < m; ++i) {
                    int cnt = 0;
                    for(int j = 0; j < n; ++j) {
                        vc[cnt ++] = mp[MP(j, i)];
                    }
                    if(n == 4) {
                        if(i & 1) { mp[MP(0, i)] = vc[2]; mp[MP(1, i)] = vc[0]; mp[MP(2, i)] = vc[3]; mp[MP(3, i)] = vc[1]; }
                        else      { mp[MP(0, i)] = vc[1]; mp[MP(1, i)] = vc[3]; mp[MP(2, i)] = vc[0]; mp[MP(3, i)] = vc[2]; }
                        continue;
                    }
                    int tt = 0;
                    if(i & 1) {
                        for(int j = 0; j < cnt; j += 2) mp[MP(tt++, i)] = vc[j];
                        for(int j = 1; j < cnt; j += 2) mp[MP(tt++, i)] = vc[j];
                    }else {
                        for(int j = 1; j < cnt; j += 2) mp[MP(tt++, i)] = vc[j];
                        for(int j = 0; j < cnt; j += 2) mp[MP(tt++, i)] = vc[j];
    
                    }
                }
                for(int i = 0; i < n; ++i) {
                    for(int j = 0; j < m; ++j) printf("%d ", mp[MP(i, j)] + 1);
                    printf("
    ");
                }       
            }else if(m >= 4) {
                printf("YES
    ");
                for(int i = 0; i < n; ++i) {
                    int cnt = 0;
                    for(int j = 0; j < m; ++j) {
                        vc[cnt ++] = mp[MP(i, j)];
                    }
                    if(m == 4) {
                        if(i & 1) { mp[MP(i, 0)] = vc[2]; mp[MP(i, 1)] = vc[0]; mp[MP(i, 2)] = vc[3]; mp[MP(i, 3)] = vc[1]; }
                        else      { mp[MP(i, 0)] = vc[1]; mp[MP(i, 1)] = vc[3]; mp[MP(i, 2)] = vc[0]; mp[MP(i, 3)] = vc[2]; }
                        continue;
                    }
                    int tt = 0;
                    if(i & 1) {
                        for(int j = 0; j < cnt; j += 2) mp[MP(i, tt++)] = vc[j];
                        for(int j = 1; j < cnt; j += 2) mp[MP(i, tt++)] = vc[j];
                    }
                    else {
                        for(int j = 1; j < cnt; j += 2) mp[MP(i, tt++)] = vc[j];
                        for(int j = 0; j < cnt; j += 2) mp[MP(i, tt++)] = vc[j];
                    }
                }
                for(int i = 0; i < n; ++i) {
                    for(int j = 0; j < m; ++j) printf("%d ", mp[MP(i, j)] + 1);
                    printf("
    ");
                }       
            }else printf("NO
    ");
        }
        return 0;
    }
  • 相关阅读:
    网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)
    OSI七层模型与TCP/IP五层模型(转)
    C语言结构体指针初始化(转)
    关于空指针NULL、野指针、通用指针 (转)
    C语言的通用指针类型(void *)
    使用matlab生成用于ROM初始化的coe文件(转)
    电脑运行msi安装包提示the error code is 2503/2502如何解决
    mysql命令行修改字符编码
    struts 2 时间控件
    java 的 struts2 Spring Hibernate 三大框架的整合
  • 原文地址:https://www.cnblogs.com/Basasuya/p/8433685.html
Copyright © 2011-2022 走看看