你没实力
2024-11-03 18:07:53
发布于:四川
Dayforever(前言)
写在前面:作者这次状态极差,很多题都写挂了。无论如何,之前打OI的时光还是很值得留念的。
已AFO。2022.12.14~2024.10.27
Day-1(2024/10/25)
听了一会歌,复习了一下模板,就去睡觉了,毕竟明天要考一天
睡得还行。但是我后来才知道,我应该是失眠了。
Day1上午(2024/10/26)
幸好没有被分到南京去。
六点半起床,开半小时去苏州考场。到的时候已经七点半了,还算是比较早的,但是已经有很多人在站着了。天气是阴天。怎么考CCF的时候全是阴天啊喂
精神还行,没有很紧张,毕竟是J。但是怎么还有身高只有一米二的小朋友来考(记住这个小朋友,待会会考)。
分到的考场好闷。考场很小,几乎是挤在一块的。还有足足一个小时的时间开考,我也不急,先打了个Floyd模板试试手,测测运行时间。
大概8:24的时候,监考员下发了压缩包。什么?你跟我说有密码打不开?好吧雀氏打不开,但是可以预览文件。
看了四个文件名:chain?接龙?感觉是模拟。explore?探索?感觉是模拟。poker?扑克牌?感觉是模拟。sticks?火柴棒摆数字?感觉还是甜蜜的模拟。
随着我点开pdf的那一刻,我看到了第一题——poker。读完这题后,我随之感叹一句:J组的第一题水分又增加了114514%,真是滑天下之大稽。我用5分钟过了这道题。
第二题就是一个纯纯的模拟。感觉只有普及-的难度。狂写两分钟,结构代码debug半小时。无论怎样还是过了。
第三题火柴棒,果然猜对了:摆数字。一开始想着用贪心,但是不知道怎么了没有想出来。这时候看了一眼特殊性质:两个全部和7的倍数有关。我很快推出了两个性质,60分到手。然后我又去打表n≤20,打完之后很快发现这里有很明显的规律。
这时候突发事件来了,在整个刚才想的过程中,我的头越来越痛。感觉天旋地转,看到我有三只手。我觉得是机房太闷了,于是去上了个厕所。但是这种症状并没有减轻,差点躺在厕所里。那怎么办?硬抗。我当时这样想。
回来之后,感觉状态已经很差了。于是我朦胧找到的规律被我否决了,于是100分的机会没有拿到,只拿到了70分。
再看第四题。第一眼感觉要把他们连边。但是这样一来连的边就太多了。考虑dp。结果推了2个小时硬是没有推出来,我不会菜的连绿题都不会了吧。
还剩5分钟结束。我只能保存文件。估分100+100+70=270,这个分放在江苏估计连二等奖都拿不到。
考完的时候,那个小朋友说他AK了。wc真是天大的打击。问他了一下思路,也都差不多。
Day1下午(2024/10/26)
在附近吃了个KFC。然后继续考S。不幸的是,状态仍旧不好,我的好手表竟然说我缺氧,tmd气死我了。
打开文件先看到第一题。哇这么水吗?我直接排序+O(n)遍历。10分钟的时候就写完了。
看到第二题。我勒个超速检测啊,他这次甚至还有公式。模拟了一遍之后很容易求出第一问。至于第二问,可以把检测到的摄像头看作区间,求最大交错区间,然后减去。但是这样的复杂度是
�
(
�
2
)
O(n
2
)的,会被卡死。
看了一会,发现他们有单调性,那么两个东西都用二分,
�
(
�
�
�
�
�
�
)
O(Tnlogn)解决。这题卡了我一小时。
这时候,脑子已经有点白热化了。
接着看第三题涂色。这题感觉很玄学啊,要用dp。本来要dfs的,后来看了一下数据,老实了。
dp[i][0]和dp[i][1]的转移卡了我有一个多小时。列了满满一草稿纸,算出一个很奇怪的转移方程。结果果然不对。但是思路应该没问题啊??心态有点崩了。
顺便看了一下第四题,感觉有黑题。就先不做了。于是一直再调前面的题目。
后记(2024/10/27)
我怎么也没想到,3题全写挂?!70+0+5=75,对不起我要退役了。最后4勾的倔强。
这次也不能怪别人,不知道为什么状态出奇的差。也许最近压力太大了?我不知道,也许这就是OI的魅力。
比赛完,有人欢喜有人愁。漫步在校园里,远边夕阳早已落下,楼房灯火通明。或许,夕阳落下的,还有我的生涯吧。
AFOed.也许这条道路不适合我走,心中会有不甘,但是早已没有时间给我再来一次。
"总为浮云能避日,长安不见使人愁。"
有帮助,赞一个
userId_undefined
去预览
此处输入正文,2千字以内,可点击右上角【去预览】按钮查看markdown展示效果
0/2000发布
全部评论 8
userId_undefined
anyin775 请回关@互关
倔强青铜
互关
昨天 来自 广东
1
userId_undefined
暴躁小鱼
倔强青铜
ACGO_大佬
6天前 来自 浙江
1
userId_undefined
哎嘿
倔强青铜
勇敢去做
7小时前 来自 广东
0
userId_undefined
xd2404
倔强青铜
https://www.acgo.cn/application/1850428570481831936要不要加
7小时前 来自 浙江
0
userId_undefined
手持剑,刺锋芒
倔强青铜
今年S确实难
4天前 来自 云南
0
userId_undefined
OX114514
倔强青铜
那个一米二的小朋友应该是大班的,但是填信息的时候他爸妈给他填了个三年级
4天前 来自 广西
0
userId_undefined
队团加不)ด้้童帅_者仇复
秩序白银
《感觉是模拟》
1周前 来自 广东
0
userId_undefined
Starsfocxy
回复
队团加不)ด้้童帅_者仇复
《全是模拟》
6天前 来自 江苏
0
userId_undefined
Starsfocxy
倔强青铜
顶
1周前 来自 江苏
0
userId_undefined
key0213
回复
Starsfocxy
厉害,我S 第2题吧m打成n50分没了呃呃呃呃呃
1周前 来自 福建
0
userId_undefined
Starsfocxy
回复
key0213
啊
6天前 来自 江苏
0
热门讨论
1
userId_undefined
CSP复赛考试注意事项
CSP复赛在即,祝各位考生发挥最佳状态,RP+++!以下是考试注意事项,快来看看吧。 CSP复赛考试注意事项 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 原文:CSP注意事项 考前准备 1. 考前注意检查身份证、准考证等证件,以及笔等基本工具。 2. CSP 允许带食品和饮料,可带一瓶水和巧克力等进入考场补充体力。 3. 比赛开始前调整屏幕分辨率至个人舒适大小。 4. 比赛开始前将编译器字体调整为平时惯用字体。 5. 在不影响视野的情况下,尽可能调大字号以方便查错,特别是模拟或搜索题目。 6. 比赛前多敲键盘,熟悉常用按键。 比赛时注意事项 1. 保持心态平稳,相信自己。对于题意不明确的情况,通读题面与样例,必要时询问工作人员。 2. 如果机器出现问题,不要慌,可申请加时并利用时间思考题目。 3. 如果感到紧张,可以尝试上厕所冷静一下。 4. 不要因为旁边人写得快而慌乱,每个人的解题速度不同。 5. 仔细读题,通读完后再开始深入思考。 6. 不要因为题目看似简单就急于写代码,先明确每一步要做什么。 7. 对于看似无解的题目,不要提前放弃,尝试几个例子可能找到解题思路。 8. 写题前先在纸上规划思路,判断可行性后再编写代码。 9. 认真计算时间复杂度,避免将低复杂度代码误算为高复杂度。 10. 不要浪费时间在大模拟或大搜索上,到一定程度即可。 11. 数学题或找规律题要在纸上写出来。 12. 充分利用时间,如果15分钟内没有思路就换题。 13. 先写暴力解,再写正解。 14. 时刻计算当前代码的复杂度。 15. 写完程序后,通读代码进行静态查错,注意变量调用、数组大小、变量类型等。 16. 通过样例后,自行设计数据测试程序,确保程序健壮性。 17. 出现问题时,分模块调试程序。 18. 可以使用 #include <bits/stdc++.h>,不需要背诵大量头文件。 19. 代码保存按照考场PDF指示,不清楚可询问监考老师。 20. 避免使用下划线开头的函数,除非自己定义。 21. 变量名避免使用完整单词或不清晰的命名方式。 22. 删除调试语句,定期保存代码。 23. 注意数据范围,合理分配内存空间。 24. 注意输出方式,如取模操作。 25. 自己手写 abs 函数。 26. 注意题目输出要求,如大写问题。 27. 整数指数时避免使用 pow 函数。 28. 注意 scanf 类型正确性。 29. 避免使用 floor 和 ceil 函数。 比赛结束前的注意事项 1. 比赛最后5至15分钟,不要再改动程序。 2. 检查文件名是否正确。 3. 检查是否正确处理文件输入输出。 4. 整理物品,离开时带走垃圾。 代码示例 以上是对考前准备、比赛时注意事项以及比赛结束前的检查事项的详细整理,希望对你有所帮助。 2024 CSP-J/S 第二轮缴费及系统使用说明流程 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 一、赛事相关信息 📍 关于 CCF 2024 CSP-J/S 有关问题的解答 可先点击链接了解: 关于CCF CSP-J/S2024有关问题的解答 📋 关于 CCF 2024 CSP-J/S 各省特派员信息 点击链接查看各省负责人联系方式: CSP-J/S各省负责人联系方式 📆 CSP-J/S 2024第二轮报名通知 点击链接查看报名通知: NOI报名网站 二、第二轮认证时间 🕐️ 第二轮认证时间:2024年10月26日 * 入门级:8:30-12:00 * 提高级:14:30-18:30 三、第二轮认证参加资格 凡已参加 CSP-J/S 2024 第一轮认证,且成绩符合所在省市第一轮晋级第二轮认证规则者均可参加 CSP-J/S 2024 第二轮认证。 各省晋级规则将陆续公布在“NOI网站—各省新闻”中。 时间 8:30-12:00 14:30-18:30 2024年10月26日(周六) 入门级认证 提高级认证 未参加第一轮认证,或不符合本省参加第二轮认证晋级规则者均不能参加第二轮认证。 四、第二轮认证报名流程 CSP-J/S 2024 第二轮不需要认证者操作报名及指导教师进行审核,由各省负责人直接统一为本省具有晋级资格的认证者报名。 CSP-J/S 2024 第二轮报名流程及操作时间点具体如下 日期 时间 内容 角色 10月2-9日 全天 统一报名 各省负责人 10月10-18日 10月18日 15:00前 认证者审核状态为“请确认报名并缴费”后,认证者如确认参加活动,在报名页面进行交费 认证者 10月19-21日 10月21日 17:00前 生成准考证号、提交报名表、上传考点信息、CCF审核报名表 各省负责人,CCF管理员 10月22-26日 全天 下载准考证 认证者 10月26日 8:30-12:00 入门级认证 入门级认证者 10月26日 14:30-18:30 提高级认证 提高级认证者 👉 查看更多: 欢迎在留言区评论,畅所欲言!
2
userId_undefined
互动|#刷题必备神曲#
🚀话题#5| #刷题必备神曲# 😎大家写作业或者刷题的时候,是不是也有自己专属的“BGM”呢?是有超棒的歌曲想和大家分享,还是有那种因为听歌而发生的奇葩经历呢?不管怎样,都快来这里畅所欲言吧! 🎵推荐分享 1. 适合刷题的神曲 * 我觉得《冰与火之歌》的主题曲非常适合,那种宏大的气势和神秘的氛围,就像代码世界里的未知挑战,凛冬将至的感觉也特别适合赶稿或者刷题的紧张氛围!你们有什么推荐呢🧐 2. 分享听歌经历 * 有一次光顾着听歌,结果稿都没写完,真是哭笑不得。 🎁 话题奖励 * 奖励设置:抽取3个人,获得ACGO盲盒。 🎁 话题时间 * 活动时间:本次话题活动从10月11日开始,到10月20日结束。在这个时间段内,大家都可以积极参与留言分享哦。 🎁 奖励名单 ID 昵称 3444749 猫条一 2117063 Starsfocxy 3310442 key0213 快来分享你的刷题必备神曲吧😎
3
userId_undefined
互动|1024吐槽大会
🚀话题#6| 1024吐槽大会 😎 1024程序员节即将到来!大家在编程学习过程中,是不是有很多想吐槽的呢?比如学习中最难的算法,编程学习中遇到的最搞笑最或最崩溃的时刻,或者最最难的编程题,或者是ACGO的最难用的地方。不管是什么,都快来这里畅所欲言吧! 🎁话题奖励 奖励设置:抽取3个人,获得ACGO盲盒1件。 🎁话题时间 活动时间:2024/10/21 -2024/10/30。 🎁获奖公告 ID 昵称 4347789 复仇者 4495551 VIVI 4156430 手持剑,刺锋芒 在这个时间段内,大家都可以积极参与留言分享哦,快来吐槽你的编程学习经历吧😎
4
userId_undefined
规则怪谈《你让我张三遵守规则》第二十二章
简介:【惊悚+诡异++爽文+国运=正经小说】 阅读规则: 1、请不要在镜子前阅读本书。 2、阅读本书时,如果听到身后传来脚步声,请放下手机或电脑笔记本,不要回头!千万不要回头! 3、晚上1点到4点,请不要阅读本书。如果不小心阅读本书,请务必在4点44分前,放下手机或电脑笔记本,准备睡觉。 4、每周至少要阅读本书三次,如果忘记,请保持镇定,并将本书推荐给你的朋友。 5、本书永远无法阅读完,如果看到最新章,请保持理智,在心里默念:读者很帅,作者更帅! 6、本书不存在1星到4星的评价,如果看到非5星价,请假装没看到,并给出5星评价。 7、如果发现自己的手机或电脑笔记本没有本书,请假装什么都没发生过,并在心里默念:我是人类。然后,你就会醒来。 第22章 妈妈纸条的真相 “啊——” “你……你……你是……” 穿着白色连衣裙刚刚回到家里的妈妈,看到儿子卧室的门口站着一个手持大斧子的壮汉,吓得腿都软了。 整个人扶着墙,差一点儿就要因为站不稳而摔倒在地上。 壮汉朝着妈妈瞪了一眼,吓得妈妈马上捂住嘴,不敢继续出声。 “女人!我劝你安静一点儿!” “老子只是来求财的!” “你家的猫值钱,将猫给我,我就走!” “否则的话……” 壮汉说着,手中的斧头朝着卧室的房门上狠狠地劈下去。 咔嚓一声! 房门被瞬间劈开,露出更大的窟窿。 而张三此时也能清晰地看到刚刚从外面回来的妈妈。 此时,张三又看了一眼卧室里钟表上的时间。 23点55分。 “只要你不伤害我的孩子,我什么都给你!什么都给你!” 女人说着,小心翼翼地走进客厅,朝着在卧室里的张三温柔地说道:“孩子,不要怕!有妈妈在!” “听妈妈的话,将猫猫给他!” “给他猫猫,咱们就安全了。” 壮汉一脸狰狞地看着房间里的张三,沉声道:“没错!我只是为了求财,不想造成不必要的伤害!” 张三看了一眼时间。 23点56分。 张三抱着猫猫,从床上下来,走到了卧室的门口,看了一眼在门口手持斧子的壮汉。 刚想要将猫猫交出去的一瞬间,张三猛然想到了什么,但却又有些想不清刚刚闪过自己脑海之中的那一句 至关重要的话是什么。 精神净化! 下一个瞬间,刚刚似乎被某种力量影响而忘却的那句话,再次出现在张三的脑海之中。 门口放钥匙托盘下面压着的那张纸条上的第4条。 如果遇到无法化解的危机,可以牺牲猫猫。 没错! 猫猫是可以牺牲的。 但,猫猫真的是可以牺牲的吗? 张三朝着站在客厅里的妈妈看了一眼,忍不住问道:“妈妈,门口的那张纸条,是你写的吗?” “是啊!” 妈妈看向张三,眼神之中充满了关切与疼爱。 妈妈轻轻蹲在地上,保持着和此时只有八岁男孩高的张三平视。 这世上,只有妈妈和孩子说话的时候,才会如此温柔吧。 “孩子,你要知道,对妈妈来说,这世上没有什么比你对我更重要!” “当初妈妈十月怀胎,挺着大肚子连晚上睡觉都难受。” “可就算这样,妈妈还是忍受着痛苦,将你生下来,将你养大。” “你爸爸家暴我,还在外面欠赌债,甚至我都被追债的人毒打过。” “可就算这样,妈妈离开那个男人的时候,还是没忘记带着你。” “因为在这个世上,只有是**妈的骨肉血亲。” “没有人比你对妈妈更重要。” “所以……所以妈妈宁愿当单亲妈妈,忍受别人异样的目光,忍受一个人支撑整个家庭的坚辛,妈妈能承 受一切,只要你能快乐长大。只要……” “只要你能一直在妈妈身边。” 这一刻,直播间里的所有网友,无不动容。 这世上,最初的也是最伟大的,就是母爱吧。 她不管自己多苦多累,都会将你哺育长大。 因为你对她来说,在是这世上最最重要的珍宝。 “孩子,听妈妈的话,将猫猫给他。” “只要将猫猫给他,你就安全了。” “妈妈就能和你,一直在一起了。” 此刻,不少在看直播的网友,早已泪如雨下。 这世上,还有什么能比妈妈更值得你去爱呢? 张三听到这里,也低下了头,轻轻抚摸着怀里的猫猫。 “没错。对妈妈而言,孩子对自己更重要。” “就算是牺牲自己,也不愿意让孩子受到伤害。” “是吗?” 妈妈轻轻点头。 而在卧室门口的壮汉,也放下手中的斧头,准备接过张三递过来的猫猫。 然而,就在下一个瞬间,张三却是猛然转身,回到了卧室的床上。 壮汉见到这一幕,不由得一愣。 客厅里的妈妈,也是一脸愕然。 甚至连直播间的所有网友都懵了。 “张三这是在干嘛?” “把猫猫给他,就通关了啊!” “这个时候,张三不会想要将这个猫猫卖给对方吧?” “为什么他总是这么多骚操作啊!” 此刻,所有人看向张三,都充满了疑惑和不解。 甚至一些刚刚因为感动而泪流满面的人,看着张三都有些想要骂街。 你特么到底在干嘛!? 妈妈朝着卧室里的张三喊道:“孩子,快把猫猫给他啊!” “将猫猫给他,妈妈和你就可以一直在一起了!” 壮汉往前迈了半步,朝着卧室里的张三伸出双手。 “我保证,只要你将猫猫给我,我就马上离开!绝不会伤害你!” 不少网友也在疯狂发弹幕。 “此处播放BGM《听妈妈的话》!” “为什么这熊孩子就这么不听话呢!” “这张三到底在想什么?将猫猫给对方,一切就都结束了啊!” “人家只是求财!一只猫猫而已啊!” “之前看日落王国的那个动保女孩,我觉得离谱!现在我看张三,感觉他更离谱!” 而就在直播间的画面里,妈妈一声声呼唤,壮汉也举起双手保证不会伤害张三的时候。 张三看了一眼卧室里的钟表。 23点57分。 继续拖延时间,应该是来不及了。 不过,还有三分钟的时间,应该足够了。 下定决心之后,张三朝着门口的壮汉,还有在客厅的妈妈冷冷地看了一眼。 “你们,别演了!”
5
userId_undefined
原创猜谜-第五期
我曾挑衅西方,是故事 我守护万家,只是为垄断 倡导绿色,一尘不染 加号是我的底气 亦是能够吓退恶势的标志 我来自东方 来自正在苏醒的巨狮
6
userId_undefined
ACGO名人专访第一期macw
建议萌新食用 首先我在这里预祝所有ACGO的同学们拥有一个幸福快乐的国庆小长假! 对Macw07大佬致以最诚挚的慰问,祝他在加拿大也能有一个美好的假期Macw07没有长假哈哈哈 就在两天前(9月27日)我突然心血来潮,想做一个关于ACGO里名人de采访,然后就找到了我们ACGO的镇站之宝Macw07绝不是因为他很帅 他以ACGO的饲养员成功吸引了我直接无敌了好吧,我有幸加到了他的QQ,与他展开了深刻的关于软件编程的探讨~~他其实很好相处的,虽然有点邪恶(排位赛13直接难爆了)~~接下来,我们看看我与他谈论了啥吧! 我们的大神依旧是稳定发挥,超级低调不是呀,两年前才接触信奥,实力太恐怖了呀让我这个蒟蒻默默留下了自尊心的泪水,虽然我认为Macw07有所保留,没把真实时间告诉我,绝对不是说他想装13但我们尊重他的回答。继续下一个环节 大神的思考方式就是不一样!认为学习编程是他生活中不可分割的部分,看看我,对编程并没有强大的内驱力支撑每天上编程课跟上刑一样,啊!差距啊! 这个方法对我来说:非常的有用只不过是把web换成了python的小项目而已绝对没有玩过游戏(自欺欺人) 这一点和我的想法相同,因为封装对手速慢的同学来说真的非常不友好,而且如果你的编程水平较差,很有可能封装都会错像我当然不会啦,在编程比赛中,时间紧,任务重,还是建议多一事不如少一事,避免封装,除了要重复很多次,要用到函数以外(python) 很好,被狠狠的欺骗了,py的各项方法根本用不了,😔,说多了都是泪,你们自己去看我分数。 知州所众,我们ACGO做大做强大部分功劳都在我大部分功劳都在背后的程序猿和老板还有我们亲爱的用户们,而这些改进我一听到后直接开心的跳了起来米小圈。包括我们很希望的深色模式也狠狠的钉在了日程上,我们就一起期待吧! 这个问题非常重要macw的回答为java党和python党吃下了一颗定心丸,当然c一直都不是最方便,最简洁的语言,包括我在学c的时候就像上刑一样,认为c的代码冗长,没有意义。这些都是正常的,对我们来说也是非常致命的,一旦我们对变成彻底失去兴趣,再有趣的语言也不在有意义,c的前景也不是一片昏暗,真要我总结一下的话,那就是:想要学历学c++,想要有趣和项目选java和python。 没想到macw也有考前综合症,我们就祝贺他考零蛋祝贺他考100吧! 最后说一下ai测评不是我不想更,是没时间
7
userId_undefined
关于限制使用人工智能工具的新规定
This article cites the latest regulations of Codeforces 关于限制使用人工智能工具的新规定 看起来神经网络正在创造技术奇迹。不久前,它们在我们的比赛中甚至连最简单的任务都难以完成,但现在它们正在达到无法忽视的新高度。 我们有理由相信这一进步将继续下去,并且可以期待神经网络在编程竞赛领域中取得进一步的发展。 因此,我们明确限制使用基于 AI 的系统(例如 GPT、Gemini、Gemma、Llama、Claude 等模型)来解决编程问题。 不过,我们也认识到 AI 可以作为学习和编程辅助的有用工具,因此我们希望为其使用设立明确的界限。 本规则的适用范围: 此规则严格适用于比赛期间的参赛者。如果一轮比赛是非排位评级的的,并在比赛公告或规则中明确指出,该规则也将适用。在比赛之外,AI 工具可以自由用于练习、学习或非竞赛性质的问题解决。 允许的 AI 使用方式: * 翻译题目:你可以使用基于 AI 的系统来翻译题目,但必须确保系统不对题目进行解释或总结。仅允许直接翻译。 * 代码补全工具(例如 Copilot):可以使用基于 AI 的代码补全系统,但仅限于语法和小的代码建议。不得用于生成解决问题的核心逻辑或算法。 禁止的 AI 使用方式: * 你不得将题目、题目摘要、任何部分或子问题输入 AI 系统,来获取现成的代码或解决方案的自然语言描述。 * 禁止使用 AI 来根据系统反馈诊断或解决错误(例如,在收到“测试 1 运行时错误”等判定后,不得请求 AI 系统帮助修复问题)。任何替代你自身推理的 AI 辅助问题理解、逻辑创建或决策的使用方式都是严格禁止的。 正确使用 AI 的指导: * 允许使用 AI 生成简单的模板代码(如输入/输出函数)。 * 严禁依赖 AI 生成算法逻辑或关键解决方案。 * 如果你不确定某种 AI 使用方式是否违反规则,请咨询比赛 出题人/ AC君。 作弊检测: 这一规则使我们可以像 AI 时代之前一样继续识别作弊行为。我们也会通过检测某一位用户的历史提交记录的代码风格变化并比对比赛时的代码来做出进一步裁决。更进一步地,如果两位参赛者的代码相同,并且在比赛前这些代码没有公开在互联网上,这将被视为作弊的证据。这一方法确保 AI 工具不会被不当使用以规避个人努力,维护公平竞争的完整性。 我们将密切关注 AI 技术的发展,并在平衡公平竞争与 AI 辅助学习的优势时,适时调整规则。
8
userId_undefined
复仇者联盟の邀请!
欢迎您加入复仇者联盟!
9
userId_undefined
Acgo 竞赛积分系统
概述 新版 Acgo\tt{Acgo}Acgo 竞赛分系统参考了 AtCoder\tt{AtCoder}AtCoder 平台的 AtCoder Rating System ver.1.00\tt{AtCoder\ Rating\ System\ ver. 1.00}AtCoder Rating System ver.1.00[1]。 该积分系统基于 Logistic Distribution\tt{Logistic\ Distribution}Logistic Distribution(或 Sigmoid Function\tt{Sigmoid\ Function}Sigmoid Function),类似于 Elo\tt{Elo}Elo 评分系统,但进行了许多修改。 新版竞赛分系统上线后,用户参加 Acgo\tt{Acgo}Acgo 的所有比赛将会有 Rated\tt{Rated}Rated 和 Unrated\tt{Unrated}Unrated(即「评分」与「不评分」)两种状态。 正常情况下参加比赛的选手状态为 Rated\tt{Rated}Rated,状态被评为 Unrated\tt{Unrated}Unrated 包含但不仅限于以下情况: 1. 参加本场比赛前竞赛分超过本场比赛的 Rated\tt{Rated}Rated 分数线限制(RATEDBOUNDRATEDBOUNDRATEDBOUND); 2. 比赛中作弊,被取消比赛成绩; 3. 本场比赛因不可抗力因素导致无法正常进行的将参与本场比赛的所有用户设置为 Unrated\tt{Unrated}Unrated。 对于 Rated\tt{Rated}Rated 的选手,在每场比赛中,会获得一个「表现分」。这个值代表了你在比赛中的表现如何。 粗略地说,你的每场比赛后的竞赛分为「表现分」的加权平均值(最近的比赛权重更高)减去 f(x)f(x)f(x)(xxx 为 Rated\tt{Rated}Rated 比赛的参与次数),其中 f(1)=1200f(1) = 1200f(1)=1200,且 fff 随参加的 Rated\tt{Rated}Rated 比赛的次数增加而逐渐减小并趋于零。 这意味着如果你持续获得 XXX 的表现分,你的竞赛分将从 X−1200X−1200X−1200 开始,并逐渐趋近于 XXX。 请不要担心在第一场比赛中获得很低的竞赛分,如果你参加更多比赛,分数很可能会迅速上升。当参加 101010 场比赛后,你的竞赛分将会非常接近于你的真实实力。 计算表现分 在系统内部有两种类型的「表现分」:PerfPerfPerf 和 RPerfRPerfRPerf(修正后的 PerfPerfPerf) 。 首先,对于每个参赛选手,我们计算出他们的 APerfAPerfAPerf(平均表现分)。 令 Perf1,Perf2,⋯ ,PerfkPerf_1, Perf_2, \cdots, Perf_kPerf1 ,Perf2 ,⋯,Perfk 为一位参赛选手的历史 PerfPerfPerf。其中 Perf1Perf_1Perf1 是最近参加的一场比赛,PerfkPerf_kPerfk 是最早参加的一场比赛,这位选手的 APerfAPerfAPerf 被定义为: APerf=∑i=1kPerfi×0.9i∑i=1k0.9i\begin{equation} APerf = \frac{\sum_{i=1}^{k}Perf_i \times 0.9i}{\sum_{i=1}{k}0.9^i} \end{equation} APerf=∑i=1k 0.9i∑i=1k Perfi ×0.9i 所有第一次参与 Acgo\tt{Acgo}Acgo 的 Rated\tt{Rated}Rated 比赛的选手的 APerfAPerfAPerf 将会被设置为 CenterCenterCenter。 CenterCenterCenter 和每一场 Rated\tt{Rated}Rated 比赛的 RATEDBOUNDRATEDBOUNDRATEDBOUND(即 Rated\tt{Rated}Rated 上限)有关。 Center=RATEDBOUND×0.4Center = RATEDBOUND \times 0.4Center=RATEDBOUND×0.4。 令 nnn 为一场比赛中所有的 Rated\tt{Rated}Rated 的参赛选手的数量,令 APerfiAPerf_iAPerfi 为第 iii 个选手的 APerfAPerfAPerf。那么比赛的 Rated\tt{Rated}Rated 榜单中,排行第 rrr 名选手的 PerfPerfPerf 被定义为满足以下公式的唯一的 XXX: ∑11+6.0(X−APerfi)/400.0=r−0.5\begin{equation} \sum\frac{1}{1 + 6.0^{(X - APerf_i) / 400.0}} = r - 0.5 \end{equation} ∑1+6.0(X−APerfi )/400.01 =r−0.5 这个 XXX 可以使用二分来计算得出。 请注意,以上的排名是所有并列名次的平均值。例如,如果有四个人并列第 333 名至第 666 名,那么这些人的排名为 4.54.54.5。 除此之外,为了避免在第一场比赛中的「表现分」方差过小,Acgo\tt{Acgo}Acgo 使用新竞赛分系统的第一场比赛(这里指 排位赛#4)的表现值会被放大处理,具体如下: Perf=(Perf−Center)×1.5+Center\begin{equation} Perf = (Perf - Center) \times 1.5 + Center \end{equation} Perf=(Perf−Center)×1.5+Center 最终,对于每个用户其 RPerfRPerfRPerf 使用以下方式计算: RPerf=min{Perf,RATEDBOUND+100}\begin{equation} RPerf = \min{{Perf, RATEDBOUND + 100}} \end{equation} RPerf=min{Perf,RATEDBOUND+100} 其中 RATEDBOUNDRATEDBOUNDRATEDBOUND 对于不同的比赛是不一样的,每场比赛的 RATEDBOUNDRATEDBOUNDRATEDBOUND 会在竞赛说明中给出。 计算竞赛分 定义 FFF 为: F(n)=∑i=1n0.81i∑i=1n0.9i\begin{equation} F(n) = \frac{\sqrt{\sum_{i=1}^{n} 0.81i}}{\sum_{i=1}n 0.9^i} \end{equation} F(n)=∑i=1n 0.9i∑i=1n 0.81i 定义 fff 为: f(n)=F(n)−F(∞)F(1)−F(∞)×1200\begin{equation} f(n) = \frac{F(n) - F(\infin)}{F(1) - F(\infin)} \times 1200 \end{equation} f(n)=F(1)−F(∞)F(n)−F(∞) ×1200 定义 ggg 为: g(X)=2.0X800\begin{equation} g(X) = 2.0^{\frac{X}{800}} \end{equation} g(X)=2.0800X 该函数可以给更好的表现赋予更多的权重。因此,极好表现与较好表现之间的差异会非常大,而重大失误与一般失误之间的差异则不会那么大。 这样可以使得当参赛者在比赛中打出了超出水平的发挥时,会增加更多的竞赛分;当参赛者在比赛中打出了远低于自己水平的表现分时,不会减少太多的竞赛分; 令 RPerf1,RPerf2,⋯ ,RPerfkRPerf_1, RPerf_2, \cdots, RPerf_kRPerf1 ,RPerf2 ,⋯,RPerfk 为一位参赛选手的历史 RPerfRPerfRPerf,其中 RPerf1RPerf_1RPerf1 为当场比赛的 RPerfRPerfRPerf。那么本场比赛结束后,其竞赛分为: Rating=g−1(∑1kg(RPerfi)×0.9i∑1k0.9i)\begin{equation} Rating = g{-1}(\frac{\sum_1k g(RPerf_i) \times 0.9i}{\sum_1k 0.9^i}) \end{equation} Rating=g−1(∑1k 0.9i∑1k g(RPerfi )×0.9i ) 然后考虑公式 (6)(6)(6) 的 fff 函数对竞赛分的影响,定义以下函数[2]: mapRating(r)={400exp(400−r400)r≤400rr>400\begin{equation} mapRating(r) = \begin{cases} \frac{400}{\exp{(\frac{400 - r}{400})}} &{r \le 400}\ r & {r \gt 400}\ \end{cases} \end{equation} mapRating(r)={exp(400400−r )400 r r≤400r>400 最终 RatingRatingRating 计算出来为: TrueRating=mapRaing(Rating−f(n))\begin{equation} TrueRating = mapRaing(Rating - f(n)) \end{equation} TrueRating=mapRaing(Rating−f(n)) 其中 nnn 为已经参加的 Rated\tt{Rated}Rated 的比赛场次(包括本场)。 本文档的版本记录 * 10/29/2024 Ver. 1.00: 第一版。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1. AtCoder Rating System ver.1.00\tt{AtCoder\ Rating\ System\ ver. 1.00}AtCoder Rating System ver.1.00 ↩︎ 2. AtCoderのレート計算式\tt{AtCoderのレート計算式}AtCoderのレート計算式 ↩︎
10
userId_undefined
ACGO排位赛#13 - 题目解析
ACGO排位赛#13 - 题目解析 > 感谢大家参加本次排位赛! T1 - 纪元流星雨 题目链接跳转:点击跳转 也没有特别大的难度,手动模拟一下就可以了。 解题步骤 1. 先计算出这个人一生中第一次看到流星雨的日子:(E+B)mod 50(E + B) \mod 50(E+B)mod50 。 2. 计算出剩余一生中可以看到流星雨的年份 YYY。 3. 答案就是 Y50+1\dfrac{Y}{50} + 150Y +1。 代码实现 本题的 C++ 代码如下: 本题的 Python 代码如下: T2 - MARCONCATENATE 题目链接跳转:点击跳转 根据题目模拟就可以了,没有什么难度。 代码实现 本题的 C++ 代码如下: 本题的 Python 代码如下: T3 - TNT接力 题目链接跳转:点击跳转 > 这道题是本次比赛的第三道题,但是许多参赛选手认为这道题是本场比赛最难的题目。 解题思路 1. 滑动窗口:使用滑动窗口技术,先在前 KKK 个方块中计算有多少个空气方块。接着,随着窗口向右滑动,我们移除窗口左端的一个方块,并加入窗口右端的一个方块,更新空气方块的数量。 2. 最大空气方块数量:我们维护一个变量 mx,表示在当前窗口中最多有多少个空气方块。 3. 计算答案:每次计算答案时,使用 K−最大空气方块数量K - \text{最大空气方块数量}K−最大空气方块数量 来表示最小的 TNT 方块数量,这表示需要多少步才能避免 TNT 的塌陷。如果 K≥NK \geq NK≥N,表示玩家可以直接跳过整个桥,输出 −1-1−1 。 时间复杂度 每次处理一个序列的时间复杂度是 O(N)O(N)O(N),其中 NNN 是方块序列的长度。整体复杂度为 O(T×N)O(T \times N)O(T×N),其中 TTT 是测试用例的数量。关于本体,还可以用二分来进一步优化。本文不过多陈述。 代码实现 本题的 C++ 代码如下: 本题的 Python 代码如下: T4 - 小丑牌 题目链接跳转:点击跳转 解题思路 也是一道模拟题,但需要注意以下几点: 1. 同一个点数可能会出现五次,那么此时应该输出 High Card(如题意)。 2. 如果有一个牌型符合上述多条描述,请输出符合描述的牌型中在规则中最后描述的牌型。 3. 牌的数量不局限于传统的扑克牌,每张牌可以题目中四种花色的任意之一。 代码实现 本题的 C++ 代码如下: T5 - VERTEX VERSE 题目链接跳转:点击跳转 直接模拟情况就可以了,但是细节比较多需要注意一下。 时间复杂度 其中 work 函数会在每次迭代中被调用 444 次,每次的复杂度是 O(E)O(E)O(E)。因此,对于每个输入的 qqq 对点,总的时间复杂度是 Θ(4×q×E)\Theta(4 \times q \times E)Θ(4×q×E),即O(q×E)O(q \times E)O(q×E)。但在最坏情况下,图中的边数 EEE 可以接近 O(n×m)O(n \times m)O(n×m),因此总时间复杂度是 O(q×n×m)O(q \times n \times m)O(q×n×m) 。 代码实现 本题的 C++ 代码如下: 另一种写法如下: T6 - 最优政府大楼选址-2 题目链接跳转:点击跳转 解题思路 本题有好多解决方法,可以使用带权中位数写 N=105N = 10^5N=105 ,为了考虑到朴素的模拟退火算法,本题的数据范围被适当降低了。如果学过模拟退火算法做这道题就非常的简单,把模板的评估函数改成计算意向程度的函数即可。 时间复杂度 模拟退火算法的时间复杂度约为 Θ(k×N)\Theta(k \times N)Θ(k×N)。其中 kkk 表示的是在模拟退火过程中计算举例的 F2 函数的调用次数。NNN 表示数据规模。 代码实现 本题的 C++ 代码如下(模拟退火): 使用加权中位数算法的 C++ 代码: T7 - 乌龟养殖场 题目链接跳转:点击跳转 前置知识: 1. 了解过基本的动态规划。 2. 熟练掌握二进制的位运算。 > 至于为什么放了一道模版题,原因是因为需要凑到八道题目,实在凑不到了,找了一个难度适中的。 题解思路 这是一道典型的状压动态规划问题。设 dpi,jdp_{i, j}dpi,j 表示遍历到第 iii 行的时候,当前行以 j(base2)j_{(base2)}j(base2) 的形式排列乌龟可以构成的方案数。 对于每一行的方案,我们可以用一个二进制来表示。例如二进制数字 101001010010100,表示有一个横向长度为 555 的场地中,第 1,31, 31,3 号位置分别放置了一只小乌龟。因此,每一种摆放状态都可以用一个二进制数字来表示。我们也可以通过遍历的方式来遍历出二进制的每一种摆放状态。 首先,我们预处理出横排所有放置乌龟的合法情况。根据题意,两个乌龟不能相邻放置,因此在二进制中,不能有两个 111 相邻。如何预处理出这种情况呢?我们可以使用位运算的方法: 如果存在一个二进制数字有两个 111 相邻,那么如果我们对这个数字 xxx 进行位运算操作 (x << 1) & x 的结果或 (x >> 1) & x 的结果必定大于等于 111。我们通过把这种情况排除在外。同时,我们还需要注意有些格子中不能放置乌龟。这一步也可以通过二进制的方法预处理掉,如果网箱在第 iii 一个格子中不能放置乌龟,那么在枚举所有方案数的时候直接忽略掉第 iii 位为 111 的情况即可。 接下来如何保证上下两行的乌龟不冲突?假如上一行的摆放状态是 yyy,当前行的摆放状态为 jjj,如果 i & j 的结果大于等于 111,也可以证明有两个数字 111 在同一位置上。因此我们也需要把这种情况排除在外。 综上所述,我们可以得出状态转移方程:dpi,j=dpi,j+dpi−1,kdp_{i, j} = dp_{i, j} + dp_{i-1, k}dpi,j =dpi,j +dpi−1,k 。其中,jjj 和 kkk 表示所有横排合法的方案。答案就是 ANS=∑j=02M−1dpN,j\mathtt{ANS} = \sum_{j=0}{2M-1}{dp_{N, j}}ANS=∑j=02M−1 dpN,j 。 状态的初始化也很简单,另 dp0,0=1dp_{0, 0} = 1dp0,0 =1 ,表示一只乌龟都不放有一种摆放方案。 时间复杂度 通过观察上述代码,在枚举所有状态和转移状态的时候有三层循环,分别是枚举当前行、枚举当前行的合法摆放情况以及枚举上一行的摆放情况。因此总时间复杂度约为 O(n×2M×2M)=O(n×2M2)=O(n×4M)O(n \times 2^M \times 2^M) = O(n \times 2{M2}) = O(n \times 4^M)O(n×2M×2M)=O(n×2M2)=O(n×4M)。但由于合法的摆放数量远远少于 2M2^M2M,因此实际情况下程序运行的速度会快许多。 代码实现 本题的代码实现如下。在输出的时候需要减一,因为不放置也是一种合法情况,根据题目要求需要把这一合法情况排除。 本题的 Python 代码如下,Python 可以通过本题的所有测试点: 再提供一个暴力解法用于对拍: T8 - 数据中心能耗分析 题目链接跳转:点击跳转 本文仅针对对线段树有一定了解且并且有着较高的程序设计能力的选手。本文的前置知识如下: 1. 线段树的构造与维护 - 可以参考文章 浅入线段树与区间最值问题。 2. 初中数学 - 完全平方和公式和完全立方和公式。 3. 取模 - 之如何保证对所有整数取模后的结果为非负整数 - 可以参考本题的 说明/提示 部分。 > 原本出题的时候我并不知道这道题在许多 OJ 上是有原题的,so sad(下次再改进)。 题目本身应该非常好理解,就是给定一个数组,让你设计一个程序,对程序进行区间求立方和和区间修改的操作。但本题的数据量比较大,N,MN, MN,M 最大可以达到 10510^5105,对于每一次修改和查询都是 O(N)O(N)O(N) 的时间复杂度,显然用暴力的方法时间复杂度绝对会超时,最高会到 O(N2∗M)O(N^2 * M)O(N2∗M) (大概需要 115115115 天的时间才可以搞定一个测试点)。当看到区间查询和维护操作的时候,不难想到用线段树的方法,在线段树中,单次操作的时间复杂度约为 O(log2N)O(log_2 N)O(log2 N),即使当 NNN 非常大的时候线段树也可以跑得飞起。 解题思路 不得不说,这是一道比较恶心的线段树区间维护的题目。不光写起来比较费劲,而且维护操作运算量比较大。稍有不慎就会写歪(因此写这道题的时候要集中注意力,稍微一个不起眼的问题就容易爆 000)。 本题的主要难点就是对一个区间内进行批量区间累加的操作。很容易就想到跟完全立方公式的联系:(a+b)3=a3+3a2b+3ab2+b3(a+b)^3 = a^3 +3a^2b + 3ab^2 + b^3(a+b)3=a3+3a2b+3ab2+b3。区间累加操作也只不过是对区间的所有数字都进行该操作,并对所有操作的结果求和就是该区间进行操作后的立方和。化简可得: ANS=∑i=1n(ai+x)3=(a1+b)3+(a2+b)3+⋯+(an+b)3=(a13+3a12b+3a1b2+b3)+(a23+3a22b+3a2b2+b3)+⋯+(an3+3an2b+3anb2+b3)=(a13+a23+⋯+an3)+3b(a12+a22+⋯+an2)+3b2(a1+a2+⋯+an)+nb3=∑i=1nai3+3b∑i=1nai2+3b2∑i=1nai+nb3\begin{align} \mathtt{ANS} &= \sum_{i=1}{n}{(a_i+x)3}\ &= (a_1+b)3+(a_2+b)3+ \cdots + (a_n+b)^3 \ &= (a_1^3 + 3a_1^2b + 3a_1b^2 + b^3) + (a_2^3 + 3a_2^2b + 3a_2b^2 + b^3) + \cdots + (a_n^3 + 3a_n^2b + 3a_nb^2 + b^3) \ &= (a_1^3 + a_2^3 + \cdots + a_n^3) + 3b(a_1^2 + a_2^2 + \cdots + a_n^2) + 3b^2(a_1 + a_2 + \cdots + a_n) + nb^3 \ &= \sum_{i=1}{n}{a_i3} + 3b\sum_{i=1}{n}{a_i2} + 3b2\sum_{i=1}{n}{a_i} + nb^3 \end{align} ANS =i=1∑n (ai +x)3=(a1 +b)3+(a2 +b)3+⋯+(an +b)3=(a13 +3a12 b+3a1 b2+b3)+(a23 +3a22 b+3a2 b2+b3)+⋯+(an3 +3an2 b+3an b2+b3)=(a13 +a23 +⋯+an3 )+3b(a12 +a22 +⋯+an2 )+3b2(a1 +a2 +⋯+an )+nb3=i=1∑n ai3 +3bi=1∑n ai2 +3b2i=1∑n ai +nb3 综上所述,我们只需要用线段树维护三个字段,分别是区间的立方和、区间的平方和以及区间和。在维护平方和的过程中与维护立方和类似,根据完全平方公式 (a+b)2=a2+2ab+b2(a+b)^2 = a^2 + 2ab + b^2(a+b)2=a2+2ab+b2。经过累加和化简可得: ANS=∑i=1n(ai+x)2=(a1+b)2+(a2+b)2+⋯+(an+b)2=(a12+2a1b+b2)+(a22+2a2b+b2)+⋯+(an2+2anb+b2)=(a12+a22+⋯+an2)+2b(a1+a2+⋯+an)+nb2=∑i=1nai2+2b∑i=1nai+nb2\begin{align} \mathtt{ANS} &= \sum_{i=1}{n}{(a_i+x)2}\ &= (a_1+b)^2 + (a_2+b)^2 + \cdots + (a_n+b)^2 \ &= (a_1^2 + 2a_1b + b^2) + (a_2^2 + 2a_2b + b^2) + \cdots + (a_n^2 + 2a_nb + b^2) \ &= (a_1^2 + a_2^2 + \cdots + a_n^2) + 2b(a_1 + a_2 + \cdots + a_n) + nb^2 \ &= \sum_{i=1}{n}{a_i2} + 2b\sum_{i=1}^{n}{a_i} + nb^2 \end{align} ANS =i=1∑n (ai +x)2=(a1 +b)2+(a2 +b)2+⋯+(an +b)2=(a12 +2a1 b+b2)+(a22 +2a2 b+b2)+⋯+(an2 +2an b+b2)=(a12 +a22 +⋯+an2 )+2b(a1 +a2 +⋯+an )+nb2=i=1∑n ai2 +2bi=1∑n ai +nb2 以上三个字段可以在构造线段树的时候一并初始化,之后的每次更新直接修改懒标记就可以了。一切都交给 push_down() 函数。在每次区间查询和修改之前都进行懒标记下放操作,对区间进行维护。具体维护操作如下: 注意事项 1. 请注意取模,为了保证答案正确性,请在每一步操作的时候都对结果取模。 2. 开 long long,不然的话只能过前三个测试点(出题人还是挺好的,留了三个小的测试点骗粉)。 3. 在维护立方和、平方和以及和的时候,请注意维护的顺序。应当先维护立方和,再维护平方和,最后再维护区间总和。 4. 注意线段树数组的大小,应当为 4×N4 \times N4×N。 5. 建议使用读入优化,直接使用 cin 的效率比 std 慢约 100%100%100% 。 时间复杂度 线段树单次查询和修改的复杂度约为 O(log2N)O(log_2 N)O(log2 N),初始化的时间复杂度为 Θ(N)\Theta(N)Θ(N),因此本代码的整体时间复杂度可以用多项式 Θ(N+M⋅log2(N))\Theta(N + M \cdot log_2(N))Θ(N+M⋅log2 (N)) 来表示,整体代码的时间复杂度就为 O(M⋅log2(N))O(M \cdot log_2(N))O(M⋅log2 (N))。在极限数据下,程序只需要 160ms160ms160ms 就可以完成暴力一整年所需的工作。 代码实现 1. 代码使用了宏定义,方便后期进行调式。 2. 以下代码与普通的线段树无太大区别,但请着重关注 push_down() 下放操作。 以下是本题的 Python 代码,但由于 Python 常数过大,没有办法通过所有的测试点:
用户协议隐私政策
邮箱地址:service@acgo.cn
联系我们:400-0596-872 ( 工作时间:9:00~22:00 )
QQ群
国徽
浙公网安备33010802012768号
浙ICP备16018668号-27
Copyright © 2021-2024 ACGO All Rights Reserved.
全部评论 1
???说谁
2024-12-22 来自 江苏
0
有帮助,赞一个