#P6752. [BalkanOI 2011] cmp
[BalkanOI 2011] cmp
题目背景
这是一道 Grader 交互题。
本题时限 10s,空限除交互库所用内存仅 16MB。
本题分数最高 ,但标解所选择的方案可得 分。
测评注意事项
- 你的代码中不应包含
cmp.h
,而应该在开头包含下面两个函数的声明:void bit_set(int);
int bit_get(int);
- 你的代码中应该实现两个函数 :
void remember(int a);
int compare(int b);
换句话说,您可以在如下的代码模板中编写程序:
题目描述
我们有一个第一维长度为 ,第二维长度为 的二维 数组 ,初始时所有值为 。
您需要编写在 数组上执行的两个操作 void remember(int a)
和 int compare(int b)
。
实现细节
void remember(int a)
:
- 保证 。
- 您可以调用
void bit_set(int ad)
,其中您需要保证 。- 这会导致 。
int compare(int b)
:
- 保证 。
- 您需要将 与 进行比较,其中 未知:
- 若 ,请返回 。
- 若 ,请返回 。
- 若 ,请返回 。
- 您可以调用
int bit_get(int ad)
,其中您需要保证 。- 这会返回 的值
任务
您应该实现上述两个函数 void remember(int a)
和 int compare(int b)
在最大程度上减少 void bit_set(int ad)
和 int bit_get(int ad)
的调用次数。
您的得分由以下伪代码计算:
提示
限制
-
如果您的解决方案不遵守上面的实现细节部分,您保龄。
-
您的解决方案必须可以在 10s 内调用 次
void remember(int a)
和 次int compare(int b)
。
说明
本题译自 Balkan Olympiad in Informatics 2011 Day 2 T1 cmp。
感谢
https://www.luogu.com.cn/user/60864
交互库。