之前54期被判作弊,申述无果,反被客服拉黑(水平不够,脾气够够的),让我彻底死心,从此粉转路。各种平台也不止C站一家,确实没有必要一棵树上吊shi。各位如果真心想通过竞赛提高自己的话,实在没必要来C站,整个娱人愚己。
我这么说可不是恼羞成怒,看一看最新一期的周赛水平就知道。举办50多期了,半年多了,各种问题依然存在。
1、因数-数字游戏
小Q的柠檬汁做完了。 掏出了自己的数字卡牌。 想要和别人做数字游戏。可是她又不想要输掉游戏。 她制定好规则,每次每个人只能把这个牌换成它的因子的某个牌。 但是这个因子不能是1或者整数本身。 现在给出整数n。两个人开始做游戏,先手在最优策略状态下能否必胜。
在第14期、35期都考过,但是却有了“变化”,好在我记录了之前考过的题目,来看一下之前的题目描述:
小Q的柠檬汁做完了,掏出了自己的数字卡牌,想要和别人做数字游戏,可是她又不想要输掉游戏。她制定好规则,每次每个人只能把这个牌换成它的因子的某个牌,但是这个因子不能是1或者整数本身。现在给出整数n,两个人开始做游戏,谁无法再给出因子牌则该人胜利。如果该整数无因子牌直接视为先手胜利。请判断先手在最优策略状态下能否必胜,如果能则输出1,不能则输出2。
有病啊?声称不断在改进,怎么还能把题目改得更差了?少了高亮的这句话,鬼才知道必胜规则是什么啊?
好在这题也是二分答案,非 1 即 2,骗分就能过。如若不然,想破脑袋也未必能顺利 AC。如果能够理解题意,或者之前做过这道题,可以参考我以前写的题解。
2. 津津的储蓄计划
津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300 元钱,津津会预算这个月的花销,并且总能做到实际花销 和预算的相同。 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100 元或恰好 100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。 例如 11 月初津津手中还有 83 元,妈妈给了津津 300 元。津津预计 11 月的花销是 180 元,那么她就会在妈妈那里存 200 元,自己留下 183 元。 到了 11 月月末,津津手中会剩下 3 元钱。 津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。 现在请你根据 2004 年 1 月到 12 月每个月津津的预算,判断会不会出现这种情况。 如果不会,计算到 2004 年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。
16期考过,也是NOIP入门题,洛谷链接在此(C 站好牛气,在洛谷AC的代码放在这里却有可能过不了。)
本题毫无任何思维上的难度,纯模拟。注意我说的是“思维上”,可拦不住 C 站给你使绊子啊。总结下来,这题拿不拿满分,和技术没有一丁点儿关系,纯粹看你了不了解 C 站的“恶心”。
使用 python 抛出异常就可以看到,其中部分测试用例的数据是不完整的:
第一组: [1, 165, 203, 320, 54, 91, 300, 300, 130, 154, 138, 327] 正常数据
第二组: [111, 222, 139, 164, 259, 14, 166, 171, 32, 136, 48] ???12月的数据呢?
在代码环境中,由于不同语言对这种缺失数据的错误处理反馈不一样,导致只有某些语言可以通过——问哥用Python无法通过,反而用C++代码却可以通过,故而猜测是不是只认可C++的错误反馈?
后期在讨论群了解到有的小伙伴即使使用C++也无法AC,而观其代码逻辑并无错漏(就这破题,能有什么烧脑的地方?)。唯一出问题的可能就在于系统给出的默认代码模板了。
#include <iostream>
#include <string>int solution(int arr[12]){int result;// TODO:return result;
}
int main() {int arr[12];for (int i = 0; i < 12; i++){std::cin>>arr[i];}int result = solution(arr);std::cout<<result<<std::endl;return 0;
}
模板里是先读入所有数据再交给子函数进行处理,这样似乎是无法AC的。必须将模板擦去,手工写输入,并在循环输入中,一边计算一边输出。但是问哥却说不出这两种写法在处理输入数据不全的时候有什么区别,毕竟我已经十多年没有使用C/C++,具体细节早忘光了,如果有读到此处的朋友,不妨留言指正。
3. 一维数组的最大子数组和
如果我需要返回值返回这个最大子数组的开始和结束的下标,你要怎么修改这个程序?
题目给出了找到最大子数组和的C++代码,但是对于其他语种的选手来说没有多少意义,反正还是要自己写。不过关于最大子数组和,也已经考了很多次了。难度不大,也可以参考我以前的题解。
4. 莫名其妙的键盘
有一个神奇的键盘,你可以用它输入a到z的字符,然而每当你输入一个元音字母(a,e,i,o,u其中之一)的时候,已输入的字符串会发生一次反转! 比方说,当前输入了tw,此时再输入一个o,此时屏幕上的字符串two会反转成owt。 现给出一个字符串,若用该键盘输入,有多少种方法可以得到?
第5期、37期考过,使用递归可解,具体分析可参考我以前的题解。不过鉴于被判抄袭的经历,请恕不再无偿提供代码。
本期考题出现的问题,在之前也出现过,由此看来,并未有人听到我们的声音并改进。希望越大,失望越大,于是最好的做法就是不要抱希望,与君共勉。