2017.1.16【初中部 】普及组模拟赛C组
这次总结我赶时间,不写这么详细了。
话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴
比赛 0+15+0+100=115
改题 AK
一、chicken
好难啊!好简单啊!
题目简化
求输入的几对x,y中最小的x/y*1000
比赛思路
难!难!难!这什么意思啊?
比赛过程
算几下不知何意,跳过之
错因
不懂题目意思,语文差
正解
扫一遍,包括第一个,取最小的。
二、match
好简单,好难,好繁杂
题目简化
往九宫格内填字母,得出六个单词。
给你六个单词,问九宫格?
比赛思路
设此方阵是这样的:
123
456
789
然后这六个单词加起来是这样的:
123 147 456 258 369 789
枚举六个单词的顺序(我把单词反过来的也加上了)
最后疯狂地打if,判断是否符合以上的格式,
再压缩成’123456789’的形式
和ans比较,小于则替换ans
比赛过程
完美地码完了程序,结果发现漏洞,
经过无数次调试后(Pascal本身就不好调试,且学校的Pascal2.0.4不能直接调试,家里的不知为何出了问题……),
接近3小时改完了低级错误。我交上去骄傲地以为会AC,结果……
错因
- Windows和Linux系统不同,可能出现了某些差异。
- 单词反过来不用算
正解
先横着枚举3个单词,然后竖着看看是否符合条件(有没有此单词?有没有重复?),记住不要把它反过来,不算的!
最后和ans比较,小则替换
三、cirs
和WZK打雪仗基本一样,但……我忘了
题目简化
圆上n对点以线连接的方案数
比赛思路
找规律,不得,弃之。
比赛过程
没做
正解:
我听别人说可以用模拟的方法,于是我想到了这么个画面
成百上千条代码
用数组开一个类似于平面直角坐标系的东西,每个格子为一个点,数组越大越精确
以O为圆心,作一圆(越大越好),线化成数点
平分圆,标上顶点
枚举二点,连接之,将中间的线化为数点,标记之
若连线是交于标记过的点,退出之
统计ans,输出之
若如此,必时超之,类似于画图软件。何大神可以此思路编程,而于一秒之内?
好了,模拟的方式其实类似于递推+枚举,别想多了。
不说模拟,说zhongjunquan的正解
设f[i]为n=i时的答案
f[0]=f[1]=0;
i=2~n
j=0~n-1
f[i]+=f[j]*f[i-j-1];
为什么?每次都把圆分成两部分,就变成前面算过的了。
四、wtaxi
这题虽然简单,但我还是把它列入好题之中吧
【9.14NOIP模拟pj】wtaxi 题解
题外话
- 为什么,同学们普遍会第四题DP,却不会DFS?(感觉我好另类)
- C++中的STL标准模板库很好用,且NOIP给用;Pascal中的Math库NOIP居然也给用!
- 总结我要少打点,要分轻重,节约时间来AK