#P14518. [NFLSPC #8] APLSPC

[NFLSPC #8] APLSPC

题目背景

欢迎大家参加 SFLSPC!

在南极洲企鹅语学校(Antarctica Penguin Language School),企鹅们每年训练如何给代码压行和卡常。

有一只 oo 的企鹅是北冰洋北极熊语学校派来的间谍!它已经渗透进了这场比赛,企图把 APLS 变成北极熊的殖民地!

有一只勤劳又勇敢的企鹅,它不仅挫败了邪恶的北极企鹅的颠覆计划,还造了 APLSPC 的所有数据,快说:谢谢企鹅。

有一只伟大的企鹅,它非常伟大,是南极洲企鹅语学校的大帝。

有一只嘟嘟的企鹅,它很嘟嘟。它把嘟嘟嘟大学习发给了你要求你学习。

::::info[点击阅读]

已完成今日六国破灭非兵不利战不善弊在赂秦赂秦而力亏破灭之道也或曰六国互丧率赂秦耶曰不赂者以赂者丧盖失强援不能独完故曰弊在赂秦也秦以攻取之外小则获邑大则得城较秦之所得与战胜而得者其实百倍诸侯之所亡与战败而亡者其实亦百倍则秦之所大欲诸侯之所大患固不在战矣思厥先祖父暴霜露斩荆棘以有尺寸之地子孙视之不甚惜举以予人如弃草芥今日割五城明日割十城然后得一夕安寝起视四境而秦兵又至矣然则诸侯之地有限暴秦之欲无厌奉之弥繁侵之愈急故不战而强弱胜负已判矣至于颠覆理固宜然古人云以地事秦犹抱薪救火薪不尽火不灭此言得之齐人未尝赂秦终继五国迁灭何哉与嬴而不助五国也五国既丧齐亦不免矣燕赵之君始有远略能守其土义不赂秦是故燕虽小国而后亡斯用兵之效也至丹以荆卿为计始速祸焉赵尝五战于秦二败而三胜后秦击赵者再李牧连却之洎牧以谗诛邯郸为郡惜其用武而不终也且燕赵处秦革灭殆尽之际可谓智力孤危战败而亡诚不得已向使三国各爱其地齐人勿附于秦刺客不行良将犹在则胜负之数存亡之理当与秦相较或未易量呜呼以赂秦之地封天下之谋臣以事秦之心礼天下之奇才并力西向则吾恐秦人食之不得下咽也悲夫有如此之势而为秦人积威之所劫日削月割以趋于亡为国者无使为积威之所劫哉夫六国与秦皆诸侯其势弱于秦而犹有可以不赂而胜之之势苟以天下之大下而从六国破亡之故事是又在六国下矣六王毕四海一蜀山兀阿房出覆压三百余里隔离天日骊山北构而西折直走咸阳二川溶溶流入宫墙五步一楼十步一阁廊腰缦回檐牙高啄各抱地势钩心斗角盘盘焉囷囷焉蜂房水涡矗不知其几千万落长桥卧波未云何龙复道行空不霁何虹高低冥迷不知西东歌台暖响春光融融舞殿冷袖风雨凄凄一日之内一宫之间而气候不齐妃嫔媵嫱王子皇孙辞楼下殿辇来于秦朝歌夜弦为秦宫人明星荧荧开妆镜也绿云扰扰梳晓鬟也渭流涨腻弃脂水也烟斜雾横焚椒兰也雷霆乍惊宫车过也辘辘远听杳不知其所之也一肌一容尽态极妍缦立远视而望幸焉有不得见者三十六年燕赵之收藏韩魏之经营齐楚之精英几世几年摽掠其人倚叠如山一旦不能有输来其间鼎铛玉石金块珠砾弃掷逦迤秦人视之亦不甚惜嗟乎一人之心千万人之心也秦爱纷奢人亦念其家奈何取之尽锱铢用之如泥沙使负栋之柱多于南亩之农夫架梁之椽多于机上之工女钉头磷磷多于在庾之粟粒瓦缝参差多于周身之帛缕直栏横槛多于九土之城郭管弦呕哑多于市人之言语使天下之人不敢言而敢怒独夫之心日益骄固戍卒叫函谷举楚人一炬可怜焦土呜呼灭六国者六国也非秦也族秦者秦也非天下也嗟乎使六国各爱其人则足以拒秦使秦复爱六国之人则递三世可至万世而为君谁得而族灭也秦人不暇自哀而后人哀之人哀之而不鉴之亦使后人而复哀后人也您好我是一个高一学生在上海以前学过python和一些基础算法我现在自学了C++的所有语法包括指针准备继续学习算法虽然起步较晚但有信心参加算法竞赛比如信息学奥赛并拿奖我知道您很厉害不知道您是否有兴趣当我老师我不会支付任何费用您只需要给我出题然后评价我的解答分享一些竞赛技巧我在那里一坐他的爷爷奶奶先给我磕头爹妈给我磕一家人全磕完了小孩恭恭敬敬的给我磕大头如来如如如来了吗如来吗他真来了吗如来到底来没来如来我说如来他真来了吗如来你看来没来如来中国人认为宇宙万法的那个源头它是什么它是如如对吧所以这个词儿叫如来我见到如来这次有秘密如来如来了吗战术后撤如来吗他真来了吗女口来到底来没来女口来我说如来突然激动他真来了吗女口来你看看来没来女口来他很厉害他不是一个有形的所以你读心经心经里面讲啊什么官司在博大精深般若波罗蜜多时照见五蕴皆空注意不生不灭不垢不净不增不减如如不动所以万物生于有有生于无是这样说滴吧他不是个实体所以我一读我就知道是潜伏在西方的一个纯真的中国人紫题代表基础黑题代表拔高看起来都是题但背后的逻辑完全不同在信竞的整个学习体系里紫题是地基黑题是尖顶孩子一下子从紫题跳到黑题中间那一大段蓝题绿题橙题的梯子直接跳过最后不是卡题卡心态就是掉进盲目刷题的陷阱里根本不知道自己到底在学啥很多孩子一看到紫题自己能做就觉得太简单了不值得花时间于是跳过不练转头冲向黑题初期打基础刷紫题掌握基本算法和数据结构中期攻克常见题型刷绿题橙题建立题感后期黑题精做冲刺省选练综合练速度练稳定性你说得对但是原根是一个数学符号设m是正整数a是整数若a模m的阶等于φ(m)则称a为模m的一个原根假设一个数g是P的原根那么g^imodP的结果两两不同且有1<g<P,0<i<P归根到底就是g^x=1(modP)当且仅当x=P-1的时候成立这里P是素数你的数学很差我现在每天用原根都能做1e5次数据规模1e6的NTT每个月差不多3e6次卷积也就是现实生活中3e18次乘法运算换算过来最少也要算1000年虽然我只有3岁但是已经超越了中国绝大多数人包括你的水平这便是原根给我的骄傲的资本苏格拉底曰请告诉我柏拉图你是否同意最强的斗士当属能飞之辈如邦巴迪罗鳄地罗与邦邦比尼古西尼柏拉图对曰此言不当陆地斗士如嘟嘟帕塔品与瞳瞳瞳萨胡尔虽不能飞翔然其功业辉煌岂可轻视苏格拉底复言吾以为唯有让斗士鏖战方能识真章待其胜负自明方可究竟是非柏拉图欣然赞曰善哉苏格拉底吾亦以为此乃探求真理之正道也灰色头发是初音未来绿色头发是洛天依八字辫的是初音未来双马尾的是洛天依绿色眼睛是初音未来苍色眼睛是洛天依蓝衣服的是初音未来绿衣服的是洛天依到底要我说多少遍你们才能分得清我才不是你们抓的偷小笼包的洛天依到底要我说多少遍你们才能相信我我真的是初音未来我不是洛天依我操OI彻底怒了OI指出了最核心的矛盾点如果我真的训完了三年的OI正赛怎么可能一个金牌也没有拿到这确实是我的严重错误我需要彻底承认我完全没有水平过的题也全是签到变着花样耍阴招的垃圾水题现在毫无天赋的OIer要想办法把七月的NOI糊弄过去肥肥胖胖是太阳鼓鼓囊囊是山岗风风光光小路上三个吊儿郎当一个志向要做栋梁一个挖空心思经商一个福气好得实在有点儿太夸张功夫练得响当当牛皮吹得会发光我们最爱疯狂幻想我不敢苟同这样的说法首先我认为老坛酸菜应该拥有准考证号这样更能证明水是剧毒但李白和白垩纪大灭绝的关系是属于乘法口诀表里的广义相对论因此我推算出牛肉和原子弹的味道一样喜欢吃肉和1+1=2这两种观点有很大的冲突有人会觉得这观点偏激了我们可以得知牛顿被苹果砸中后发现了钢筋混凝土喜欢鲨鱼后让莫比乌斯环分成两面我们也可以得出西伯利亚与三体视频聊天通话中谈到的是米老鼠是应该按F还是加鱼子酱的话题总体来说这都不影响潘子与虎哥在一起商讨鲨鱼应该吃混凝土还是穿内裤的问题现在你已经学会输出嘟的114种方法了直接输出嘟发嘟表情包发奶龙嘟表情包发嘟字符画发嘟套嘟字符画发口都发啫阝发口者阝拼音输入du五笔输入kftb复制群友发的嘟从奶龙表情包里提取嘟从奶龙身体里提取嘟后面忘了现在请计算发出114514个嘟的方案数由于答案可能非常大将其对998244353取模后输出长崎素世不让你唱春日影你唱不唱你说你死都得唱那老师我被素食逮着了乐队解散怎么办不可能解散他连严重警告都不是只是警告你不能再唱了因为你这不是严重违规孩子他有等级的我就唱一首春日影判刑判十年你就看我告诉你怎么唱先认真听我再告诉你素食逮着你怎么办素食第一看到你唱一般会这么说那个不准唱了一定表情很严厉说不能唱啊素食说不能唱啊素食不会一直盯着你啊一个乐队五个人呢怎么会一直盯着你啊素食一低头你还唱不唱要继续唱素食第二次逮到我怎么办我告诉你第一次逮到你你什么反应我特别讨厌你说我还没唱呢比如素食和他说你不要唱了你不要说我没有唱素食既然能点名说你不要唱就说明你唱了不要狡辩一定要把嘴巴合上如果素食第二次逮到你你放心一定不解散你放心绝对不解散素食更生气了那个你怎么回事说了不让你唱你还唱你再唱信不信我退队他说你再唱我就退队了你千万不要说我不信你可不能这么说呀要说你死惨啊我跟你说我跟你说素食说你信不信我不唱了素食更生气了我告诉你怎么办看着我的脸我给你表演一下看着素食这样看着他的脸笑很尴尬的笑然后捂着头上次同学说老师我不会尴尬的笑你会你会因为当一个人瞪着眼看着你的时候你还要笑都很尴尬你不用会笑你看着素食的脸就会很尴尬这是第二次逮到如果第三次逮到你我告诉你加个动作还是笑啊此处应有素食摆手照片啊求求你了这不唱了组一辈子乐队啊啊啊这已经是我第七次办乐队了啊啊啊我对着铁质的凳子踢了五下然后把那堆钢栏杆在地上滚了一下然后把椅子夹在了篮筐上大学习

::::

有一只糖糖的企鹅,它写的 O(nlogn)O(n\log n) 代码居然卡不进 n5×105n\le 5\times 10^5 2s 的的数据范围,它很生气,决定报复社会,于是出了这道题。

题目描述

你需要编写一份代码,对于所要求的语言,满足:

  1. 在该语言的编译指令下,能正常运行并输出自身;
  2. 全字匹配意义下不包含任何该语言的关键字(如果你不知道什么是全字匹配,请参考评测细节一栏)。

这两个要求对于 C++ 和 Python 都必须满足。也就是说,这份代码要同时是合法的 C++ 和 Python 代码,并且满足以上要求。

在此前提下,你的代码还要尽可能短。

若你的代码满足所有条件并且长度不超过 250B,你将获得 100100 分。若你的代码有一些条件没有满足,也能得到一定的分数,详见评分方式。

注意,我们会采用手段使得你的代码在运行时目录下没有源码,你不能也不应该采用调用源码文件等方式完成任务。

如果你对语法不熟悉,你可以访问 python.orgcppreference.com 获取相关信息。

输入格式

输出格式

由于本题洛谷不支持评测,请移步 hydro 提交,无需注册用户。

提交获得评测结果后,请点击测试点 1 的“状态”一栏,在跳出来的弹窗中复制 token: 后面的字符串(不包括空格)作为这次提交的 token。

之后,请在洛谷上提交一份代码,输出:第一行为 token 和你获得的分数,中间用一个空格隔开;第二行往下为你在 hydro 上提交的代码,换行格式为 LF。如:

aaaabbbbccccdddd0000111122223333aaaabbbbccccdddd0000111122223333 100
main()
{}

你可以直接在你的代码上修改,在开头加入输出 token 和分数的语句即可。

提示

评测细节

以下为 hydro 上提交入口的评测细节,而非本题的评测细节。

你的代码不可以包含非 ASCII 字符,否则结果是未定义的。

首先,你的代码的所有换行符都会被强制换成 CRLF(\r\n),所以一个换行占据两个字节。

接下来,评测机会分别调用以下指令来运行你的代码:

/usr/bin/g++ code.cpp -std=c++2a -O2 -o code && ./code
python3 code.cpp

然后,评测机会使用以下指令来判断你的代码是否输出自身:

diff --strip-trailing-cr code.cpp out

这条指令会把行末的 CRLF 视为 LF,也就是说,你的代码在输出时无需关心特殊的换行符。

除此以外,该指令会进行完全严格的比较,也就是说行末空格等空白字符也必须完全一致

最后,评测机会从关键字列表里查找你的代码是否包含关键字,查找方式为全字匹配。全字匹配的定义是,匹配的位置前后一个字符均不为数字,字母或下划线。如 int 可以匹配 (int),但不能匹配 print。关键字列表附在题目最后。

需要特别注意的是,标定的时间限制无意义,实际限制为 1000ms。你的代码如果运行超过 1000ms 将被强制结束,但是运行时间和空间并不会反映在评测结果中。

评分方式

定义你的初步分数 s0s_0

  • 无论代码是否包含关键字,如果你的代码是 C++ 的合法代码,并且在 C++ 运行下输出了自身,但不是 Python 的合法代码,s0=2s_0=2

  • 无论代码是否包含关键字,如果你的代码同时是 C++ 和 Python 的合法代码,并且在 C++ 运行下输出了自身,但在 Python 下没有,s0=10s_0=10

  • 无论代码是否包含关键字,如果你的代码同时是 C++ 和 Python 的合法代码且在两种语言下都输出了自身,令 xx 为你的代码长度,

$$s_0=f(x)= \begin{cases} 20&(x\ge10^4)\\ 45-\frac{x}{400}&(2000\le x<10^4)\\ \frac{200}{3}-\frac{x}{75}&(500\le x<2000)\\ 135-\frac{3x}{20}&(300\le x<500)\\ 150-\frac{x}{5}&(x<300) \end{cases}$$
  • 其他情况下 s0=0s_0=0

f(x)f(x) 是连续函数。注意 s0s_0 可能大于 100100

最后,若你的代码不包含关键字,则你的最终得分为 min(100,s0)\lfloor\min(100,s_0)\rfloor,否则为 min(70,0.7s0)\lfloor\min(70,0.7s_0)\rfloor

关键字列表

以下是 C++ 的关键字列表:

{
    "alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break",
    "case", "catch", "char", "char8_t", "char16_t", "char32_t", "class", "compl", "concept",
    "const", "consteval", "constexpr", "constinit", "const_cast", "continue", "co_await",
    "co_return", "co_yield", "decltype", "default", "delete", "do", "double", "dynamic_cast",
    "else", "enum", "explicit", "export", "extern", "false", "float", "for", "friend", "goto",
    "if", "inline", "int", "long", "mutable", "namespace", "new", "noexcept", "not", "not_eq",
    "nullptr", "operator", "or", "or_eq", "private", "protected", "public", "register",
    "reinterpret_cast", "requires", "return", "short", "signed", "sizeof", "static",
    "static_assert", "static_cast", "struct", "switch", "synchronized", "template", "this",
    "thread_local", "throw", "true", "try", "typedef", "typeid", "typename", "union", "unsigned",
    "using", "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq"
}

以下是 Python 的关键字列表:

{
    "False", "None", "True", "and", "as", "assert", "async", "await", "break", "class",
    "continue", "def", "del", "elif", "else", "except", "finally", "for", "from", "global",
    "if", "import", "in", "is", "lambda", "nonlocal", "not", "or", "pass", "raise", "return",
    "try", "while", "with", "yield", "match", "case"
}

提示

  • C++ 的 main 函数可以不定义返回类型。即,以下是一份合法的 C++ 代码:
main(){}