AT_xmascon16_e.Examination, Estimation

通过率:0%

AC君温馨提醒

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

题目描述

兔子即将参加一场包含 50 个题目的考试。每个题目都是四选一的选择题,选项为 0, 1, 2, 3,其中只有一个是正确答案,其他都是错误答案。

在兔子参加考试之前,有 30 条鳗鱼已经参加了同样的考试。每条鳗鱼的答题方式分为以下三种类型之一,并且每种类型分别有 10 条鳗鱼:

  1. 每个题目有 23\frac{2}{3} 的概率选择正确答案,13\frac{1}{3} 的概率随机选择一个错误答案。

  2. 每个题目有 13\frac{1}{3} 的概率选择正确答案,23\frac{2}{3} 的概率随机选择一个错误答案。

  3. 每个题目以相等的概率随机选择四个选项中的一个。

由于试题使用了鳗鱼的语言,兔子无法独立完成这次考试。然而,兔子通过超能力作弊偷看了所有鳗鱼的答案。可它并不知道每条鳗鱼是哪种类型。使用这些信息,尽量多地猜出正确答案。

输入格式

输入是从标准输入中以以下形式给出的:

A1,1  A1,2  ⋯  A1,50A_{1,1} \; A_{1,2} \; \cdots \; A_{1,50} A2,1  A2,2  ⋯  A2,50A_{2,1} \; A_{2,2} \; \cdots \; A_{2,50} : A30,1  A30,2  ⋯  A30,50A_{30,1} \; A_{30,2} \; \cdots \; A_{30,50}(以上是一个考试的数据,还有 199 组相同格式的数据)

其中 Ai,jA_{i,j} 代表第 ii 条鳗鱼对第 jj 题的回答,答案是 0, 1, 2, 3 中的一个。

输出格式

输出 200 行。第 ii 行(1≤i≤2001 \leq i \leq 200)表示第 ii 次考试的预测答案。

每个考试的预测答案是由 50 个空格分隔的整数(值域为 0, 1, 2, 3)组成的。第 jj 个整数对应第 jj 个题目的答案。

输入输出样例

  • 输入#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测评打分。不知道怎么写?

首页