NOIP考前复习题目整理
整理出来一部分值得在NOIP前看的题目,个人观点,不喜勿喷
cggwz
这个作者很懒,什么都没留下…
展开
-
回文日期(NOIP2016)
NOIP普及组第二题原创 2017-08-12 11:38:59 · 1549 阅读 · 0 评论 -
统计方形(NOIP1997)
NOIP1997第三题原创 2017-08-14 00:01:46 · 1283 阅读 · 1 评论 -
过河卒(NOIP2002)
NOIP2002普及组第一题原创 2017-08-15 21:40:11 · 898 阅读 · 0 评论 -
车站(NOIP1998)
NOIP1998提高组第一题原创 2017-08-15 21:43:50 · 765 阅读 · 0 评论 -
选数(NOIP2002)
NOIP2002普及组第三题原创 2017-08-15 21:51:02 · 657 阅读 · 0 评论 -
Cantor表(NOIP1999)
NOIP1999提高组第一题原创 2017-08-15 23:53:05 · 429 阅读 · 0 评论 -
海港(NOIP2016)
NOIP2016普及组第三题原创 2017-08-17 20:19:11 · 874 阅读 · 0 评论 -
组合数问题(NOIP2016)
NOIP2016提高组第二天第一题原创 2017-08-17 21:55:04 · 419 阅读 · 0 评论 -
求和(NOIP2015)
NOIP2015普及组第三题原创 2017-08-22 23:42:22 · 3504 阅读 · 3 评论 -
计算器的改良(NOIP2000)
NOIP2000普及组原创 2017-08-23 00:12:03 · 2356 阅读 · 0 评论 -
进制转换(NOIP2000&NOIP水题测试(2017082301))
NOIP2000提高组第一题原创 2017-08-23 23:29:36 · 594 阅读 · 0 评论 -
乘积最大(NOIP2000&NOIP水题测试(2017082301))
NOIP2000提高组第二题原创 2017-08-23 23:42:55 · 327 阅读 · 0 评论 -
求先序排列(NOIP2001&NOIP水题测试(2017082301))
NOIP2001普及组第二题原创 2017-08-23 23:59:53 · 425 阅读 · 0 评论 -
旅行家的预算(NOIP1999&水题测试2017082301)
NOIP1999提高组&水题测试2017082301原创 2017-08-24 23:41:22 · 547 阅读 · 0 评论 -
装箱问题(NOIP2001&水题测试2017082401)
NOIP2001普及组第三题,水题测试原创 2017-08-25 00:26:59 · 482 阅读 · 0 评论 -
栈(NOIP2003&水题测试2017082501)
NOIP2003普及组第三题原创 2017-08-25 23:44:29 · 563 阅读 · 0 评论 -
NOIP2017提高组day2T1题解(奶酪)
NOIP2017提高组day2T1,奶酪,一道有趣的题原创 2017-12-08 21:41:06 · 1281 阅读 · 0 评论 -
货车运输(NOIP2013)
题目链接:货车运输 这道题其实思路很显然,就是最大生成树加倍增。 我们来顺着代码讲一遍。 我们先读入n和m 然后把所有边的权值设置为0 读入时,重复的边只取最大(很显然) 然后kruscal进行最大生成树,用G和H两个vector分别去保存边和权值 然后倍增即可。 具体看代码:#include<cstdio>#include<cstring>#i...原创 2018-07-16 20:34:20 · 388 阅读 · 0 评论 -
跳石头(NOIP2015)
题目链接:跳石头这题就是简单的二分答案。 具体怎么做呢? 何谓二分答案? 既然二分的是答案,我们就要以答案为对象,进行二分 这个答案就是最小距离 所以,我们需要做的就是,设置左右两个标签,然后求mid,然后判断实现这个mid需要移走几块石头,再和m比较。 下附代码:#include<cstdio>#include<cstring>#include...原创 2018-07-16 21:36:30 · 805 阅读 · 0 评论 -
Hankson的趣味题(NOIP2009)
题目链接:Hankson的趣味题 怎么讲呢?感觉这一题的难度给高了。 其实涉及的数学推理其实并不难,而且一旦数学推理结束,就是暴力枚举了,而且代码也短没什么难度。 所以我们就进行一下关键的数学分析。 我们要求x满足一下要求:(x,a0)=a1[x,b0]=b1括号是什么意思,大家应该知道。 我们不妨设:x=m*a1a0=a*a1b1=n*xb1=b*b0...原创 2018-07-16 22:58:35 · 333 阅读 · 0 评论 -
棋盘问题(NOIP提高组1997)
传送门 相当古老的题了 一年前做这一题一直WA,今天简单看看就AC 感觉自己水平有所提高 没有,没有,还是很菜的 这道题洛谷给的标签高了,最多也就普及+ 下面步入正题 数据水得惊人,直接dfs即可 但是我们要注意dfs的顺序,因为它有一个要求,就是第一行和第一列之和最小 所以我们的顺序就是:先填第一行,再填第一列,然后把剩下的小矩阵按一行行从左到右的顺序填上即可 代码如下:...原创 2018-07-25 19:20:10 · 971 阅读 · 0 评论 -
拼数(NOIP1998)
NOIP1998提高组 这题比较水 我们知道,高位数字对一个数的大小影响更大,所以我们要尽可能使放在前面的数位上的数字更大,比如343和313,4比1大,所以我们会把343放在前面 所以我们只需要对每个读入的数字进行数位拆分 然后对他们进行数位大小的排序,所用的法则就上上面讲的,这个排序算法要自己写 最后输出即可,排序时可以用一个数组记录他们的序号顺序即可 代码如下:#incl...原创 2018-07-25 19:49:13 · 631 阅读 · 0 评论 -
挖地雷(NOIP1996)
NOIP1996提高组这道题很水的 显然是个dp 题目似乎有个问题 他没有说边是单向的(如果说了,就当我眼瞎) 反正我一开始以为是双向的,结果被卡了一会 但是看清是单向的,还是简单的 用f[i]表示以i为终点的最大挖雷数 不讲了,感觉太简单了 自己看看代码吧!我是重来不浓缩代码的,应该很易懂 代码如下:#include<cstdio>#include&l...原创 2018-07-25 21:09:46 · 880 阅读 · 0 评论 -
进制位(NOIP1998)
传送门 这道题,怎么说呢 说是搜索,我觉得不像,更像乱搞。 那么,我们就说一下乱搞的思路。 首先在读入的时候,我们需要确定两个数字,那就是0和1. 怎么确定? 0很好确定,每一位运算后都不变,那么这个数字就是0. 那么1呢? 我们只要有一个双位数,那么它的十位就是1. 接下来,找到1所在的那一行,有了0和1,就可以推出其他的数字。 最后,在顺着表判断每个格子对不对。 最后输出...原创 2018-07-30 22:47:56 · 352 阅读 · 0 评论 -
邮票面值设计(NOIP1999)
传送门 怎么讲呢? 挺有意思的 是一道dp和搜索的结合。 我们把数字从小到大依次枚举。 用dp去计算当前的所得最大值。 f[i]表示凑成i面值所需的最小邮票数量。 那么小于等于n的,都是可以凑出来的。 那么最大值也就好求了。 至于dp的上界,用几个数的和就能解决。 代码如下:#include<algorithm>#include<cstring>...原创 2018-07-31 22:02:06 · 888 阅读 · 0 评论 -
乌龟棋(NOIP2010)
NOIP2010提高组原创 2018-08-14 22:04:26 · 257 阅读 · 0 评论 -
转圈游戏(NOIP2013)
传送门 这个这个…… 写个取余的快速幂就好了。 代码如下:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m,k,x;long long pow_mod(long long x, long long n, long long mod...原创 2018-08-17 21:30:50 · 504 阅读 · 0 评论 -
积木大赛(NOIP2013)
传送门 别看这一题比较水,但还是要动动脑子的。 事实上,我们只需要关注峰值就可以了。 为什么? 因为对于非峰值的高度,我们在搭建他附近的峰值的时候,可以顺便把他处理掉。 所以峰值很关键。 那么我们怎么计算呢? 先找出峰值,再计算? 没必要。 我们利用差分数组的思想就好了。 如果当前的这个高度比前面一个高度高,那么我们把答案加上他们的高度差即可。 如果他是峰值,那正好;如果不是...原创 2018-08-17 21:39:21 · 286 阅读 · 0 评论 -
飞扬的小鸟(NOIP2014)
御坂美琴超电磁炮洛谷传送服务白井黑子vijos传送服务不能让老婆累着了,所以把另一个交给黑子。 秀老婆!!秀老婆!!(第二个不是) 知识点动态规划动态规划、滚动数组基本思路用f[i%2][j]表示到达第i列高度为j的点最少需要跳几次 读入,记录柱子 以横坐标为枚举对象,开始递推 初始化下一列的数组(因为用的是滚动数组) 枚举当前列可达的点 ...原创 2018-08-24 21:43:00 · 510 阅读 · 0 评论 -
细胞分裂(NOIP2009普及组)
传送门素数分解,简单数论但是要细心代码如下:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m1,m2;int ans,t,num;int maxu;int prime[30001];void div(){ memset(prim...原创 2018-10-18 21:15:19 · 995 阅读 · 0 评论 -
仪仗队(SDOI2008)
异世界传送门看输入输出就很简单。事实上只要想通了,就没有什么问题几乎是纯数学分析我们考虑对称性,可以计算右下角的三角形的图形中的点数。再纵向观察,查找规律,就可看出对于第i列,可以看见的点有euler(i-1)所以累加就好了,然后乘2加一,就ok了怎么分析,明年再说。代码如下:#include<cstdio>#include<cstring>#incl...原创 2018-10-20 15:01:12 · 283 阅读 · 0 评论 -
同余方程(NOIP2012)
传送门裸的求逆元。代码如下:#include<cstdio>#include<algorithm>#include<cstring>using namespace std;long long a,b;//mod为素数时,n为mod-2;mod为合数时,n为phi(mod)-1,phi为欧拉函数 long long pow_mod(long lo...原创 2018-11-04 22:16:09 · 201 阅读 · 0 评论 -
信息传递(NOIP2015提高组)
传送门 这题显然是找长度最小的环。 怎么找? dfs呗 思路非常明晰,但是你也许只能得到80分。 因为我们还需要一点简单的优化。 我们每次遍历到某一个点,就把它的对象设置为0(没有), 这样的话,每次遍历,遍历到0,就返回。 代码如下:#include<cstdio>#include<cstring>#include<algorithm&g...原创 2018-08-06 21:28:27 · 304 阅读 · 0 评论 -
计算系数(NOIP2011)
NOIP2011提高组day2T1原创 2018-08-14 22:18:33 · 275 阅读 · 0 评论 -
选择客栈(NOIP2011)
NOIP2011提高组day2T2原创 2018-08-15 22:12:51 · 262 阅读 · 0 评论 -
火柴排队(NOIP2913)
传送法阵 (老是放传送门,都用腻了,换一个) 这道题,想通了就不难。 其实主要就是数学分析。 我们来对目标式进行化简: ∑(a-b)²=∑(a²-2ab+b²)这里用了完全平方公式(应该是这个吧!) 那么我们知道对a/b的平方求和是一个定值。 所以我们要关注的就是∑(-2ab),我们要求它的最小值,也就是求∑(ab)的最大值(前面有个负号)。 那么什么时候最大呢? 我...原创 2018-08-17 22:02:24 · 286 阅读 · 0 评论 -
螺旋矩阵(NOIP2014)
螺旋矩阵大致思路:O(1),手动计算,数学题,分四个边算出公式,代值即可。代码如下:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,x,y;int main(){ scanf("%d%d%d",&n,&x,&y)...原创 2018-10-30 20:38:25 · 627 阅读 · 0 评论 -
余数求和(CQOI2007)
余数求和这是一道老题,但是作为一道省选题,它的代码却短小精悍,可以观赏。我们只需要进行数学推导即可解决。(60分暴力分应该是可以秒拿的)由题意得:ans=∑i=1nk%ians=\sum\limits_{i=1}^{n}k\%ians=i=1∑nk%i首先我们需要知道 a%ba\%ba%b 可以表示为 a−b∗⌊ab⌋a-b*\lfloor\frac{a}{b}\rfloora−b∗⌊...原创 2018-10-31 19:14:28 · 231 阅读 · 0 评论 -
小凯的数字
这是一道水题首先一个数学常识:一个数各个数位上的数字之和对9取模的结果即为该数字对9取模的结果。所以引申一下就是:将当前数字任意切分,求和得到的数,对于9取模的结果,即为当前数字对9取模的结果。这个结果,应当很好证明,我就不证明了。所以,有了这个结论,我们就可以秒解这道题。用一个等差数列求和公式,如果怕乘法爆longlong,可以边乘边取模,然后手动求一下2在模9下的逆元,很好想,5就够...原创 2018-10-31 20:27:02 · 467 阅读 · 1 评论 -
密码(zhx原创题)
题面有所改动。时限:1s 空间限制:256M【问题描述】在每个男生的心中都有一个女神,他们都渴望着和女神在一起的日子。lovechq也不例外。这天女神拿着一道题来问lovechq,题目是:有N个数组成的数列,现不给出这N个数,而给出N*(N-1)/2个数,他们是原数列N个数的两两之和,要求用给出的数求出原数列中的N个数。这下可把lovechq难倒了,于是他装模做样地对女神说题...原创 2018-11-01 21:20:23 · 540 阅读 · 0 评论