【老潘信息学系列】2018年NOIP竞赛题详解(一)
2019年NOIP信息学竞赛,将在10月举行。潘老师将用一个系列,详细讲解过往5届竞赛的典型竞赛题,开拓孩子的思维,提升比赛成绩。同时,潘老师将为全四川省娃娃免费提供问题解答。家长、孩子有任何信息学方面的难题,都可以加老师微信询问。
(长按识别二维码)
获得NOIP一等奖难吗?在潘老师看来,对于四川学生娃来说,并不难,具备一定的基础,再加上稳定的发挥,一等奖较容易。所以,孩子并不是一定要特牛,才能获得一等奖。上海市的一等奖需要300多分,四川省只需要200分左右。后续潘老师会分析,为什么一等奖很容易。
2018年NOIP信息学竞赛,有一道题叫“龙虎斗”,这道题目难度中等,考察的是学生的基本功是否扎实。这题如果顺利拿到分,再加上送分题,200分就可以拿到,也就是说一等奖到手了。孩子将成为艺高人胆大的那一类人:)
详解如下:
解题思路:
1) 天降神兵,不管他降落到哪里,都是这样:
a[p1]+=s1;
2)算出龙的气势dragon
for(int i=1;i<=m-1;i++)
dragon+=a[i]*(m-i);
3)算出虎的气势tiger
for(int i=m+1;i<=n;i++)
tiger+=a[i]*(i-m);
4)得到双方的气势后,需要判断哪方的气势小一些, S2位工兵应该被派到气势小的一方。
if(dragon<="" p="">
for(int i=1;i<=m-1;i++){
long long temp=dragon+s2*abs(i-m);
if(abs(temp-tiger)< p="">
minn=abs(temp-tiger);
pos=i;
}
}
}
else if(dragon>tiger){//增加到虎
for(int i=m+1;i<=n;i++){
long long temp=tiger+s2*abs(i-m);
if(abs(temp-dragon)< p="">
minn=abs(temp-dragon);
pos=i;
}
}
}
else
pos=m;
至此,问题得解,pos就是s2个工兵应该被派往的位置。是不是很容易呢?
点击下面“阅读原文”可获取更多信息。可以加微信索要详细代码、资料。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com