logo AlgoBeat OnlineJudge
登录 注册

#215545. [KTSC 2026] 五万酱汁 / 50,000 Sauces

内存限制:2048 MiB 时间限制:3000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

提交注意事项:

  1. 不要引入头文件。
  2. 在文件头加入
    #include <vector>
    int query(std::vector<int>);
    
  3. 使用 提交。

这是一道交互题。本题中,交互库是非自适应的。

给定正整数

有一个隐藏的集族 的每个元素 都是 的子集。这里,。注意,根据定义,集合不能包含重复元素。

你可以进行若干次以下的询问,目标是找出

询问

给定 满足

交互库回答

用尽量少的询问次数找出

实现细节

这是一道函数式交互题。你不必,也不应实现 main 函数。

你应当实现以下的函数:

int solve(int N)
  • 返回
  • 该函数被调用恰好一次。

你可以调用以下的函数:

int query(vector<int> Y)
  • 中的元素必须两两不同。
  • 必须有
  • 必须有
  • 该函数返回
  • 每个测试点中,该函数最多可调用 次。

你的源代码中不应调用任何输入/输出函数。

输入格式

示例评测程序的输入格式如下:

  • 行:
  • 行:
  • 对于每个
    • 行: ...
      • 各不相同。
      • 是集合 的一个元素。

输出格式

示例评测程序按以下格式输出你的代码在 solve 函数中返回的值以及调用 query 的次数:

  • 行:solve 函数返回的值
  • 行:调用 query 的次数

样例

样例输入 1

6
2
2 0 1
3 2 3 4

样例输出 1

2
3

数据范围与提示

数据范围

  • 对于任意
  • 交互库是非自适应的。换言之, 在调用 solve 前已固定。

子任务

编号 得分 特殊性质
  • 特殊性质 :对于任意两个不同的
  • 特殊性质 :对于任意

计分方式

在每个子任务中,若有回答 错误的情况,该子任务得 分。

否则,令 为该子任务各测试点中调用 query 函数次数的最大值,按照如下规则计算得分:

  • 对于子任务 ,若 ,得满分。
  • 对于子任务
    • ,得 倍子任务满分;
    • ,得满分。

样例

询问集合的最大大小为

评测程序最初调用以下函数:

solve(6)

选手的代码可能会进行如下交互:

query(0, 1, 2)
query(2, 3, 4)
query(0, 2, 3, 5)
  • 由于 query(0, 1, 2) 返回
  • 由于 query(2, 3, 4) 返回
  • 由于 不包含 的任何元素,query(0, 2, 3, 5) 返回

选手的代码通过将 作为 solve(6) 的返回值来提交答案。