2016.08.18【初中部 NOIP普及组 】模拟赛题解
来源:互联网 发布:html是不是编程语言 编辑:程序博客网 时间:2024/05/19 00:44
马丹。。。严重翻车。。。
第二题十分第三题爆0第四题SPFA不会一维少30分。。。。。。。
下面进入正题:
T1
超水的递推,双重循环AC,就不细说了。
T2
盗版2048!!!!!
考试时莫名的就被坑了,只水了10分。。。
之后发现整个程序都是BUG。。。
之后又继续改。。。
又发现原来这是个盗版!!!
当2 2 4 8这种情况时,如果往左移,结果本来是16,结果这题非要弄成4 4 8,于是又被坑了。。。
之后又发现,判断游戏结束是要在每次循环一开始就判断,又被坑了。。。
正解:纯模拟,只要注意上面几点就可以了。
这题不难,重点是坑。。。
T4(T3最难,最后讲)
简单的SPFA。。。
结果因为不会一维又被坑了。。。
正解:
尽管空间是1000MB,然而我们如果用二位数组储存路径,内存早就炸上天了。
所以我们要用一种牛(wei)逼(suo)的方法把二维降为一维。
怎样降呢?
如果我们按照题目输入的数据记录,再把它复制一份相反方向的路线(因为是无向图),这样刚好不会爆空间。
但是这样的话,我们在进行SPFA时从一个节点扩展到另一个节点就会很麻烦,要把所有的边都枚举一遍。
这样就算后面的点时限是10秒,时间早也炸了。
但这样并不意味着这种方法是不可行的。
我们先一步步进行思考。
能否把节点按照大小排序,之后进行枚举再优化?
答案是可以的。
我们先对每一条边进行排序,之后再进行枚举。
如果发现前一个节点符合而后一个节点不符合,就可以退出循环。
但是这样还不是最优的。
我们记录第i个节点的第一条边的位置。
之后从这个位置枚举到(下一个节点的第一条位置-1),就可以把时间再次优化。
提示:在此题中,节点是从0~N的。。。
还有,数据很水。。。
T3
这题是要我们把U盘、鼠标和键盘组合成三种不同的礼包,然后(制杖)店长要求每相邻的两种礼包不能相同。
于是,我们就可以用贪心来解决这道题。
我们先把三种礼包编一个编号(名字什么的记不住啊):
编号 A B C
① 1 1 1
② 1 2 0
③ 2 1 0
鉴于种类有点少,所以我们把这三种礼包组合成一些大礼包:
④ 2 3 1或3 2 1 ①+②或①+③
⑤ 5 5 2 ①②+①③
⑥ 3 3 0 ②+③
我们一开始要尽量让A和B的数量平均一些,才能方便我们接下来的计算。
于是,我们一开始就不停的买④号礼包,直到不能买或者AB相等(注意这些都没有用循环,所以效率才是O(1))。
因为(制杖)店长要求相邻的礼包不能相同,所以我们要把每种小礼包礼包的数量尽可能平均。
所以接下来我们买⑤号礼包,直到不能买为止。
接下来继续买③号,也是买到不能买为止。
接下来,我们还剩下一些配件,我们就去买一开始的三种小礼包。
三种小礼包只要买一次,因为相邻礼包不能相等。
我们在计算的时候,就把总数累加,最后输出总数即可。
附一段购买④号礼包时的代码:
if a<>b then
begin
k:=abs(a-b);
x:=2;
y:=2;
if a>b then inc(x)
else
inc(y);
j:=min(min(min(a div x,b div y),c),k);
a:=a-j*x;
b:=b-j*y;
c:=c-j;
ans:=ans+j*2;
end;
今天的比赛严重翻车。。。。下次脑洞别开太大。。。。
- 2016.08.18【初中部 NOIP普及组 】模拟赛题解
- 2016.08.18【初中部 NOIP普及组 】模拟赛题解
- 2016.08.19【初中部 NOIP普及组 】模拟赛题解
- 2016.08.19上午【初中部 NOIP普及组 】模拟赛题解
- 2016.08.19上午【初中部 NOIP普及组 】模拟赛题解
- 2016.07.18【初中部 NOIP普及组 】模拟赛题解
- 2016.09.10【初中部 NOIP普及组 】模拟赛题解
- 2016.09.10【初中部 NOIP普及组 】模拟赛题解
- 2016.10.05【初中部 NOIP普及组 】模拟赛题解
- 2016.08.18 初中部 NOIP普及组 模拟赛
- 2016.08.18【初中部 NOIP普及组 】模拟赛
- 2016.08.18【初中部 NOIP普及组 】模拟赛题目
- 2016.08.18【初中部 NOIP普及组 】模拟赛
- 2016.08.18【初中部 NOIP普及组 】模拟赛
- GaoJueYi 2016.08.13【初中部 NOIP普及组 】模拟赛总结
- 【GaoJueYi 2016.08.15初中部 NOIP普及组 】模拟赛总结
- 【陈奕凝2016.08.15初中部 NOIP普及组 】模拟赛总结
- 【陈奕凝2016.08.14初中部 NOIP普及组 】模拟赛总结
- SDUT2104图结构练习——判断给定图是否存在合法拓扑序列
- JZOJ3083. 【NOIP2012模拟11.1】塔(加强)
- poj 1837 Balance
- 【POJ3264】Balanced Lineup
- UVA - 11234 Expressions
- 2016.08.18【初中部 NOIP普及组 】模拟赛题解
- stm32引脚默认状态
- hive使用变量
- 第八章 多态 多态的优点与作用 和缺陷
- 理解 iOS 的内存管理
- 序列中增序列的最大个数
- Python 中的循环与 else
- 关于Rs485通信只能接收不能发送的问题
- CentOS和WIN7双系统时间错误