luogu#P2838. 瓶子国的故事
瓶子国的故事
题目背景
这是一道非传统题。
传说有一个国家叫瓶子国,里面有大大小小的瓶子。
现在瓶子国想要学习邻居跳蚤国发展计算机,可是瓶子国没有计算机只有瓶子。
于是瓶子国国王就给了你一些瓶子,让你实现一些计算任务。
题目描述
我们用水的量来描述一个数。
- 一个瓶子的容量为它最多可以装的水的数量。
瓶子国国王认为瓶子可以干这些事:
- :制造一个新瓶子,它的容量和里面装的水量都为输入的数,这个瓶子的编号为 。
- ;把编号为 的瓶子里的水倒满。
- :把编号为 的瓶子里的水倒空。
- :制作一个新瓶子,它的容量为 ,里面没装水,这个瓶子的编号为 。注意由于瓶子容积有限,。
- :制作一个新瓶子,它的容量为 ,里面没装水,这个瓶子的编号为 。
- :把 瓶往 瓶倒水,直到 瓶空或者 瓶满为止。(注意 )。
- :把 号瓶子里的水输出。
还有一种昂贵的操作:
- :制作一个新瓶子,它的容量为 ,这个瓶子的编号为 。注意由于瓶子容积有限,,不能超过 。(使用这种操作要扣分,评分规则详见下方提示)
现在瓶子国国王把这些操作给了你,你只要输出这些操作,瓶子国的瓶子们就会为你执行!
瓶子国国王给了你一些计算任务,你只需要实现这些任务就行啦!
左边是数据点编号,右边是计算任务。
- 输入 和 ,计算 。()
- 输入 和 ,计算 。()
- 输入 和 ,计算 。()
- 输入 和 ,输出 。()
- 输入 ,输出 的 位二进制表示。(,例如 输出 $\verb!0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1!$)
- 输入 和 ,输出 。()
- 输入 和 ,输出 。(, 表示异或)
- 输入 ,输出 下取整。()
- 输入 和 ,输出 。()
- 输入 和 ,输出 的 次方。(, 的 次方不超过 )
瓶子国国王会生成 组左右的数据对你的程序进行测试,并根据你使用的操作个数进行评分,评分规则详见下方提示。
(UPD:如果你没有看懂题目这里有一段补充说明)
你提交到洛谷的程序(C/C++/Pascal)需要输出一段操作,格式类似样例输出。
例如第一个点,提交后洛谷上的 checker 会随机生成 和 作为 操作的输入来测试你的操作。
对于本地 checker(下载见提示区),你可以把输出的操作保存成 a.txt
,然后第一行输入 a.txt
,第二行如果手玩就输 ,如果测试指定点就输编号。
输入格式
输入共一行一个整数,表示数据点编号。
输出格式
输出可以满足计算任务的操作。
233
// 仅作为参考,这里应该填数据编号
I
C 1
F 2
C 233333
T 1 3
T 2 3
O 3
(这个程序可以进行x+1!是不是很厉害啊!不过程序中并不能附加任何注释)
提示
请注意提交的是一段输出操作的程序!(如果你生成答案之后把生成它的程序删了直接打表输出,可能会输出超限)
灵感来自 NOI2016 旷野大计算(其实我不说你们肯定也知道啊)
为了方便选手本地测试,下面是一个 C++ 的本地checker(需要注意的是,它的测试结果与洛谷上的测试结果不一定一样,洛谷上可能更严格):
如果需要下载 exe 的话可戳度盘:
- http://pan.baidu.com/s/1o7HZ1GY 密码为
kqhl
。
评分规则
如果你的算法输出了错误结果(多输出也算)或者发生运行错误(操作不符合要求等)或者行数超过 行或者行数太长了 checker 没能在 内测试完 组数据,你将获得 分。
否则,假设 std 的步数为 ,你的步数为 。
- 如果 ,你的基准分为 分。
- 如果 ,你的基准分为 分。
- 如果 ,你的基准分为 分。
- 如果 ,你的基准分为 分。
- 如果 ,你的基准分为 分。
- 如果 ,你的基准分为 分。
如果你使用了昂贵的 操作,你会得到(基准分 )分。
否则你会得到基准分。
(说人话:步数越少分越高,用K操作扣4分)
(UPD2:洛谷上的checker常见错误信息)
too many lines:超过500w行(这个似乎还没有触发过)
WTF:就是操作的第一个字符串(I/T/K/F/E/C/M/O)长度大于1
(可能是由于上一个操作多跟了一个操作数?)
wrong operation:操作的第一个字符串长度为1但不是I/T/K/F/E/C/M/O。
expected *****:希望输入一个数/字符串却没有(可能是操作数多打/少打)
nothing to input:I操作数量大于输入的数数量
F/E/C/M/T/O/K wrong bottle:操作的瓶子编号不在[1,当前最大编号]范围内
C exceed [0,10^9]:字面意思
K exceed 10^9:字面意思
wa on test xxx:你在第xxx组随机数据狗带了
wa on extratest xxx:你在第xxx组人工数据(手打的)狗带了