NOIP系列
zerollt
noi接近退役?
展开
-
NOIP2017 列队 线段树(指针版)+vector
题目描述Sylvia 是一个热爱学习的女♂孩子。前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。Sylvia 所在的方阵中有 n×m名学生,方阵的行数为 n,列数为 m。为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从 1 到 n×m 编上了号码(参见后面的样例)。即:初始时,第 i 行第 j 列 的学生的编号是(i−1)×m+j。然而在练习方原创 2017-12-01 19:51:25 · 425 阅读 · 0 评论 -
[NOIP2014] 飞扬的小鸟 【背包】
题目很明显的背包问题,向上飞可以点无限次,所以是完全背包,向下掉只可能掉一次,所以是01背包。又因为不能在掉落之后再上升,所以要先算完全背包我开始用的是递推,75分(TLE5个点…),对于每一列能够到达的点,推出下一行所能到达的点(所以就重复计算了很多次,完全没有用到背包的思想)接着开始考虑背包,对于一列i的纵坐标j,f[i][j]表示到达这个点需要点击的最小次数,那么f[i][j]=min{f[i原创 2017-12-22 18:35:30 · 334 阅读 · 0 评论 -
[NOIP2007] 矩阵取数游戏 【记忆化搜索+高精】
题目其实感觉这题重点不是dp而是高精因为只能取队首尾的数字,所以用dp[i][j]表示取剩下的i~j的数所能得到的最大值dp[i][j]=max(dp[i+1][j]+2^(m-j+i)*num[i],dp[i][j-1]+2^(m-j+i)*num[j]);代码#include<iostream> #include<cstdio> #include<algorithm> #include<cstd原创 2017-12-24 12:06:54 · 255 阅读 · 0 评论 -
NOIP2016 天天爱跑步 TarjanLCA+树上差分
题目描述 题目这题的差分和一般的树上差分写法差好远,参考了dalao的题解还磨了好久才写出来主要要注意的有以下几点: 1.起点s和终点t千万不要弄错(被它卡了半天的我QAQ) 2.记深度为d的起点的总数为cnt[d]:对于一条向上走的路,在起点处cnt[d]++,搜到终点的时候cnt[d]–;向下走的路,终点处cnt[d]++,起点处cnt[d]–给这道题的细节处理跪了ORZ,磨了三天才终于A原创 2017-12-15 21:09:01 · 311 阅读 · 0 评论 -
NOIP2015 运输计划 二分答案+Tarjan LCA+树上差分
题目描述 题目需要的最短时间,明显二分 判断答案是否可行只要把超过答案的路径都记下来,找到一条所有超过的答案路径都经过的边,尝试删掉它,如果最长的路减去它小于答案,那么此答案就是可行的解 至于统计所有路径都经过的边,差分统计一下就好经过running的折磨,感觉transport突然变简单了代码#include<iostream> #include<cstdio> #include<cstri原创 2017-12-16 21:50:38 · 273 阅读 · 0 评论 -
NOIP2015 过河 【递推(dp)+离散化】
题目描述 题目状态转移方程f[i]=min{f[i-j]+map[i]|s<=j<=t};f[i]表示到达距离i会踩到最少的石子,map[i]表示此处是否有石子因为石子个数比较少,而独木桥的长度比较长,所以要稍微离散化一下, 又因为1~10的最小公倍数为2520,如果从i出发,如果i到i+2520中间没有石子的话f[i~i+2520]的值都是相同的,就可以把这一段路去掉代码#include<io原创 2017-12-19 14:12:40 · 245 阅读 · 0 评论