NOIP
Masse_
随便写写
展开
-
NOIP2018 DAY1 铺设道路 题解.
题目描述春春是一名道路工程师,负责铺设一条长度为 n 的道路。铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n 块首尾相连的区域,一开始,第 i 块区域下陷的深度为 di 。春春每天可以选择一段连续区间[L,R][L,R] ,填充这段区间中的每块区域,让其下陷深度减少 1。在选择区间时,需要保证,区间内的每块区域在填充前下陷深度均不为 0 。春春希望你能帮他设计一种方...原创 2018-11-15 20:42:21 · 2700 阅读 · 0 评论 -
[线性动态规划][区间类动态规划问题][ NOI1995 石子合并]环状区间DP基本解法
题目链接:P1880 [NOI1995]石子合并题目描述在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入输出格式输入格式:数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆...原创 2019-03-06 18:09:17 · 204 阅读 · 0 评论 -
[多维动态规划][NOIP2000 方格取数][NOIP2006 传纸条]四维动态规划做法.
方格取数思路由题意可以想到用动态规划数组DP[i][j][k][l]表示走到A(i,j),B(k,l).那么,对于某一步一共有四种情况:路径A向右,路径B向下; 路径A向右,路径B向右; 路径A向下,路径B向右; 路径A向下,路径B向下。得到动态转移方程:同时注意题目要求:每个数字取一次,故在动态规划枚举的时候需要判重。#include <iostrea...原创 2019-03-14 21:17:43 · 316 阅读 · 0 评论 -
[线性动态规划][P1140 相似基因][类LCS]做题记录和思考总结
题目地址题目背景大家都知道,基因可以看作一个碱基对序列。它包含了44种核苷酸,简记作A,C,G,TA,C,G,T。生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物。在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度。因为这个研究对疾病的治疗有着非同寻常的作用。题目思路:该题类似于LCS(最长公共子序列)首先想到两段基因配对共有三种情况...原创 2019-03-07 21:32:16 · 326 阅读 · 0 评论 -
[多维动态规划][数字三角形类问题]两道例题和思路
数字三角形题目描述观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最...原创 2019-03-12 17:55:15 · 230 阅读 · 0 评论 -
[DAG动态规划][Uva 116 单向TSP]题目做题思路和收获
UVA 116题目描述PDF思路这道题其实是一道特殊的DAG类动态规划;题目要求只能向右走,且只能向右上,右,右下三个方向,同时上部和下部是联通的;1.动态规划求最小值首先想到用DP[i][j]表示到达每一个点要用的最小的结果,动态转移方程为:DP[i][j] = min{DP[i+1][j+1],DP[i-1][j+1],DP[i][j+1]} + Ma...原创 2019-03-21 17:57:50 · 150 阅读 · 0 评论 -
[HNOI2008]越狱 数学排列组合+快速幂
题目描述监狱有连续编号为1…N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。思路首先考虑到这是一道数学题,根据乘法原理可以知道如果不考虑相邻的情况,即有多少种关押情况,情况总数为 S1 = M^N.而考虑不相邻的情况总数为 S2 = M*M^(N-1)种,答案 an...原创 2019-04-06 17:37:20 · 259 阅读 · 0 评论 -
[动态规划][背包问题][P1156 垃圾陷阱]做题思路和总结
题目描述卡门――农夫约翰极其珍视的一条Holsteins奶牛――已经落了到“垃圾井”中。“垃圾井”是农夫们扔垃圾的地方,它的深度为D(2≤D≤100)英尺。卡门想把垃圾堆起来,等到堆得与井同样高时,她就能逃出井外了。另外,卡门可以通过吃一些垃圾来维持自己的生命。每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费卡门的时间。假设卡门预先知道了每个垃圾扔下的时间t(0<t≤1000...原创 2019-04-17 17:53:53 · 215 阅读 · 0 评论 -
P3045 [USACO12FEB]牛券Cow Coupons 贪心+优先队列
题目链接贪心思路:0.贪心撤回1.首先如果所有的奶牛都使用了优惠券,那么优惠价格最少的前K个奶牛是必定包含在最终答案中的。如果情况不是这样,就意味着有一张优惠券用在了K+1到N区间的奶牛上,但是前K个奶牛中的那一个不选,显然这是不划算的,情况不是最优。2.考虑全部对排序后的前K个奶牛使用优惠券,再建立一个由小到大保存(P[i]-C[i])的堆维护,再对[K+1,N]个奶牛进行选择...原创 2019-10-01 11:05:31 · 409 阅读 · 0 评论 -
[线性动态规划][最长上升/下降序列][P1020 导弹拦截]线性动态规划做题理解和总结
原题目链接:导弹拦截题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是≤50000的正整数),计算这套系统最多能拦截...原创 2019-03-06 17:50:04 · 185 阅读 · 0 评论 -
[完全背包问题]状态转移方程及其优化理解.
完全背包问题:题目描述现在有一个容量为V的背包,现在有N种物品可选,不同于01背包的是每件物品可以取无限件,每种物品有价值和大小。求背包最大价值。可以很容易想到最基本的状态转移方程:f[i][v] = max(f[i-1][v-k*c[i]] + k*v[i]|0 <= k*c[i] <= v)进一步优化,可以想到,每次求f[i][v]可以采用这样的策略:将已经...原创 2019-02-19 17:30:34 · 1694 阅读 · 0 评论 -
P1219 八皇后 回溯法题解和思路
题目描述:检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并...原创 2018-12-31 17:08:52 · 202 阅读 · 0 评论 -
[转载]快速幂取模
快速幂取模我们先从简单的例子入手:求ab mod c = 几。算法1.首先直接地来设计这个算法:int ans = 1;for(int i = 1;i<=b;i++){ans = ans * a;}ans = ans % c;这个算法的时间复杂度体现在for循环中,为O(b).这个算法存在着明显的问题,如果a和b过大,很容易就会溢出。那么,我们先来看看...转载 2019-01-26 08:40:09 · 124 阅读 · 0 评论 -
[经验总结]浅谈DFS(深度优先搜索)剪枝技巧.
DFS(深度优先搜索)常用于答案的穷举.在我们遇到的一些问题当中,有些问题我们不能够确切的找出数学模型,即找不出一种直接求解的方法,解决这一类问题,我们一般采用搜索的方法解决。搜索就是用问题的所有可能去试探,按照一定的顺序、规则,不断去试探,直到找到问题的解,试完了也没有找到解,那就是无解,试探时一定要试探完所有的情况(实际上就是穷举) ...原创 2019-01-26 15:59:43 · 1832 阅读 · 0 评论 -
[UVA679 小球下落 Dropping Balls]做题思路与题解.
先看原题(洛谷题目地址): 许多的小球一个一个的从一棵满二叉树上掉下来组成一个新满二叉树,每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。 决定球运动方向的是每个节点的布尔值。最初,所有的节点都是 FALSE,当访问到一个节点时,如果这个节点是 FALSE,则这个球把它变成 TRUE,然后从左子树走,继续它的旅...原创 2019-01-31 14:17:36 · 265 阅读 · 0 评论 -
[P1088 火星人] 做题过程和思路
P1088 火星人题目描述人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。火星人用一种非常简单的方式来表示数字――掰手指。火星人只有一只手,但...原创 2019-01-29 16:46:06 · 334 阅读 · 0 评论 -
[递推算法][P1057 传球游戏][P1192 台阶问题]做题思路和总结
递推算法:递推算法是一种简单的算法,即通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。先看例题:[P1057 传球游戏]题目描述上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右...原创 2019-01-30 17:22:57 · 336 阅读 · 0 评论 -
[线性动态规划][资源分配类问题][P1280 尼克的任务]线性动态规划做题理解和总结
题目地址题目描述尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假...原创 2019-02-28 17:58:28 · 195 阅读 · 0 评论 -
[线性动态规划][最长上升/下降序列][P1091 合唱队形]线性动态规划做题理解和总结
P1091合唱队形做题思路首先根据题目描述可知,很明显的一个求最长公共子序列问题,对第i位同学左边求最长上升子序列,对右边求最长不上升子序列,利用动态规划思想,最后求出两者相加最大的第i位。最终求出答案。代码:#include <iostream>#include <algorithm> using namespace std;int Heig...原创 2019-02-28 20:58:58 · 203 阅读 · 0 评论 -
CF786B Legacy 线段树优化建图
洛谷题目链接题意首先想到单源最短路,但是如果暴力模拟就会导致从区间里每一个点连向另一个点时最坏情况时间复杂度达到O(N*N),显然会TLE。那么看到区间操作,自然会想到处理区间操作的数据结构,这一题就是一道线段树题。想法【线段树优化建图】1.由于直接暴力模拟连边导致TLE,我们可以按照题意建两颗线段树TreeIn(外部一点连向一个区间)和TreeOut(一个区间连向一个点),线...原创 2019-10-01 11:18:10 · 167 阅读 · 0 评论