zoukankan      html  css  js  c++  java
  • 【2020杭电多校】第五场 1003 Boring Game 模拟

    Boring Game

    题意

    有 n 张纸叠在一起平铺在桌面上,现在把这些纸向右折 k 次。

    变成左图的样子,现在给出 (2 * n*2^k)个数字,依次从上往下放成左图的样子,让从上到下一行一行输出还原之后的数字序列。

    题解

    比赛的时候就是没有想到模拟,一步一步的还原。

    image-20200806095220582

    代码

    #include <bits/stdc++.h>
    #define fuck system("pause")
    #define emplace_back push_back
    #define pb push_back
    using namespace std;
    typedef long long ll;
    const int mod = 1e9 + 7;
    const double eps = 1e-6;
    const int inf = 0x3f3f3f3f;
    const int N = 2e6 + 10;
    
    int arr[N], tmp[N];
    void solve(int n, int len)
    {
        for (int i = 1; i <= n; i++) {
            tmp[i] = arr[i];
        }
        int cnt = 0;
        for (int i = n - len + 1; i > 0;i-=len){
            for (int j = i + len / 2 - 1; j >= i;j--){
                arr[++cnt] = tmp[j];
            }
        }
        for (int i = 1; i <= n; i += len) {
            for (int j = i + len / 2; j < i + len;j++){
                arr[++cnt] = tmp[j];
            }
        }
    }
    int main()
    {
        int T;
        scanf("%d", &T);
        while (T--) {
            int n, k;
            scanf("%d%d", &n, &k);
            int len = 2 * n * 1 << k;
            for (int i = 1; i <= len; i++) {
                scanf("%d", &arr[i]);
            }
            int now = len;
            for (int i = 1; i <= k; i++) {
                solve(len, now);
                now >>= 1;
            }
            int r = len / (1 << k);
            int c = 1 << k;
            int cnt = 0;
            for (int i = 1; i <= r; i++) {
                for (int j = 1; j <= c;j++){
                    tmp[++cnt] = arr[i + (j - 1) * r];
                }
            }
            printf("%d", tmp[1]);
            for (int i = 2; i <= len;i++){
                printf(" %d", tmp[i]);
            }
            printf("
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    Individual Reading Assignment
    Individual P1: Summary
    Individual P1: Preparation
    M1m2分析报告
    第二次阅读作业--12061161 赵梓皓
    代码互审报告
    结对编程————电梯整理报告
    读书问题之《编程之美》 -----12061161 赵梓皓
    SE Class's Individual Project--12061161 赵梓皓
    博客测试
  • 原文地址:https://www.cnblogs.com/valk3/p/13444444.html
Copyright © 2011-2022 走看看