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