NOIP2016普及组考试终于落下了帷幕!虽然官方数据和成绩都还没有出来,但是我们对自己的成绩也是知道了一个大概数,自然是几家欢喜几家忧,我对于这次的成绩还是比较满意,毕竟第一次参加(测民间数据)就拿到了315,但还是有些不足,应该反思。
(1)pencil
这道题无疑便是生命之源,我还是很放心的写下了代码,最后半个小时都在嗑糖。但是考完后看了看同学代码,我懵逼了……
for(int i=0;i<=2;i++)
{
int x,y,sum;
scanf("%d%d",&x,&y);
if(x>=n)
{
sum=y;
}
else
{
if(n%x==0) sum=(n/x)*y;
else sum=(n/x+1)*y;
}
if(ans>sum) ans=sum;
}
WHAT!?完全没有判断x>=n的我开始惊恐,不会一分都拿不到吧……然而,我发现这貌似是累赘代码,不管判不判断x>=n,结果都是一样的,真是白惊讶一场……不过做题时还是应该多思考,不然要是真的要判断我就die了……
(2)date
最大的败笔!!!我装逼失败了,去一年一年地加,结果判断了结束年的回文的合法性,没有判断开始年的回文是否合法:
如:2011 11 03开始,而2011 11 02是这一年的回文,并且也是合法的日期,但开始日在2011 11 02之后,所以这个回文不合法!!!然而我却没有考虑到,我仅仅考虑了结束年的回文是否在结束日之前,而遗忘了开始年……╮(╯▽╰)╭看来还是一天一天加比较好(不会超时,又稳定)想掀桌子ing,再绕考场跑两圈,最后一套小苹果
不过笑笑不说话,民间数据过于water,全过O(∩_∩)O~(老师称这种修辞为欲扬先抑)
但是官方数据应该会有这种针对我的数据,所以会扣10~20分吧
(3)port
坑逼猥琐龌龊恶心的一道题100%的数据拿刀砍在你脖子上——空间爆还是时间爆,二选一!我呵呵一声冷笑而去,拥抱温柔的子任务——70%,我自认为思路还算可以(至少是处理国籍时),用了一个vis数组,表示第i种国籍可被计算的时间。如vis[1]=12000,则表示在12000秒及之前的船只都可以视为拥有这种国籍,遇到一艘船上有新的乘客,便更新vis的值,即vis[x[i]]=t+86400-1……最后一个循环暴力求解,过了70%的数据~
(4)magic
对于最后一道题,难是肯定的,所以基本上任何考试最后一道,我都会毫基本上无头绪,使用暴搜回溯骗分大法好,你值得拥有不过呢,貌似这道题还真是要用枚举,只不过比我的搜索方法好多了……我枚举了a、b、c、d四个数,虽然剪枝了,但基本上是m^4的时间……其实可以先枚举a、b,确定c的范围,然后在适当的范围内枚举c,通过a、b、c再计算出d,最多m^3,而且可以发现,n一定小于m,所以完全可以只枚举n,通过一些处理即可……虽然也有可能超时,但至少比m^4好多了……
以上就是NOIP普及组2016的简要总结,至于详细分析,还是wait一下吧!我会专门出专辑专集的~