AT_xmascon16_e.Examination, Estimation
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
兔子即将参加一场包含 50 个题目的考试。每个题目都是四选一的选择题,选项为 0, 1, 2, 3,其中只有一个是正确答案,其他都是错误答案。
在兔子参加考试之前,有 30 条鳗鱼已经参加了同样的考试。每条鳗鱼的答题方式分为以下三种类型之一,并且每种类型分别有 10 条鳗鱼:
-
每个题目有 32 的概率选择正确答案,31 的概率随机选择一个错误答案。
-
每个题目有 31 的概率选择正确答案,32 的概率随机选择一个错误答案。
-
每个题目以相等的概率随机选择四个选项中的一个。
由于试题使用了鳗鱼的语言,兔子无法独立完成这次考试。然而,兔子通过超能力作弊偷看了所有鳗鱼的答案。可它并不知道每条鳗鱼是哪种类型。使用这些信息,尽量多地猜出正确答案。
输入格式
输入是从标准输入中以以下形式给出的:
A1,1A1,2⋯A1,50 A2,1A2,2⋯A2,50 : A30,1A30,2⋯A30,50(以上是一个考试的数据,还有 199 组相同格式的数据)
其中 Ai,j 代表第 i 条鳗鱼对第 j 题的回答,答案是 0, 1, 2, 3 中的一个。
输出格式
输出 200 行。第 i 行(1≤i≤200)表示第 i 次考试的预测答案。
每个考试的预测答案是由 50 个空格分隔的整数(值域为 0, 1, 2, 3)组成的。第 j 个整数对应第 j 个题目的答案。
输入输出样例
输入#1
0 2 2 0 0 0 2 1 1 3 1 1 3 3 1 2 2 1 3 0 1 0 1 2 1 3 3 0 0 1 1 1 3 2 1 2 0 2 2 1 2 3 2 0 2 2 2 0 3 3 0 3 3 1 2 3 0 0 2 0 0 2 3 1 2 0 3 2 0 2 2 1 1 2 3 0 1 2 2 0 3 3 0 2 0 3 1 2 2 1 0 3 1 1 1 0 2 1 3 1 3 2 1 0 1 1 2 0 1 1 0 3 0 2 0 0 2 3 2 2 3 1 2 1 0 2 3 0 1 0 1 0 2 3 2 1 1 0 0 0 3 3 3 0 2 2 2 2 2 3 2 0 2 2 0 1 1 1 0 3 1 0 1 1 3 3 0 0 3 1 0 3 0 2 2 0 1 3 3 1 3 3 3 0 2 2 3 2 0 3 0 3 1 1 0 2 3 0 3 1 1 3 0 1 1 1 1 3 2 2 0 2 0 1 0 3 2 3 3 0 1 3 2 1 1 3 1 0 1 2 0 0 3 2 0 3 0 2 1 1 0 1 0 1 2 0 0 3 0 0 2 1 0 1 3 2 1 1 2 3 0 2 3 2 2 1 1 2 1 2 1 3 3 2 1 1 2 3 0 0 3 0 2 3 3 3 1 3 1 1 2 0 3 3 3 2 1 1 3 0 3 0 2 0 0 0 2 0 3 3 0 3 0 1 2 2 1 1 2 0 2 0 2 3 2 2 0 3 2 2 2 3 0 2 0 3 1 0 2 0 3 3 0 2 2 0 2 3 2 3 3 0 1 0 0 0 2 3 2 3 3 3 1 1 3 1 2 2 1 0 0 0 0 1 1 1 0 0 3 3 2 2 3 2 0 3 2 3 1 0 1 0 3 3 2 0 2 3 2 3 1 1 2 0 0 0 2 0 2 3 0 2 0 1 2 2 1 2 3 0 2 0 0 0 0 3 2 1 2 0 0 3 3 3 1 3 0 0 1 0 2 2 3 0 2 0 2 0 2 3 2 0 2 0 0 0 2 0 0 3 0 2 0 1 0 3 1 2 2 0 2 1 0 3 2 2 2 2 2 0 2 3 3 3 1 3 0 0 1 0 3 3 3 0 2 3 0 3 3 3 0 2 3 2 3 2 2 0 1 1 1 3 0 1 2 1 1 1 1 0 2 2 2 2 2 1 2 2 2 0 1 0 2 2 0 0 1 0 2 3 3 2 3 0 2 0 1 0 1 3 1 1 0 0 0 3 2 0 2 0 1 0 3 1 2 3 1 2 2 2 3 1 2 0 3 2 1 1 3 0 3 3 2 1 0 2 1 1 3 0 3 2 2 2 3 3 0 2 2 1 3 1 1 0 1 2 3 2 1 2 3 0 2 1 0 2 0 1 2 0 2 0 3 2 2 1 0 2 0 3 1 2 3 0 1 0 2 2 1 0 2 1 1 1 3 0 3 3 0 2 0 0 2 1 1 3 3 0 3 3 3 2 1 2 1 3 3 2 2 2 3 0 2 3 2 3 0 0 0 0 3 3 2 0 3 0 2 3 1 1 1 0 3 1 1 2 2 1 2 0 3 1 2 3 1 0 0 2 2 2 0 3 0 1 1 2 1 2 3 0 2 0 0 1 1 2 2 1 2 1 2 1 3 0 1 3 0 0 0 3 3 0 3 0 2 0 2 3 0 3 3 3 2 0 2 0 2 0 1 3 0 2 0 0 0 1 3 1 2 1 2 2 0 1 3 2 2 1 2 0 3 3 3 1 1 3 2 2 1 0 3 3 3 0 2 3 2 3 2 3 2 1 1 3 3 0 3 3 0 1 1 0 0 1 3 0 2 2 1 3 2 3 2 3 3 0 3 0 1 1 0 1 0 2 1 1 2 3 2 2 0 1 1 0 3 2 0 0 0 3 3 1 2 3 0 3 2 2 3 1 1 1 1 1 3 1 0 3 0 1 2 2 3 0 3 2 0 1 3 0 2 1 3 2 1 3 0 3 1 3 3 3 1 2 2 2 1 2 1 0 3 2 1 2 0 3 2 0 2 0 2 3 0 1 2 3 2 1 0 0 2 1 1 2 1 2 3 1 0 3 2 3 0 2 2 2 3 2 1 1 2 0 2 1 1 3 0 0 1 3 3 2 2 2 0 2 2 3 2 3 0 2 0 2 0 2 3 2 0 2 0 3 0 1 0 1 2 3 2 0 0 3 3 3 3 3 2 0 3 0 1 3 3 2 2 0 2 3 2 3 3 2 2 2 1 1 2 3 2 3 0 1 0 1 0 2 1 0 2 0 2 0 0 1 1 2 2 3 1 2 3 3 3 3 1 3 2 0 1 3 3 1 3 0 2 2 0 3 2 3 2 0 3 1 0 0 0 1 1 0 0 2 3 1 1 0 0 1 2 0 3 0 0 2 0 0 2 2 1 0 1 3 3 2 2 1 0 2 1 1 1 2 2 2 1 1 1 0 1 2 2 1 3 0 2 0 3 2 2 3 1 2 0 0 0 2 0 2 2 0 2 0 0 1 1 0 3 1 3 1 2 3 3 3 2 3 3 2 2 3 3 0 1 0 3 0 0 3 1 2 3 1 2 3 0 0 2 1 2 3 0 2 2 1 0 2 1 2 2 0 2 2 1 1 1 2 0 1 2 3 2 3 3 1 1 3 2 0 1 0 0 0 1 1 2 0 2 3 2 3 1 1 0 0 1 2 0 2 2 3 0 2 1 1 3 1 0 2 3 0 3 0 1 2 1 1 0 0 2 3 2 2 2 2 1 0 0 0 1 0 0 2 2 0 2 0 1 0 2 3 2 1 0 3 1 2 2 0 3 2 0 0 0 1 2 2 0 1 3 2 1 0 3 3 1 2 3 2 2 1 2 3 1 0 1 2 0 3 3 3 0 0 3 1 0 3 3 3 2 0 1 2 1 2 0 2 2 0 1 1 3 2 3 2 1 1 3 2 3 1 3 2 0 0 3 2 1 0 2 2 2 1 3 0 0 2 2 0 1 3 3 0 0 0 1 3 0 0 3 0 2 2 3 0 0 0 3 1 2 3 0 1 1 1 3 2 3 2 2 3 2 0 1 1 3 2 1 1 1 0 3 3 1 1 0 2 1 0 3 2 2 3 0 2 0 3 1 0 2 0 2 3 0 0 0 3 2 0 2 1 1 2 0 1 3 0 1 1 2 0 1 2 2 2 1 1 1 3 3 1 2 1 1 2 2 3 2 2 3 0 0 1 1 0 3 2 0 3 3 1 1 1 2 2 1 0 3 2 0 2 3 2 1 0 3 1 1 0 1 0 1 3 0 3 1 2 1 2 2 0 2 0 0 3 1 2 1 3 0 2 3 0 3 2 2 1 0 2 3 3
输出#1
3 2 2 0 0 0 2 0 2 3 0 2 0 1 0 2 1 2 2 0 2 0 0 1 1 2 2 1 2 0 2 3 3 3 1 3 2 0 1 0 3 0 3 0 2 0 2 3 2 3
说明/提示
评分标准
每个输入数据包含 200 个测试案例,每个案例对应一次考试。
如果某次考试中猜错的答案不超过 3 个,则该考试视为合格。
如果一组输入数据中至少有 90%的考试(即至少 180 次)合格,则视为解答正确。
总共有 10 组输入数据,全部正确可以获得 100 分。
每次考试的数据是通过先随机选择正确答案,再随机选择鳗鱼类型生成的。虽然有具体的生成方法介绍,但存在一种算法可以在不依赖这些具体信息的情况下得到满分,因此并不需要关注生成方法的细节。
生成数据程序
这些数据是由以下 C++ 程序生成的:
#include <iostream>
#include <cstdint>
using namespace std;
uint32_t x = 123456789, y = 362436069, z = 521288629, w = 88675123;
uint32_t xor128() {
uint32_t t = x ^ (x << 11);
x = y; y = z; z = w;
return w = (w ^ (w >> 19)) ^ (t ^ (t >> 8));
}
int randint(int lo, int hi) {
uint64_t v = ((uint64_t)xor128() << 32) | xor128();
return v % (hi - lo + 1) + lo;
}
void generate() {
const int N = 30, Q = 50;
int correct_answer[Q];
for (int i = 0; i < Q; ++i) {
correct_answer[i] = randint(0, 3);
}
int eel_type[N];
for (int i = 0; i < N; ++i) {
eel_type[i] = i / (N / 3);
}
for (int i = N - 1; i >= 1; --i) {
swap(eel_type[i], eel_type[randint(0, i)]);
}
for (int i = 0; i < N; ++i) {
int eel_answer[Q];
for (int j = 0; j < Q; ++j) {
bool correct = false;
if (eel_type[i] == 0) correct = randint(0, 2) != 0;
if (eel_type[i] == 1) correct = randint(0, 2) == 0;
if (eel_type[i] == 2) correct = randint(0, 3) == 0;
if (correct) {
eel_answer[j] = correct_answer[j];
} else {
eel_answer[j] = (correct_answer[j] + randint(1, 3)) % 4;
}
}
for (int j = 0; j < Q; ++j) {
printf("%d%c", eel_answer[j], j+1 == Q ? '\n' : ' ');
}
}
}
int main() {
cin >> w;
for (int i = 0; i < 10000; ++i) {
xor128();
}
for (int t = 0; t < 200; ++t) {
generate();
}
return 0;
}
样例解释 1
请注意,实际的数据包含后续 199 次考试的数据,这里仅展示第一次考试。在本例中,输出答案是完全正确的(该样例可用于本地调试)。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?