AT_ttpc2022_o.Parallel Processing
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
简要问题描述
有一个神秘的幺半群 (M,⊕),并且有 4 个可以执行该运算的 CPU。
给定一个整数 N,请你使用 4 路并行计算 M 的序列 A=(A1,A2,…,AN) 的累积 ⊕,并使操作次数最小化。
严格问题描述
给定一个整数 N。请你按照以下(自定义语言的)规范编写程序,并且使指令数最小。
程序规范
本程序可以处理 2004 个变量 A[1],A[2],…,A[2000],C1,C2,C3,C4。每个变量都持有一个整数序列。其中 A[i](1≤i≤2000)的初值为 A[i]=(i)。
((i) 表示仅含 i 的整数序列。)
程序运行结束时,必须满足以下条件:
- 对于每个 i=1,2,…,N,均有 A[i]=(1,2,…,i)。
程序格式
第 1 行为指令数 L 的整数。
第 2 行到第 4L+1 行依次写出 L 条指令,每条指令占 4 行,依次执行。
每条指令由 12 个整数 c1,a1,b1,c2,a2,b2,c3,a3,b3,c4,a4,b4 组成。所有数均为 1 到 2000 之间的整数。
每条指令依次执行以下步骤:
- 将 concat(A[a1],A[b1]) 赋值给 C1;
- 将 concat(A[a2],A[b2]) 赋值给 C2;
- 将 concat(A[a3],A[b3]) 赋值给 C3;
- 将 concat(A[a4],A[b4]) 赋值给 C4;
- 将 C1 赋值给 A[c1];
- 将 C2 赋值给 A[c2];
- 将 C3 赋值给 A[c3];
- 将 C4 赋值给 A[c4]。
其中,concat(x,y) 表示将整数序列 x、y 依次连接而成的新整数序列。
输入格式
输入通过标准输入给出,格式如下:
N
输出格式
设指令数的最小值为 L,输出格式如下:
L op1 op2 ⋮ opL
其中,opi(1≤i≤L)表示第 i 次指令,格式如下:
c1 a1 b1 c2 a2 b2 c3 a3 b3 c4 a4 b4
每个整数都必须在 1 到 2000 之间。
输入输出样例
输入#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≤16 的数据集,答对可以获得 200 分。
- 对所有满足 17≤N≤103 的数据集,答对可以获得 300 分。
样例解释 1
第 1 条指令后,A[2] 变为 (1,2),A[2000] 变为 (2000,2000)。
结束时 A[1]=(1),A[2]=(1,2),满足要求。
样例解释 2
第 1 条指令后,A[2] 变为 (1,2),A[4] 变为 (3,4),A[2000] 变为 (2000,2000)。
第 2 条指令后,A[3] 变为 (1,2,3),A[4] 变为 (1,2,3,4),A[2000] 变为 (2000,2000,2000,2000)。
最后 A[1]=(1),A[2]=(1,2),A[3]=(1,2,3),A[4]=(1,2,3,4),满足要求。
数据范围
- N 为整数;
- 2≤N≤103。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?