0818NOIP模拟测试赛后总结

又挂了……

120 rank19。


第一次两个机房考不同的题目。一开始并不知道应该做哪套题目。

不明真相的吃瓜群众决定先点开B套。通读三道题,只是觉得T2好水。似乎是红题难度吧……(后来证明是我读错题了)

又点开A套,瞥一眼T1,默默关上回到B套。

开始并没有意识到T1是原题。死活推不出柿子决定先肝下T2。

3分钟错解出炉,死活过不去样例。然后决定打一个dfs验证一下,刚敲完dfs,电脑黑屏……

丸。

以为是我自己把电线踢掉了,因为往前一看大家的电脑都还活着。

结果是我们这一列局部停电。一脸懵比。老师出去了一下,几秒回来说可以开机了。淼哥万能!

于是重新码T2,也能静下心仔细读一遍题,发现喝一次水是整体下降。好吧我以为是单个下降。也真感谢良心出题人出的这个良心样例了。

然后想了一会儿只写了个nm暴力,觉得加个读入优化比较好,然后加上快读也没编译就交了。

瞅了一眼T3,繁琐的图论。弃坑弃坑。

转过来想T1。想了大约20分钟,woc这不是傻逼原题么。赶紧切切切。

几分钟就写完交了。

继续肝T3,然而又是一阵各种颓颓颓。

最后写了个tarjan缩点+dfs暴搜过了样例就交了。(一边写还一边吐槽2.5k的码长,事实证明还不如写一个纯暴搜最多1k)

看一眼表,快到点了于是切出比赛主界面开始疯狂刷新+等死。

咦怎么还不出来?看一眼结束时间已经延后了10分钟。啥时候延时了??一脸懵。(并没有意识到是因为我们这一列延时)

去个厕所。路上忽然想到应该都拉下来编译一遍。

于是发现我的T2编译不过……惊出一身冷汗。由于莫名的审美观我加了一个

#define read(A) A=init()

然而某个读入我是这么写的

for(rint i=1;i<=n;++i)wi[i]=read();
for(rint i=1;i<=n;++i)ai[i]=read();

一阵庆幸赶紧改过来交上。

继续等死。

出分发现T1没有A掉……RE了……

检查了一下发现有两个数组应该开两倍而我没开……RE70凭空自挂30分。

自挂东南枝.jpg


赛题题解

T1:字符串

原题,就是卡特兰专题的第一题换了个背景。

0代表在网格图上向右走,1代表向左走。约束条件即不能过x=y的那条线。

转化后套用公式即可。

要不推一下柿子?算了懒得画图。

T2:乌鸦喝水

看到数据范围猜一下时间复杂度应该是$O(nlogn)$的。发现一条性质:水少的水缸一定在水多的水缸之前喝完。

于是考虑按喝完的先后顺序排序挨个计算每个缸里喝了多少次,最后简单加和即可。

原文地址:https://www.cnblogs.com/xingmi-weiyouni/p/11371930.html