版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
title: "题解 - [Luogu P5285] [十二省联考2019] 骗分过样例" categories:
这是一道传统题
"我的程序需要完成什么功能呀? ......"
"我也不知道......"
"啊? 那我怎么写呀......"
"已经有人给你写好测试了, 只要你通过这些测试就可以了......"
"啊? ......"
"所有的测试数据都在题目目录下, 请做好备份, 避免误删!"
"这......"
"哦, 我还可以把输入格式告诉你......不过都有完整的数据了, 知道输入格式可能也没太大用处吧......"
题目数据详见附加文件
第一行输入一个字符串, 表示需要运行的软件功能编号. 两个编号越相似, 说明对 应的两个功能的算法越接近
接下来根据功能的不同, 可能有任意长度的输入, 详见每个功能的文档
详见每个功能的文档
无
" '每个功能的文档' 在哪里呀?"
"我也没有, 就像我没有题目描述一样......"
"好吧......那我是不是打表就可以了呀......"
"代码长度限制是 $\bold{102400}$ 字节 ($100$KB), 直接打肯定是不行的! 不过, 需要的话倒是可以稍微打一些小的表......"
"唔......"
"另外, 我们会给你的程序对于每个测试点分别评分, 求和后得到总分. 按照传统 的规矩, 每个测试点正确得满分, 错误得 $0$ 分. 每个测试点的分值不全相同, 测试点的分值, 顺序与难度没有必然联系 ."
测试点 | 功能编号 | 分值 |
---|---|---|
$1$ | $\texttt{1_998244353}$ | $4$ |
$2$ | $\texttt{1_998244353}$ | $4$ |
$3$ | $\texttt{1_998244353}$ | $4$ |
$4$ | $\texttt{1?}$ | $7$ |
$5$ | $\texttt{1?+}$ | $9$ |
$6$ | $\texttt{1wa_998244353}$ | $6$ |
$7$ | $\texttt{1wa_998244353}$ | $7$ |
$8$ | $\texttt{2p}$ | $4$ |
$9$ | $\texttt{2p}$ | $6$ |
$10$ | $\texttt{2p}$ | $8$ |
$11$ | $\texttt{2u}$ | $5$ |
$12$ | $\texttt{2u}$ | $6$ |
$13$ | $\texttt{2u}$ | $9$ |
$14$ | $\texttt{2g}$ | $5$ |
$15$ | $\texttt{2g}$ | $7$ |
$16$ | $\texttt{2g?}$ | $9$ |
在你使用 C/C++ 的 int
类型时, 如果发生了溢出, 比较可能的情况是按照模 $2^{32}$ 同余的前提下, 在 int
范围内取一个合理的值. 例如在计算 $2147483647 + 2$ 时, 较有可能会得到 -$2147483647$
然而, C/C++ 标准将这种情况归类为"未定义行为". 当你的程序试图计算会溢 出的 int
运算时, 除了上述结果外, 编译器还可能会让你的程序在此时计算出错误结果, 死循环, 运行错误等, 这也是符合 C/C++ 标准的
如果你的程序希望利用 int
的自然溢出的特性, 请转换为 unsigned
类型运算. 例如将 a + b
改写为 (int) ((unsigned) a + (unsigned) b)
, 以避免出现不预期的错误
data.7z 4.16MB
编号 | 功能 |
---|---|
$\texttt{1_998244353}$ | 求 $19^n\bmod p$, $p=998244353$ |
$\texttt{1?}$ | 求 $19^n\bmod p$, $p=1145141$ |
$\texttt{1?+}$ | 求 $19^n\bmod p$, $p=5211600617818708273$ |
$\texttt{1wa_998244353}$ | 求 $19^n\bmod p$, $p=998244353$, 但是要写成 int 溢出的代码 |
$\texttt{2p}$ | 对给定的区间求区间中所有的素数 |
$\texttt{2u}$ | 对给定的区间求区间中所有的 Möbius 函数值 |
$\texttt{2g}$ | 对给定的区间和模数求区间中所有的原根 |
$\texttt{2g?}$ | 对给定的区间和模数求区间中所有的原根, ? 代表 $1515343657$ |
全是板子题, 就不细讲了