noip2012~2018一句话题解

历年noip普及+提高的一句话题解,大致是记录思路,也会写一写心路历程啥的


2012

普及组

T1 签到题,看了一眼发现我居然错过两次,注意一下给出的数字已经是两个质数乘积,所以搜索出其中一个满足的便可以结束,我是从小往大搜,除一下求出另一个大的便可

T2 模拟,比较水的一道模拟,直接按照输入模拟,注意下每次循环的时候要先对当前层数取模,减去跑了超过一圈的部分,否则会TLE。

T3 dp,dp[i][j] 表示摆完了第 i 种花时已经摆了 j 盆。因为不管摆到第几种,摆了 0 盆都是一种情况,所以 dp[i][0]=1。枚举 i 和 j,再利用一层循环枚举第 i 种花摆了几盆。

T4 突然发现我还没做,等我填坑QwQ

提高组

Day1

T1 模拟,简单但非常非常恶心,注意一下细节和翻译时候的正反就可以了,并且给出的是需要翻译回去的密文,不要当成原文进行加密了。

T2 贪心+高精度,通过推导容易得出,最优排序顺序应该是大臣两手乘积从小到大的排序,数据会很大,所以加乘除都需要高精度来计算,高精除法只需要高精除单精。两手乘积一样并不影响最终结果。

T3 待填坑QAQ

Day2

T1 通过给出的方程很容易发现是乘法逆元,费马小定理,扩展欧几里得随意选一个来计算逆元就可以了。

T2 差分数组+二分,利用差分数组维护需要改变的区间的起点和终点,来避免遍历整个区间,然后二分答案查找到需要改变订单的申请。注意一下维护差分数组的下标。

T3 依旧未填坑......qwq


 2013

普及组

T1 签到题,while 语句按位分离,注意如11这样的需要计算两次。

T2 栈,因为乘法的计算优先级,所以先把所有加法运算存入栈中,如果碰到乘法就将整个乘法运算计算好后再一起存入栈,最后将栈内所有元素相加。因为题目不存在除法和减法,所以不会更新出更小值,每次算出的数据为了避免使用高精度计算,每次都要对10000取模。

T3

T4 

提高组

Day1

T1

T2

T3

Day2

T1

T2

T3


2014

 普及组

 T1

 T2

 T3

 T4 

 提高组

 Day1

 T1

 T2

 T3

 Day2

 T1

 T2

 T3


2015

普及组

T1

T2

T3

T4 

提高组

Day1

T1

T2

T3

Day2

T1

T2

T3


2016

普及组

T1

T2

T3

T4 

提高组

Day1

T1

T2

T3

Day2

T1

T2

T3


2017

普及组

T1

T2

T3

T4 

提高组

Day1

T1

T2

T3

Day2

T1

T2

T3


2018

普及组

T1

T2

T3

T4 

提高组

Day1

T1

T2

T3

Day2

T1

T2

T3

 

posted @ 2020-09-24 18:05  枣子*1  阅读(89)  评论(0编辑  收藏  举报