AT_ttpc2022_o.Parallel Processing

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

简要问题描述

有一个神秘的幺半群 (M,⊕)(M, \oplus),并且有 44 个可以执行该运算的 CPU。

给定一个整数 NN,请你使用 44 路并行计算 MM 的序列 A=(A1,A2,…,AN)A = (A_1, A_2, \ldots, A_N) 的累积 ⊕\oplus,并使操作次数最小化。

严格问题描述

给定一个整数 NN。请你按照以下(自定义语言的)规范编写程序,并且使指令数最小。

程序规范

本程序可以处理 20042004 个变量 A[1],A[2],…,A[2000],C1,C2,C3,C4A[1], A[2], \ldots, A[2000], C_1, C_2, C_3, C_4。每个变量都持有一个整数序列。其中 A[i]A[i](1≤i≤20001 \leq i \leq 2000)的初值为 A[i]=(i)A[i] = (i)。
((i)(i) 表示仅含 ii 的整数序列。)

程序运行结束时,必须满足以下条件:

  • 对于每个 i=1,2,…,Ni = 1, 2, …, N,均有 A[i]=(1,2,…,i)A[i] = (1, 2, …, i)。

程序格式

第 11 行为指令数 LL 的整数。
第 22 行到第 4L+14L+1 行依次写出 LL 条指令,每条指令占 44 行,依次执行。

每条指令由 1212 个整数 c1,a1,b1,c2,a2,b2,c3,a3,b3,c4,a4,b4c_1, a_1, b_1, c_2, a_2, b_2, c_3, a_3, b_3, c_4, a_4, b_4 组成。所有数均为 11 到 20002000 之间的整数。
每条指令依次执行以下步骤:

  1. 将 concat(A[a1],A[b1])\text{concat}(A[a_1], A[b_1]) 赋值给 C1C_1;
  2. 将 concat(A[a2],A[b2])\text{concat}(A[a_2], A[b_2]) 赋值给 C2C_2;
  3. 将 concat(A[a3],A[b3])\text{concat}(A[a_3], A[b_3]) 赋值给 C3C_3;
  4. 将 concat(A[a4],A[b4])\text{concat}(A[a_4], A[b_4]) 赋值给 C4C_4;
  5. 将 C1C_1 赋值给 A[c1]A[c_1];
  6. 将 C2C_2 赋值给 A[c2]A[c_2];
  7. 将 C3C_3 赋值给 A[c3]A[c_3];
  8. 将 C4C_4 赋值给 A[c4]A[c_4]。

其中,concat(x,y)\text{concat}(x, y) 表示将整数序列 xx、yy 依次连接而成的新整数序列。

输入格式

输入通过标准输入给出,格式如下:

NN

输出格式

设指令数的最小值为 LL,输出格式如下:

LL op1\text{op}_1 op2\text{op}_2 ⋮\vdots opL\text{op}_L

其中,opi\text{op}_i(1≤i≤L1 \leq i \leq L)表示第 ii 次指令,格式如下:

c1c_1 a1a_1 b1b_1 c2c_2 a2a_2 b2b_2 c3c_3 a3a_3 b3b_3 c4c_4 a4a_4 b4b_4

每个整数都必须在 11 到 20002000 之间。

输入输出样例

  • 输入#1

    2

    输出#1

    1
    2 1 2
    2000 2000 2000
    2000 2000 2000
    2000 2000 2000
  • 输入#2

    4

    输出#2

    2
    2 1 2
    4 3 4
    2000 2000 2000
    2000 2000 2000
    3 2 3
    4 2 4
    2000 2000 2000
    2000 2000 2000

说明/提示

部分分

  • 对所有满足 2≤N≤162 \leq N \leq 16 的数据集,答对可以获得 200200 分。
  • 对所有满足 17≤N≤10317 \leq N \leq 10^3 的数据集,答对可以获得 300300 分。

样例解释 1

第 11 条指令后,A[2]A[2] 变为 (1,2)(1, 2),A[2000]A[2000] 变为 (2000,2000)(2000, 2000)。

结束时 A[1]=(1),A[2]=(1,2)A[1] = (1), A[2] = (1, 2),满足要求。

样例解释 2

第 11 条指令后,A[2]A[2] 变为 (1,2)(1, 2),A[4]A[4] 变为 (3,4)(3, 4),A[2000]A[2000] 变为 (2000,2000)(2000, 2000)。
第 22 条指令后,A[3]A[3] 变为 (1,2,3)(1, 2, 3),A[4]A[4] 变为 (1,2,3,4)(1, 2, 3, 4),A[2000]A[2000] 变为 (2000,2000,2000,2000)(2000, 2000, 2000, 2000)。

最后 A[1]=(1),A[2]=(1,2),A[3]=(1,2,3),A[4]=(1,2,3,4)A[1] = (1), A[2] = (1, 2), A[3] = (1, 2, 3), A[4] = (1, 2, 3, 4),满足要求。

数据范围

  • NN 为整数;
  • 2≤N≤1032 \leq N \leq 10^3。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页