申诉文章(已过,谢谢评委!)
我刚刚写了篇文章来参加“你要魔怔杯”鲜花大赛,可是我却被评委打回了,说是不符合题意。我真的花了很长时间来审题,我基本上确信我的理解没有太大的问题。所以我把参赛的过程记录下来以进行申诉,希望评委理解。
“你要魔怔杯”鲜花大赛已经举办了很长时间,是时候有人作为
这真的可能吗?
真的能做到吗?
今天,我将进行个前无古人的挑战。我将阅读“你要魔怔杯”的规则,之后撰写篇符合要求的文章,最后再按照要求投稿,这样便算是成功完成了挑战。但是在这之前,还有个问题:
“你要魔怔杯”鲜花大赛已经举办了很长时间,是时候有人作为
这真的可能吗?
真的能做到吗?
点进比赛链接之后,首先看到的是这个画面。
其实我现在不大确定我现在应该如何行动。第 行的文字中包含“离开洛谷”的字样,但我并不知道离开洛谷之后我还是否可以参加这场比赛。要知道,自从 天之前我有了这个挑战的打算之后我就没再敢最小化浏览器或是切到其他页面。你知道,参加比赛总是有着很复杂的流程和规则。
我仔细研究了下这个页面,最后认定它的意思可能正是提醒我在参赛过程中不要离开洛谷,因此最下面的按钮应该是“我已了解规则”的意思。我点击了这个按钮,因为看上去我应该要抓紧时间,不然我的电脑很可能会支撑不住然后关机,这样我也就会被取消资格了。
根据这个页面的字数,我判断这应该就是比赛的详情页。我长舒了口气,毕竟我成功来到了详情页,这已经是我很多类似的尝试中进度相当好的了。
现在我的任务便是在这段文字中挑出比赛的规则。这真的很困难。更让我紧张的是,这里的文字的似乎真的并不和我曾经见过的有
我尝试了很久,也没有办法理解这大段文字。看来我似乎需要些其他的手段。按照我的理解,重要的信息往往会存在重复出现,那么我们便需要想办法找到些重复的子串,在这些重复的子串里我也许就可以得到需要的信息了。这个问题看似很困难,但我想,我已经有办法来解决它了。
“你要魔怔杯”鲜花大赛已经举办了 届,而它所在的平台洛谷,正是许多编程爱好者的聚集地。这意味着我可以向他人求助如何用程序做到上述操作,并且在这个过程中我不需要离开洛谷!当然,我是不会直接向他人询问比赛规则的——作弊就没意思了!
很快便有位好心人给了如下的代码,它可以求出整个字符串的所有子串出现的次数。我相信这正是我想要的。
#include<cstdio>
#include<cstring>
#include<string>
#include<map>
using namespace std;
char s[407693];
map<string,int> m;
signed main(){
scanf("%s",s+1);
int n=strlen(s+1);
for(int i=1;i<=n;i++){
string s0="";
for(int j=i;j<=n;j++){
s0+=s[j];
if(m.find(s0)!=m.end())m[s0]++;
else m[s0]=1;
}
}
for(int i=4000;i>=0;i--){
for(auto s0:m)if(s0.second==i)printf("%s %d\n",s0.first.c_str(),i);
}
}
我将这份代码放到了洛谷在线 IDE 上,这样我就可以在不离开洛谷的情况下运行程序了。
可是这份程序却并没有正常运行。我只好上题库里搜索这个现象的成因。我搜索了“字符串”,然后点开了道题,发现它的输入只有英文。那么我也许也应该把汉字转化成英文,然后再去掉其他的特殊符号。不知道数字可不可以保留,但至少文章里没出现,所以现在不用考虑。虽然这些字我并不全认识,但我认识拼音,这样我就可以让电脑朗读这段文字,然后我来写出拼音了。
diyijiehttpswwwluogucomcnarticlebrknjkdierjieniyaomozhengbeixianhuadasaidierjieniyaomozhengbeixianhuadasaicaiyonghuatizuowendexingshitimuruxiasuxingceshixuanzeyigeqisushuxieyipianwenzhangzhegeshuyinggaishiteshudeyejiushishuoruguoxiangyongbiedeshulaixiebuxianyuqisushujiunanyidadaoxiangjindexiaoguoweilejinhangsuxingceshiyaoqiuzhegesushudeerjinzhiweishuzaiyineiranernibuyongtaiqietibirulunzuixiaodeqisushu3dexingzhijiushiyigetaiqietideliziwomenyouzuimozhengqietijiangdajiakeyijingzhengyixiameirentougaobuchaoguoliangpiankeyichehuiyitoudexuyaoshizaigerenbokeshanggongkaidewenzhangzaitougaojiezhizhiqiankaishigongkaijikebubishiluogubokelingwailuogujiantiebanyileiyeshikeyidezhinengyouzuozhebenrentougaomeipianzishubushaoyubuduoyubunengshiwuyiyiwenzhanghuowanquanbumozhengdewenzhangtougaojiangyujiezhibuguonijiaoqishiyemeiguanxitougaoshijianbucanyupingjiangwomenhuiweihuyigegongkaideyijingshoudaodezuopinliebiaohttpswwwluogucomcnpastelltwcbxtougaoshiqinggaozhiwoshifouxiwangnidezuopinchuxianzailiebiaoshangruguochuxiannidezuopinkenengjifatarendelingganruguobuchuxiannidezuopinhuizaijiegaozhihouduidajiakejiannihuizaijiegaozhihoujinqunruguonimeijinjidetixingwopingfenguizewomenzanshihuanmeixianghaodanshikeyigaosunidagaihuiyouzhexiejiangxiangzuijiawencaizuijiagousizuijiamozhengzuiqiangganranlizuiwaikejishuzuichouxiangzuimozhengqietizuidazhengyidangranhenkenenghuanhuiyouqitaderuguonijuedexiangsheshajiangxiangkeyigenwoshuobeipandingweilitidewenzhangjiangbunengcanyupingjiangwoquannishaolitiyinweizhegezhiyaonixiangqietishizhendebuhuilitinizuihaojiaruqqqunyinweinikenenghuixuyaoweizijibianhutougaodeshihouhuibanilajinlaiqqlianxirangertougaomeizhouriqinglitougaoqingqiuzhouneirenhebuchulidushizhengchangdechuliyeshizhengchangdezhouridangtiandezuiwanxiazhourichulijianyinitougaodexiayigezhouriguanzhuzijidegaojianshifoudedaochulidangranshijishangyibandangtianjiuchuliwanle
过了 个小时我终于成功将整段文字都变为了字母。可我将其输入程序之后,却显示“超过时间限制”。我猜想,这可能和这段文字实在是太长了有关,因此我也许只能将从这段文字截取些内容来分析了。这应该问题不大,毕竟重要的信息重复出现的位置应该会比较临近。不过让我安心的是这个规则的确已经复杂到了连程序都难以分析,至少我没有在些很容易的地方浪费时间。
我随便选择了段,尽管被提示“超出输出限制”,我还是得到了下面的结果:
i 16
u 13
e 10
h 10
s 10
sh 8
g 7
n 7
a 6
hu 6
shu 6
y 5
an 4
is 4
ng 4
x 4
xi 4
es 3
esh 3
eshu 3
ia 3
ian 3
ie 3
o 3
us 3
ush 3
ai 2
ang 2
b 2
d 2
de 2
ey 2
hi 2
ish 2
isu 2
isus 2
isush 2
isushu 2
j 2
ji 2
q 2
qi 2
qis 2
qisu 2
qisus 2
qisush 2
qisushu 2
shi 2
su 2
sus 2
sush 2
sushu 2
uo 2
ushu 2
ux 2
uxi 2
xia 2
xian 2
xie 2
yi 2
z 2
zh 2
ais 1
aish 1
aishi 1
aishit 1
aishite 1
aishites 1
aishitesh 1
aishiteshu 1
aishiteshud 1
aishiteshude 1
aishiteshudey 1
aishiteshudeye 1
aishiteshudeyej 1
aishiteshudeyeji 1
aishiteshudeyejiu 1
aishiteshudeyejius 1
aishiteshudeyejiush 1
aishiteshudeyejiushi 1
aishiteshudeyejiushis 1
aishiteshudeyejiushish 1
aishiteshudeyejiushishu 1
aishiteshudeyejiushishuo 1
aishiteshudeyejiushishuor 1
aishiteshudeyejiushishuoru 1
aishiteshudeyejiushishuorug 1
aishiteshudeyejiushishuorugu 1
aishiteshudeyejiushishuoruguo 1
aishiteshudeyejiushishuoruguox 1
aishiteshudeyejiushishuoruguoxi 1
aishiteshudeyejiushishuoruguoxia 1
aishiteshudeyejiushishuoruguoxian 1
aishiteshudeyejiushishuoruguoxiang 1
aishiteshudeyejiushishuoruguoxiangy 1
...
程序的输出结果我其实看不大懂,但我的直觉告诉我这个程序会优先输出比较重要的信息,而在靠前的信息里我应该选择比较长的。经过权衡,我认定这个规则的重点应该是 qisushu 这个子串。
接下来我要做的便是搞懂这个子串的含义,首先我要做的应该是将它还原回中文,这个很容易做到,我只要用输入法就可以了。然后我需要在搜索引擎上搜索它,这稍微有些困难,因为我需要小心地新建个窗口在洛谷页面的上方,不然我可能就会被判定为“离开洛谷”。总之,我还是做到了。
起初,我并没有得到什么有意义的答案,直到我看到了这样条搜索结果:
在这里我终于看到了数字,也就是
这就是我参加这个比赛的过程。相信你看了这个之后,也会认为我刚刚提交的那篇探讨
大概就是这样了,不过如果我还可以修改文章的话,我也可以试试写写诡异的幻影
刚才我又和评委交流了下,他提到了个叫“素数”的概念,我感到很奇怪,因为我确实没有听过这个说法。不过,洛谷上总是会有可以利用的资源!我在题库中搜索“素数”,之后: