NOIP普及讲座4-动态规划2
动态规划例题讲解精品PPT课件

山东师大附中
Preview
本节课主要通过几道例题,总揽NOIp中较 常见的动态规划模型,不会过多涉及优化 内容。
Preview
最长上升子序列 内存碎片 背包问题 最长公共子序列 石子合并
括号序列 决斗 三取方格数 选课 贪吃的九头龙
最长上升子序列
给出一个数列{a1,a2,...,an},要求你选出尽量 多的元素,使这些元素按其相对位置单调
完全背包问题
共有N种物品,每种物品有一定的重量w[i] 和一定的价值v[i],每种物品有无限个。现 在我们有一个最大载重量limit的包,问放入 哪些物品能使得总价值最高?
w[i]和v[i]均为整数,N<=100,limit<=10000
完全背包问题
fillchar(f,sizeof(f),0); for i:=1 to n do for j:= w[i] to limit do f[j] = max(f[j], f[j-w[i]]+v[i]); writeln(f[limit]);
1400
共有3件物品 重量分别为30/80/10 价值分别为300/1200/200 背包最大载重量为100
0/1背包问题
令f[i,j]表示考虑完前i项物品,并且当前背包 承重不大于j的情况下能获得的最大价值
f[i,j]=max( f[i-1,j], //不选第i项物品 f[i-1,j–w[i]]+v[i]) //选择第i项物品
2
插入a6后 -inf
1
插入a7后 -inf
1
插入a8后 -inf
1
插入a9后 -inf
1
inf
inf
inf
8
信息学奥赛NOI动态规划入门(C++)培训讲学

思想:从上向下思考,从底向上计算
24
16
23
8
13
21
数字三角形
方法1:递推计算
void solve () {
int i , j; for(j = 1; j <= n; j ++) d[n][j ] = a[n][j];
for(i = n -1; i >= 1; i - -) for( j = 1; j <= i; j ++)
2.递归需要很大的栈空间,而动规的递推法不需要栈 空间;使用记忆化搜索比较容易书写程序。
思考: 还有一种思考方法,从下
向上考虑,观察不同状态如何转 移的。从格子(i,j)出发有两 种决策。
d(i,j)为:取d(i-1,j) 和d(i-1,j-1)中 较大的一个加上a(i,j)的和。
思考:边界情况:??
设计状态
和
状态转移方程
最长上升子序列(LIS)NOI 1759
最长上升子序列(LIS)NOI 1759
样例输入: 7 1735948
样例输出: 4
上升子序列: 1, 7 3, 4, 8
1234567 a1735948
…
最长上升子序列: 如何划分阶段?
1, 3, 5, 9
以从左向右数的个数为阶源自1, 3, 5, 8给定k个整数的序列{A1,A2,...,Ak },其任意连续子 序列可表示为{ Ai, Ai+1, ...,Aj },其中 1 <= i <= j <= k。最大连续子序列是所有连续子序中元 素和最大的一个。
例如给定序列{ -2, 11, -4, 13, -5, -2 },其最 大连续子序列为{11,-4,13},最大连续子序列和即 为20。
NOIP如何取得好成绩

重要的算法:
NOIP的基本难度分布是这样的: 6.二分答案
二分答案在实质上是一种枚举的优化, 一般采用迭代的写法, 但是有的时候也用递归,因为要递归的层数一般很少。 二分答案一般适用于当所要求的答案递增时可用, 时间复杂度一般来说都是O(log2n)。
重要的算法:
NOIP的基本难度分布是这样的:
【NOIP省选知识点汇总】
三、数学
考前的时间安排
2、十一月份复赛 如果可以的话,应该有两周的时间停课,专
心来准备NOIP的复赛,争取取得NOIP一等奖,
两周的时间一般对接下来的高考或期末的学 习成绩影响很小。(有许多同学甚至一个月不参 加文化课的学习,也不影响文化课成绩)
注:当然是否停课要看个人的情况而定哟!NOIP一等奖一般 是指提高组的一等奖。
2、 递推与递归,贪心法,二分法
3、 搜索算法(剪枝)
4、 动态规划(线性动态规划、、背包问题)
NOIP学习进阶
第四阶段:再次狂做题巩固第三阶段的内容,基本上都 是自主研究和学习,力争把这20年来全国赛,分区赛的 所有题目全部做一次,背熟了!!!
第五阶段:学习高级数据结构和算法,进一步提升,用 ACM的题目来练手。《信息学奥赛一本通提高版》 ---提高组(高中组)
7.计数 计数这一技巧可以在数据的规模较小, 而对时间复杂度的要求很低时可用, 基于计数排序或者哈希表的原理, 这个技巧可以在近似O(1)的时间内找到数据。
重要的算法:
NOIP的基本难度分布是这样的:
8.数论 NOIP并不考太过难的题目, 比如欧拉函数φ(n)之类的东西, 一般来说只会考与质数相关的基本数论, 并不会太难,就算是指数筛选也鲜有用O(n)算法的, 质数判定之类的问题更是一个O(sqrt(n))的算法就能搞定, 一般都出在第一到二题,或者说也就是一些非主要考点罢了。
CCF中学生计算机程序设计能力评级信息学奥赛NOIP动态规划算法及优化

动态规划算法 及优化
Codeforces 815C Karen and Supermarket
背包类问题 数据结构优化 决策单调性 计数
可以发现依赖关系形成了一棵树,因此可以考虑在树上
进行 DP。需要注意的是,本题中物品的价格可能非常大, 但是每个物品的收益只有 1,因此我们 DP 时第二维表示的 应当是买了多少个物品。
动态规划算法 及优化
背包类问题 数据结构优化 决策单调性 计数
动态规划算法及优化
动态规划算法 及优化
背包问题
背包类问题 数据结构优化 决策单调性 计数
01 背包:n 个物品,每个物品有价格 ci 及收益 wi ,问 m 元最多能得到多少收益。
完全背包:n 种物品,每种物品有价格 ci 及收益 wi,并 且每种物品能买无限个,问 m 元最多能得到多少收益。
n ≤ 500, m ≤ 4000, di ≤ 100。
动态规划算法 及优化
BZOJ4182 Shopping
背包类问题 数据结构优化 决策单调性 计数
先考虑我们知道必选某个节点时怎么做。可以把这个点
当成根,那么问题就转化为了一个树上依赖背包问题。 考虑用和上一题类似的方法进行 DP。令 fi,j 表示在节点
背包类问题 数据结构优化 决策单调性 计数
树上依赖背包其实还有一个经典的做法。考虑一边 dfs 一边 DP。dfs 到节点 i 的时候,我们先把 DP 数组拷贝一份, 表示不选 i 的子树时的背包。接着我们用多重背包的做法加 入商品 i,并且强制至少买一个商品 i。然后我们再依次 dfs 进每个儿子的子树中,回溯到 i 时我们就得到了在 i 的子树 中买了物品的背包,把它与原先拷贝的背包取个 max 即可。 这样复杂化即可。这样加入一个物品的复杂度是 O(m)
CSP-J(NOIP普及组)历年复赛真题考察内容(1998~2021)

CSP-J(NOIP普及组)历年复赛真题考察内容(1998~2021)1.CSP-J 2021思维、选择结构排序、归并排序⼤模拟双向链表、模拟2.CSP-J 2020位运算、进制转换桶排序栈、深搜动态规划(⾼级)3.CSP-J 2019字符串模拟、队列背包⼴搜、最短路4.NOIP2018 普及组字符串枚举、预处理动态规划(⾼级)⼆叉树5.NOIP2017 普及组顺序结构结构体排序深搜、剪枝⼆分、动态规划6.NOIP2016 普及组⼀重循环回⽂⼤模拟、队列枚举、前缀和7.NOIP2015 普及组⼀重循环⼆维数组组合数学贪⼼、优先队列8.NOIP2014 普及组模拟枚举、gcd模拟、找规律动态规划(⾼级)9.NOIP2013 普及组⼆重循环栈动态规划(⾼级)拓扑排序10.NOIP2012 普及组⼀重循环、质数模拟、取模背包、动态规划最短路11.NOIP2011 普及组进制转换字符串归并排序动态规划(⾼级)、栈12.NOIP2010 普及组⼆维数组模拟贪⼼贪⼼、博弈13.NOIP2009 普及组模拟结构体排序约数动态规划(⾼级)14.NOIP2008 普及组字符串贪⼼动态规划(⾼级)结构体排序贪⼼贪⼼⾼精度16.NOIP2006 普及组⼀维数组01背包模拟进制转换17.NOIP2005 普及组⼀维数组⼀维数组01背包⾼精度18.NOIP2004 普及组⼀重循环贪⼼递归、⼆叉树STL、深搜19.NOIP2003 普及组模拟动态规划(⾼级)组合数学、卡特兰数⾼精度20.NOIP2002 普及组⼀重循环深搜深搜递推、动态规划21.NOIP2001 普及组递推、递归枚举、gcd⼆叉树⼀元⼀次⽅程、模拟不等式、数论动态规划、⾼精度深搜23.NOIP1999 普及组找规律进制转换贪⼼24.NOIP1998 普及组简单数学、枚举、进制转换⾼精度深搜。
2000年noip普及组乘积最大题解

2000年noip普及组乘积最大题解摘要:1.题目背景和要求2.算法思路3.算法实现4.算法优化和总结正文:一、题目背景和要求2000 年NOIP 普及组乘积最大题是一道经典的动态规划题目。
题目要求给定一个整数数组nums,求出nums 中任意两个数相乘的最大值。
需要注意的是,数组中每个元素都大于0。
二、算法思路为了求解该问题,我们可以采用动态规划的方法。
具体思路如下:1.创建一个长度与nums 相同的数组dp,用于存储以nums 中每个元素为结尾的最大乘积。
2.初始化dp 数组的第一个元素为nums 的第一个元素。
3.遍历数组nums,对于每个元素nums[i],更新dp 数组:dp[i] = max(dp[i-1], dp[i-2] * nums[i])。
4.最后,dp 数组的最后一个元素就是nums 中任意两个数相乘的最大值。
三、算法实现以下是该算法的Python 实现:```pythondef max_product(nums):if len(nums) < 2:return nums[0]dp = [0] * len(nums)dp[0] = nums[0]dp[1] = max(nums[0], nums[1])for i in range(2, len(nums)):dp[i] = max(dp[i-1], dp[i-2] * nums[i])return dp[-1]```四、算法优化和总结该算法的时间复杂度为O(n),空间复杂度为O(n),其中n 为数组nums 的长度。
算法的优化主要在于初始化dp 数组的第一个元素为nums 的第一个元素,以及在遍历过程中只更新dp 数组的最后两个元素。
这样,我们可以在O(n) 的时间复杂度内求解出nums 中任意两个数相乘的最大值。
总结:本题通过动态规划的方法求解了NOIP 普及组乘积最大题。
CSP-J (NOIP普及组) 复赛2010-2023考查内容一览表

CSP-J (NOIP提高组) 复赛2010-2020考查内容NOIP2017提高组T4奶酪深搜、广搜、并查集T5宝藏状压DPT6列队线段树NOIP2016提高组T1玩具谜题模拟T2天天爱跑步倍增LCAT3换教室动态规划(高级)T4组合数问题前缀和、杨辉三角T5蚯蚓队列、单调性T6愤怒的小鸟状压DPNOIP2015提高组T1神奇的幻方模拟T2信息传递并查集T3斗地主动态规划(高级)、深搜T4跳石头二分T5子串滚动数组、动态规划(高级) T6运输计划二分、LCA、非递归NOIP2014提高组T1生活大爆炸版石头剪刀布模拟T2联合权值动态规划(高级)、前缀和T3飞扬的小鸟动态规划(高级)T4无线网络发射器选址枚举T5寻找道路最短路T6解方程数论、枚举NOIP2013提高组T1转圈游戏快速幂T2火柴排队归并排序、逆序对T3货车运输最小生成树、LCA、倍增T4积木大赛贪心T5花匠贪心T6华容道广搜、剪枝NOIP2012提高组T1Vigenere密码枚举、模拟T2国王游戏贪心、高精度T3开车旅行平衡树、倍增T4同余方程扩展欧几里得T5借教室线段树T6疫情控制二分、倍增NOIP2011提高组T1铺地毯模拟T2选择客栈动态规划(高级)、RMQ T3Mayan游戏T4计算系数组合数学T5聪明的质监员二分T6观光公交贪心NOIP2010提高组T1机器翻译队列T2乌龟棋动态规划T3关押罪犯二分、并查集T4引水入城广搜、动态规划T3摆渡车动态规划(高级) T4对称二叉树二叉树NOIP2017普及组序号题名考查内容T1成绩顺序结构T2图书管理员结构体排序T3棋盘深搜、剪枝T4跳*房*子二分、动态规划NOIP2016普及组序号题名考查内容T1买铅笔一重循环T2回文日期回文T3海港大模拟、队列T4魔*法*阵枚举、前缀和NOIP2015普及组序号题名考查内容T1金*币一重循环T2扫*雷*游*戏二维数组T3求和组合数学T4推销员贪心、优先队列NOIP2014普及组序号题名考查内容T1珠心算测验模拟T2比例简化枚举、gcdT3螺旋矩阵模拟、找规律T4子矩阵动态规划(高级)NOIP2013普及组序号题名考查内容T1记数问题二重循环T2表达式求值栈T3小朋友的数字动态规划(高级) T4车站分级拓扑排序NOIP2012普及组序号题名考查内容T1质因数分解一重循环、质数T2寻*宝模拟、取模T3摆花背包、动态规划T4文化之旅最短路NOIP2011普及组序号题名考查内容T1数字反转进制转换T2统计单词数字符串T3瑞士轮归并排序T4表达式的值动态规划(高级)、栈NOIP2010普及组序号题名考查内容T1数字统计二维数组T2接水问题模拟T3导*弹*拦*截贪心T4三*国*游*戏贪心、博弈。
【NOIP2006普及组】开心的金明

【NOIP2006普及组】开⼼的⾦明
看过题后,你可能会发现这是很典型的0-1背包问题,即要么选择这件要么不选。
0-1背包问题最经典的解法就是动态规划了。
当然这道题的数据范围较⼩,也可以⽤暴搜(暴⼒搜索)来做,即枚举所有情况。
我们⽤递归来实现⼀下。
对于每⼀件物品就模拟两种情况选或者不选,千万不要漏掉哪⼀种情况,最后求取最⼤值就好了。
(由于我们当时模拟赛,所以写了⽂件读取数据,请见谅。
)
好了,暴搜的解法就介绍到这⾥,接下来,要介绍经典解法——动态规划。
动态规划最重要的就是建⽴递推式,根据上⾯讲解我们已经明确了对于每个物品依次检查选或不选,⽤dp[i][j]表⽰前 i 个物品在 j ⾦额下的最优解(结果最⼤)。
如果j放不下第i个物品的话,那么就只能从编号为[1,i-1]的物品中选择了,也就是dp[i-1][j]的值。
所以,
dp[i][j] = dp[i-1][j]; (其中,j < v[i])
那么j可以放的下这个物品的时候应该怎么办呢?很明显,我们有两种选择,选或不选,之后我们取较⼤的值。
选 dp[i-1][j-v[i]]+v[i]*p[i];
不选 dp[i-1][j];
所以我们得到递推式
dp[i][j] = max(dp[i-1][j], dp[i-1][j-v[i]]+v[i]*p[i]);(其中,j>=v[i])
把两种情况整理⼀下,
怎么样?思路明确多了吧!
根据递推式来写代码就好了。
最后附上AC代码。
noip2016普及组复赛试题

noip2016普及组复赛试题题目:NOIP2016普及组复赛试题解析一、试题概览NOIP2016普及组复赛作为一项面向中学生的计算机编程竞赛,旨在培养学生的算法设计能力和编程实践技巧。
本次复赛的题目涵盖了基础数据结构、贪心算法、动态规划等多个领域,旨在考察参赛者的逻辑思维和问题解决能力。
本文将对这些题目进行逐一解析,帮助读者理解题目要求和解题思路。
二、题目一:数据结构应用本题要求设计一个程序,用于模拟图书馆管理系统中的书架管理。
书架上可以存放不同类别的书籍,每本书都有一个唯一的编号。
程序需要实现以下几个功能:1. 添加书籍:将一本书添加到书架上,并按照编号顺序排列。
2. 移除书籍:根据书籍编号从书架上移除对应的书籍。
3. 查询书籍:根据书籍编号查询并输出书籍的信息。
解题思路:针对这一题目,我们可以选择使用数组或链表作为底层数据结构来实现书架的管理和操作。
数组具有随机访问的优点,但插入和删除操作需要移动大量元素;链表虽然插入和删除方便,但访问速度较慢。
考虑到题目中没有特别强调访问速度,我们可以选择链表来实现。
具体实现步骤如下:1. 定义一个书籍结构体,包含编号、类别和信息等字段。
2. 创建一个链表,链表的每个节点存储一本书的信息。
3. 实现添加书籍的功能,可以从头节点开始遍历链表,找到合适的位置插入新书籍。
4. 实现移除书籍的功能,通过遍历链表找到对应编号的书籍并删除该节点。
5. 实现查询书籍的功能,遍历链表找到对应编号的书籍并输出信息。
三、题目二:贪心算法的运用本题要求参赛者设计一个程序,用于解决旅行商问题(TSP),即给定一组城市和每对城市之间的距离,找到一条访问每个城市恰好一次并回到出发城市的最短路径。
题目中给出了城市数量和距离矩阵。
解题思路:旅行商问题是一个经典的NP-hard问题,对于大规模数据,我们可以使用贪心算法来找到一个近似最优解。
本题可以采用最近邻启发式算法来求解。
具体实现步骤如下:1. 从任意一个城市开始,将其设为当前城市。
信息学奥赛——动态规划法专题

信息学奥赛——动态规划法专题全国青少年信息学奥林匹克联赛动态规划算法一、动态规划的定义在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。
因此各个阶段决策的选取不能任意确定,它依赖于当前面临的状态,又影响以后的发展。
当各个阶段决策确定后,就组成一个决策序列,因而也就确定了整个过程的一条活动路线。
这种把一个问题看作是一个前后关联具有链状结构的多阶段过程(如图)就称为多阶段决策过程,这种问题称为多阶段决策问题。
在多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有"动态"的含义,我们称这种解决多阶段决策最优化的过程为动态规划方法。
应指出,动态规划是考察求解多阶段决策问题的一种途径、一种方法,而不是一种特殊算法。
不像线性规划那样,具有一个标准的数学表达式和明确定义的一组规划。
因此我们在学习时,除了要对基本概念和方法正确理解外,必须具体问题具体分析处理,以丰富的想象力去建立模型,用创造性的技巧去求解。
二、动态规划最优化原理作为整个过程的最优策略具有这样的性质:即无论过去的状态和决策如何,对以前的决策所形成的状态而言,余下的诸决策必须构成最优策略。
(无论过程的初始状态/初始决策是什么,其余决策活动必须相对于初始决策所产生的状态构成一个最优决策序列,才可能使整个决策活动构成最优决策序列。
)简单地说,一个整体过程的最优策略的子策略一定是最优策略。
利用这个原理,可以把多阶段决策问题的求解过程看成是一个连续的逆推过程。
由后向前逐步推算。
在求解时,各种状态前面的状态和决策,对后面的子问题,只不过相当于其初始条件而己,不影晌后面过程的最优策略。
原理的证明可用反证法。
在此把它略去。
三、动态规划的求解方法是先把问题分成多个子问题(一般地每个子问题是互相关联和影响的),再依次研究逐个问题的决策。
动态规划(完整)ppt课件

3
• Ⅲ --Ⅳ :
B1—C1—T
4
• Ⅱ--Ⅲ--Ⅳ :A2—B1—C1—T
7
• Ⅰ--Ⅱ--Ⅲ --Ⅳ:
•
Q—A2—B1—C1—T
11
•
Q--A3—B1—C1—T
11
•
Q--A3—B2—C2—T
11
最新版整理ppt
3
最短路径
11
4
7
A1
4
2
6
11
47
3 2
Q
A2
4
B1
1
4 76
3
C1
3
B2 3
最新版整理ppt
16
(4)策略和允许策略集合
策略(Policy)也叫决策序列.策略有全过程 策略和 k 部子策略之分,全过程策略是指具 有n 个阶段的全部过程,由依次进行的 n 个 阶段决策构成的决策序列,简称策略,表示
为 p1,n{x1,x2, ,xn}。从 k 阶段到第 n 阶段,
依次进行的阶段决策构成的决策序列称为 k
新分支的创立。
最新版整理ppt
6
• 动态规划将复杂的多阶段决策问题分解为 一系列简单的、离散的单阶段决策问题, 采用顺序求解方法, 通过解一系列小问题 达到求解整个问题目的;
• 动态规划的各个决策阶段不但要考虑本阶 段的决策目标, 还要兼顾整个决策过程的 整体目标, 从而实现整体最优决策.
最新版整理ppt
第七章 动态规划
主要内容:
§7.1多阶段决策问题 §7.2 动态规划的基本概念和基本原理 §7.3 动态规划应用举例
最新版整理ppt
1
例 求解最短路问题
2
Q
4
历年noip(普及组提高组)试题分析

历年NOIP(普及组)难度分析by Climber.pI年份题目名称考查内容难度1998 Three 枚举☆Factor 高精度运算★Power 数学(进制转换)★★1999 Cantor表模拟或数学★☆回文数字符串处理★★旅行家的预算动态规划或贪心★★☆2000 计算器的改良字符串处理★★税收与补贴问题数学或枚举★★乘积最大动态规划★★★单词接龙回溯★★★★2001 数的计算动态规划★最大公约数和最小公倍数数学(辗转相除法)★求先序排列树的遍历☆装箱问题0/1背包或枚举★2002 级数求和循环结构☆选数生成算法、素数判定★★★产生数简单图论★★★★过河卒递推或动态规划★☆2003 乒乓球字符串处理★☆数字游戏动态规划★★★★★栈数学(卡特兰数)★★麦森数分治、高精度运算★★★2004 不高兴的津津模拟☆花生采摘贪心★FBI树树的遍历★★火星人生成算法★★★2005 淘淘摘苹果模拟☆校门外的树模拟★采药0/1背包★循环高精度运算、数论、快速幂★★★★★2006 明明的随机数冒泡排序(去重)★开心的金明0/1背包★Jam计数法生成算法、字符串★★★数列数学(进制转换)★☆2007 奖学金冒泡排序(双关键字)★纪念品分组贪心、排序算法★☆守望者的逃离动态规划或枚举★★★Hanoi双塔问题数学、高精度★☆2008 ISBN号码字符串处理★排座椅贪心★★传球游戏动态规划★★★立体图字符输出★★★2009 多项式输出字符串处理★分数线划定快速排序(双关键字)★细胞分裂数论★★★★道路游戏动态规划★★★★★2010 数字统计枚举★接水问题模拟★导弹拦截排序+枚举★★★★三国游戏贪心★★★2011 (160)数字反转模拟、字符串★统计单词数模拟、字符串函数★瑞士轮模拟、快排、滚动数组★★★表达式的值栈、表达式计算、递推★★★★★2012 (150)质因数分解枚举★寻宝模拟,模运算★★摆花动态规划★★★★文化之旅搜索、最短路、动规★★★★☆/view/e1cdc430376baf1ffc4fad0c.htmlNOIP提高组复赛考察点详细分析题目编号题目名主考察点知识点系数NOIP-2000-A 进制转换数学初等代数,找规律0.6 NOIP-2000-B 乘积最大动态规划资源分配DP 0.7 NOIP-2000-C 单词接龙搜索DFS,字符串,模拟0.5 NOIP-2000-D 方格取数动态规划多维状态0.6 NOIP-2001-A 一元三次方程求解数学数学,枚举,实数处理0.5 NOIP-2001-B 数的划分动态规划资源分配DP,多维状态DP 0.7 NOIP-2001-C 统计单词个数动态规划资源分配DP,字符串0.3 NOIP-2001-D Car的旅行路线图论最短路,实数处理0.7 NOIP-2002-A 均分纸牌贪心贪心,模拟0.8 NOIP-2002-B 字串变换搜索BFS,字符串0.5 NOIP-2002-C 自由落体数学数学,物理,模拟,实数处理0.6 NOIP-2002-D 矩形覆盖构造动态规划/贪心/搜索剪枝0.2 NOIP-2003-A 神经网络图论拓扑排序,递推0.4 NOIP-2003-B 侦探推理模拟枚举,模拟,字符串0.5 NOIP-2003-C 加分二叉树动态规划树,区间DP 0.4 NOIP-2003-D 传染病控制构造随机贪心/搜索剪枝0.2 NOIP-2004-A 津津的储蓄计划模拟模拟0.9 NOIP-2004-B 合并果子贪心最优哈夫曼树,排序0.7 NOIP-2004-C 合唱队形动态规划子序列DP 0.7 NOIP-2004-D 虫食算搜索搜索剪枝,模拟0.2 NOIP-2005-A 谁拿了最多奖学金模拟模拟,字符串0.8 NOIP-2005-B 过河动态规划子序列DP,贪心优化0.2 NOIP-2005-C 篝火晚会数学置换群,贪心0.2 NOIP-2005-D 等价表达式模拟字符串,抽样检测,表达式0.3 NOIP-2006-A 能量项链动态规划区间环DP 0.6NOIP-2006-B 金明的预算方案动态规划资源分配DP,构造0.6 NOIP-2006-C 作业调度方案模拟模拟0.7 NOIP-2006-D 2^k进制数动态规划动态规划/组合数学,高精度0.5 NOIP-2007-A 统计数字模拟排序 1.0 NOIP-2007-B 字符串的展开模拟字符串,模拟0.7 NOIP-2007-C 矩阵取数游戏动态规划区间DP,高精度0.6 NOIP-2007-D 树网的核图论最短路,树的直径0.4 NOIP-2008-A 笨小猴模拟质数判断,字符串 1.0 NOIP-2008-B 火柴棒等式模拟枚举,优化/开表0.8 NOIP-2008-C 传纸条动态规划多维状态DP 0.7 NOIP-2008-D 双栈排序构造枚举,贪心/二分图0.4 NOIP-2009-A 潜伏者模拟字符串,模拟0.9 NOIP-2009-B Hankson的趣味题数学初等数论,质因数,组合数学0.4 NOIP-2009-C 最优贸易图论最短路0.5 NOIP-2009-D 靶形数独搜索搜索优化0.3 NOIP-2010-A 机器翻译模拟NOIP-2010-B 乌龟棋动态规划动态规划优化NOIP-2010-C 关押罪犯二分答案二分答案或并查集NOIP-2010-D 引水入域广搜+动规判断有解和无解NOIP-2011-D1A 铺地毯枚举,模拟循环队列NOIP-2011-D1B 选择客栈枚举二分查找、NOIP-2011-D1C Mayan游戏深搜剪支NOIP-2011-D2A 计算系数组合二项式系数NOIP-2011-D2B 聪明的质监员二分答案部分和优化NOIP-2011-D2C 观光公交贪心递推分析NOIP-2012-D1A Vigenere密码枚举模拟左偏移位NOIP-2012-D1B 国王游戏贪心排序后列出NOIP-2012-D1C 开车旅行平衡树或链离线深搜,动态规划、倍增NOIP-2012-D2A 同余方程不定方程递归,扩展欧几里得NOIP-2012-D2B 借教室线段树枚举、线段树、二分NOIP-2012-D2C 疫情控制二分答案二分答案,贪心,倍增动态规划:12 模拟:10数学:5 图论:4搜索:4 构造:3贪心:2【动态规划】平均难度系数:0.55此项为历届NOIP考察次数最多的知识点。
《动态规划》课件

动态规划具有最优子结构和重叠子问题的特点,能够通过保存已解决的子问题来避免重复计 算。
应用场景
动态规划广泛应用于路线规划、资源分配、序列匹配等问题,能够有效地解决复杂的优化和 决策问题。
动态规划的优缺点
1 优点
动态规划能够提供最优的解决方案,同时能够高效地解决问题,避免重复计算。
2 缺点
使用动态规划解决问题需要设计状态转移方程,对于复杂问题可能需要较高的思维和计 算复杂度。
《动态规划》PPT课件
欢迎来到《动态规划》PPT课件! 本课程将深入探讨动态规划的应用和技巧, 帮助你理解这一强大的问题求解方法。
什么是动态规划
动态规划是一种通过将问题拆分为更小的子问题,并根据子问题的解来求解 原问题的方法。它可以应用于许多领域,包括优化、组合数学和图论。动态规划的特点 Nhomakorabea应用场景
参考资料
• 经典教材 • 学术论文 • 网络资源
确定问题的初始状态和结束条件,作为动态规划的边界。
4
确定优化方向
选择最优的状态转移路径,以达到问题的最优解。
经典问题解析
斐波那契数列
通过动态规划求解斐波那契数列,可以有效 地避免重复计算,提高计算效率。
最长公共子序列
使用动态规划求解最长公共子序列,可以在 时间复杂度为O(n*m)的情况下找到最长公共 子序列。
最优子结构
定义
最优子结构表示一个问题的最优解可以通过子 问题的最优解来构建。
举例
在路径规划问题中,通过求解子问题的最短路 径,可以获得整个路径规划的最短路径。
重叠子问题
定义
重叠子问题表示一个问题的子问题会被重复计 算多次。
举例
在斐波那契数列中,计算每个数字需要依赖于 前两个数字,导致重复计算了相同的子问题。
2023noip题目

2023NOIP考题解析题目一:数据结构与算法本题主要考察的是对数据结构和算法的理解与运用。
给定一组数字序列,请设计一个算法,找出该序列中第k小的数字。
输入输入包括两行。
第一行为一个整数n,表示数字序列的长度。
第二行为n个以空格分隔的整数,表示数字序列。
输出输出一个整数,表示数字序列中第k小的数字。
样例输入89 2 4 7 1 5 3 8样例输出3题解思路为了找出第k小的数字,我们可以使用堆排序的算法。
首先,将输入的数字序列构建成一个小顶堆。
然后,依次将堆顶元素取出,并将其与堆尾元素进行交换,再对堆进行调整,直到取出k个数字为止。
具体实现步骤如下:1.将输入序列构建成一个小顶堆。
可以使用数组或者二叉堆来实现堆结构。
2.依次取出堆顶元素,并将其与堆尾元素进行交换。
3.对堆进行调整,以满足堆的性质。
4.重复步骤2和3,直到取出k个数字为止。
5.返回堆尾元素,即为第k小的数字。
时间复杂度分析构建小顶堆的时间复杂度为O(nlogn),其中n为数字序列的长度。
每次调整堆的时间复杂度为O(logn)。
因此,该算法的时间复杂度为O(n+klogn)。
题目二:动态规划本题主要考察的是动态规划的思想和应用。
给定一个包含n个正整数的序列,要求选取一个长度至少为2的子序列,使得该子序列中元素之和最大。
输入输入包括两行。
第一行为一个整数n,表示序列的长度。
第二行为n个以空格分隔的正整数,表示序列。
输出输出一个整数,表示选取的子序列中元素之和的最大值。
样例输入6-2 1 -3 4 -1 2 1 -5 4样例输出6题解思路该题可以使用动态规划的思想来解决。
定义一个数组dp,dp[i]表示以第i个元素结尾的子序列中元素之和的最大值。
则 dp[i] = max(dp[i-1]+nums[i], nums[i])。
具体实现步骤如下:1.初始化一个长度为n的数组dp,初始值均为0。
2.根据动态规划的递推公式,计算dp数组的每个元素的值。
noip动态规划讲解课件

用f[x,i,j]表示走到第x步时,第1条路线走到横坐标为i的地方,第2条路线走到了横坐标为j的地方。这样,我们只要枚举x,i,j,就能递推出来了。
For x:=3 To m+n Do For i:=1 To Min(x,n) Do For j:=1 To Min(x,n) Do Begin f[x,i,j]:=Max(f[x-1,i,j],f[x-1,i-1,j],f[x-1,i,j-1],f[x-1,i-1,j-1]); If i=j Then Inc(f[x,i,j],a[i,x-i]) Else Begin Inc(f[x,i,j],a[x-i,i]); Inc(f[x,i,j],a[x-j,j]); End; End;
动态规划实质:
枚举
+
递推
状态
状态转移方程
Sample Problem1
1
3
5
9
1
从树的根到树的叶节点,最多能取多少数?
贪心:答案错误
暴力搜索:如果数据大会超时
我们先将NOIp里的动态规划分分类:
最长不降子序列 背包 方格取数 石子归并 状态压缩 数学递推 顺序递推
合唱队形(NOIp2004) 【问题描述】 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1<=i<=K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。 【输入文件】 输入文件第一行是一个整数N(2<=N<=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高。 【输出文件】 输出文件包括一行,这一行只包含一个整数,就是最少需要几位同学出列。
noip2023双序列拓展题解

NOIP(全国青少年信息学奥林匹克竞赛)是我国面向初、高中学生的年度国家级比赛,旨在选拔信息学科领域的优秀青少年学生,为他们提供一个展示自己、切磋学术、交流思想的评台。
作为NOIP的一部分,双序列拓展题作为一个经典的动态规划问题,一直备受考生关注。
在本文中,将对NOIP双序列拓展题进行详细的讲解与分析,希望对广大考生有所帮助。
一、问题描述双序列拓展题是一个很有挑战性的问题,它要求考生在给定两个序列的基础上,通过给定的操作,得到一个特定的形式。
具体来说,题目会给出两个序列S1和S2,以及一些操作,要求考生通过这些操作将序列S1变换成序列S2。
操作的种类一般有插入、删除、替换等,考生需要根据题目的要求,利用最少的操作完成变换。
二、解题思路针对这类问题,一般可以采用动态规划的思想来解决。
具体来说,可以定义一个二维的dp数组,其中dp[i][j]表示将S1的前i个字符变换成S2的前j个字符所需要的最小操作次数。
接下来就是根据题目的要求,设计状态转移方程,来更新dp数组中的值。
最终dp[m][n]即为所求的答案,其中m和n分别为序列S1和S2的长度。
三、具体实现接下来我们通过一个具体的例子来演示一下如何实现这个算法。
假设题目给定的两个序列分别为S1="abcde"和S2="ace",并且规定可以进行插入、删除和替换三种操作。
首先我们可以初始化一个dp数组,长度分别为S1和S2的长度加一。
1、进行初始化操作dp[0][0]=0dp[i][0]=i (i>0)dp[0][j]=j (j>0)2、进行状态转移接下来就是根据三种操作来设计状态转移方程了,这里举出的是替换操作的例子:如果S1[i]==S2[j],那么不需要进行替换操作,可以直接跳过。
状态转移方程为:dp[i][j]=dp[i-1][j-1]。
如果S1[i]!=S2[j],那么需要进行替换操作。
状态转移方程为:dp[i][j]=dp[i-1][j-1]+1。
NOIPCSP普及组历年复赛真题题单(1998~2020)

NOIPCSP普及组历年复赛真题题单(1998~2020)**转载⾃: **1.CSP-J 2020T1 优秀的拆分位运算、进制转换T2 直播获奖桶排序T3 表达式栈、深搜T4 ⽅格取数动态规划2.CSP-J 2019T1 数字游戏字符串T2 公交换乘模拟、队列T3 纪念品背包T4 加⼯零件⼴搜、最短路3.NOIP2018 普及组T1 标题统计字符串T2 龙虎⽃枚举、预处理T3 摆渡车动态规划T4 对称⼆叉树⼆叉树4.NOIP2017 普及组T1 成绩枚举模拟T2 图书管理员结构体排序T3 棋盘深搜、剪枝T4 跳房⼦⼆分、动态规划5.NOIP2016 普及组T1 买铅笔枚举模拟T2 回⽂⽇期回⽂T3 海港⼤模拟、队列T4 魔法阵枚举、前缀和6.NOIP2015 普及组T1 ⾦币枚举模拟T2 扫雷游戏枚举模拟T3 求和组合数学T4 推销员贪⼼、优先队列7.NOIP2014 普及组T1 珠⼼算测验模拟T2 ⽐例简化枚举、gcdT3 螺旋矩阵模拟、找规律T4 ⼦矩阵动态规划8.NOIP2013 普及组T1 计数问题枚举模拟T2 表达式求值栈T3 ⼩朋友的数字动态规划T4 车站分级拓扑排序9.NOIP2012 普及组T1 质因数分解枚举模拟、质数T2 寻宝模拟、取模T3 摆花背包、动态规划T4 ⽂化之旅最短路10.NOIP2011 普及组T1 数字反转进制转换T2 统计单词数字符串T3 瑞⼠轮归并排序T4 表达式的值动态规划、栈11.NOIP2010 普及组T1 数字统计模拟枚举T2 接⽔问题模拟T3 导弹拦截贪⼼T4 三国游戏贪⼼、博弈12.NOIP2009 普及组T1 多项式输出模拟T2 分数线划定结构体排序T3 细胞分裂约数T4 道路游戏动态规划13.NOIP2008 普及组T1 ISBN 号码字符串T2 排座椅贪⼼T3 传球游戏动态规划T4 ⽴体图⼤模拟14.NOIP2007 普及组T1 奖学⾦结构体排序T2 纪念品分组贪⼼T3 守望者的逃离贪⼼T4 Hanoi 双塔问题⾼精度15.NOIP2006 普及组T1 明明的随机数枚举模拟T2 开⼼的⾦明 01背包T3 Jam 的计数法模拟T4 数列进制转换16.NOIP2005 普及组T1 陶陶摘苹果枚举模拟T2 校门外的树枚举模拟T3 采药 01背包T4 循环⾼精度17.NOIP2004 普及组T1 不⾼兴的津津模拟T2 花⽣采摘贪⼼T3 FBI 树递归、⼆叉树T4 ⽕星⼈ STL、深搜18.NOIP2003 普及组T1 乒乓球模拟T2 数字游戏动态规划T3 栈组合数学、卡特兰数T4 麦森数⾼精度19.NOIP2002 普及组T1 级数求和枚举T2 选数深搜T3 产⽣数深搜T4 过河卒递推、动态规划20.NOIP2001 普及组T1 数的计算递推、递归T2 最⼤公约数和最⼩公倍数问题枚举、GCD T3 求先序排列⼆叉树T4 装箱问题 01背包21.NOIP2000 普及组T1 计算器的改良⼀元⼀次⽅程、模拟T2 税收与补贴问题不等式、数论T3 乘积最⼤动态规划、⾼精度T4 单词接龙深搜22.NOIP1999 普及组T1 Cantor表找规律T2 回⽂数进制转换T3 旅⾏家的预算贪⼼23.NOIP1998 普及组T1 三连击简单数学、枚举、进制转换T2 阶乘和⾼精度T3 2的幂次⽅表⽰深搜。
noip动态规划

A
阶段0
B
阶段1
C
阶段2
D
阶段3
E
阶段4
阶段的划分具有如下性质:
⑴阶段i的取值只与阶段i+1有关,阶段i+1的取值只对阶段i的取值 产生影响;
⑵每个阶段的顺序是确定的,不可以调换任两个阶段的顺序。
5
B1
6 3
A
4 B2 4 6
2
运用动态程序设计方法的一个前提。即这个过程的最优策 略应具有这样的性质:无论初始状态及初始决策如何,对于先前 决策所形成的状态而言,其以后的所有决策应构成最优策略。这 就是最优化原理。简言之,就是最优策略的子策略也是最优策略 。
➢最优化原理与无后效性
⑴该问题的解必须符合最优化原理是前提。 这是因为是否符合最优化原理是一个问题的本质特征。对于不满足最优化
确定下一阶段的状态,这种决定称为决策。表示决策的变量称为决策变量 ,常用Uk(Sk)表示第k阶段当状态为Sk时的决策变量。在实际问题中,决 策变量的取值往往限制在一定范围内,我们称此范围为允许决策集合。常
用Dk(Sk)表示第k阶段从状态Sk出发的允许决策集合。显然有uk(sk) Dk(sk)
➢ 决策是问题解的属性。决策的目的就是“确定下一阶段的状态”。从阶段 1的B1状态出发有三条路,也就是三个决策,分别导向阶段2的C1,C2,C3 三个状态,即D1(B1)={C1,C2,C3}。
➢ 首先,我们来观察上述算法。在求B1到E的最短路径的时候,先求出从C2 到E的最短路径;而在求B2到E的最短路径的时候,又求了一遍从C2到E 的最短路径。也就是说,从C2到E的最短路径求了两遍。两样可以发现, 在求从C1、C2到E的最短路径的过程中,从D1到E的最短路径也被求了两 遍。而在整个过程中,从D1到E的最短路径被求了四遍,这是多么大的一 个浪费啊!如果在求解的过程中,同时将求得的最短路径的距离“记录在 案”,以便将来随时调用,则可以避免这种重复计算。至此,一个新的思
Problem_动态规划02_

【输出】 输出文件仅有一行包含一个整数 d,表示公司最早能于 d 天后交付软件。
【样例】 time.in
3 20 11 24 16 time.out 16
样例解释: 样例的最快方案是第一个技术人员完成第二个软件的 18 个模块,用时 18 天,第 三个技术人员完成第一个软件的 18 个模块,用时 18 天,其余的模块由第二个技 术人员完成,用时 12 天,做完所有模块需要 18 天。如果第一个技术人员完成第 二个软件的 17 个模块,第三个技术人员完成第一个软件的 17 个模块,其余的模 块由第二个技术人员完成,需要用时 18 天,做完所有模块仍然需要 18 天,所以 少于 18 天不可能做完所有模块。 数据范围: 20%的数据 1≤n,m≤10 40%的数据 1≤n,m≤20 100%的数据 1≤n,m,d1,d2≤100
长郡中学 NOIP 动态规划试题 02
试题名称 摆花
老师的工资 书的复制
三角形牧场 软件开发
程序名
flower. cቤተ መጻሕፍቲ ባይዱp teacher. cpp
book.cpp pasture .cpp
time.cpp
输入文件
flower.in teacher.in
book.in pasture.in
time.in
【输入】 输入文件第一行包含两个由空格隔开的整数 n 和 m,其中 1≤n≤100,1≤m
≤100。接下来的 n 行每行包括两个用空格隔开的整数 d1 和 d2,d1 表示该技术 人员完成第一个软件中的一个模块所需的天数,d2 表示该技术人员完成第二个 软件中的一个模块所需的天数,其中 1≤d1,d2≤100。
输出文件
flower.out
时限 1s
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实用精品课件PPT
1
【例题1】装箱问题(noi openjudge 8785) 问题描述: 有一个箱子容量为V(正整数,0<=v<=20000),同时有n个物品(0<
n<=30),每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
输入
第一行是一个整数V,表示箱子容量。
实用精品课件PPT
15
下面是一个例子 1 2 3 45 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 一个人可以从某个点不滑向上下左右相邻四个点之一,当且仅当高度减 小,在上面的例子中,一条可行的不滑坡为24-17-16-1(从24开始, 在1结束)。当然25-24-23-…-3-2-1更长。事实上,这是最长 的一条。
【输入格式】
第1行为表示区域的二维数组的行数R和列数C(1≤R,C≥100)。下面是 R行,每行有C个数,代表高度。
【输出格式】
区域中最长滑坡的长度
实用精品课件PPT
16
【样例输入】
55
123 45
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
0 x 50 0 x 25 0 x 10 11 x 5 28 x 1
0 x 50 0 x 25 0 x 10 12 x 5 23 x 1
0 x 50 0 x 25 0 x 10 13 x 5 18 x 1
0 x 50 0 x实2用5精品0课件xPP1T0 14 x 5 13 x 1
12
【问题分析】 状态: f[i]代表面值为i的钱的换钱方案数 方程: f[i]=sum(f[i-a[k]])1<=k<=n;
实用精品课件PPT
13
【程序实现】
实用精品课件PPT
14
【例题4】滑雪
问题描述:
Michael喜欢滑雪。这并不奇怪, 因为滑雪的确很刺激 。可是为了获得速度,滑的区域必需向下倾斜,而且 当你滑到坡底,你不得不再次走上坡或者等待升降机 来载你。Michael想知道在一个区域中最长的滑坡。区 域由一个二维数组给出。数组的每个数字代表点的高 度。
手镯后能为自己增加的魅力值D_i(1 <= D_i <= 100)
。由于贝茜只能忍受重量不超过M(1 <= M <=
12,880)的手镯,她可能无法把所有喜欢的宝石都镶上
。于是贝茜找到了你,告诉了你她所有宝石的属性以
及她能忍受的重量,希望你能帮她计算一下,按照最
合理的方案镶嵌宝石的话,她的魅力值最多能增加多
第二行是一个整数n,表示物品数。
接下来n行,每行一个正整数(不超过10000),分别表示这n个物品的各自 体积。
输出
一个整数,表示箱子剩余空间。实用精品课件PPT
2
样例输入 24 6 8 3 12 7 9 7 样例输出 0。
实用精品课件PPT3【问题分析】 状态: f[i,j]代表前i个物体装在j重的包里的最优解 方程: f[i,j]=max(f[i-1,j],f[i-1,j-a[i]);
实用精品课件PPT
4
【程序实现】
实用精品课件PPT
5
【例题2】宝石手镯(usaco)
问题描述:
贝茜在珠宝店闲逛时,买到了一个中意的手镯。很自
然地,她想从她收集的N(1 <= N <= 3,402)块宝石中
选出最好的那些镶在手镯上。对于第i块宝石,它的重
量为W_i(1 <= W_i <= 400),并且贝茜知道它在镶上
12
【样例输出】
3
实用精品课件PPT
7
【问题分析】 状态: f[i,j]代表前i个宝石戴在j重的手上获得的最大魅力
值 方程: f[i,j]=max(f[i-1,j],f[i-1,j-a[i])+b[i];
实用精品课件PPT
8
【程序实现】
实用精品课件PPT
9
【例题3】奶牛打工
问题描述:
奶牛Bassie去DQ打工,遇到一个客人给了一张好大面 值的钞票,于是Bassie不得不为了给这位顾客找零而面 对这样一个问题:现在店里一共有n种硬币,对这些不 同种的硬币进行编号,编号为i的硬币面值为a[i] 。因 为奶牛的手指头是有限的,因此他只能向你求助啦。( 已知总需找零数为 total)(1<=total<=1000,1<=n<=1000,1<=a[i]<=3 00)求一共有多少种解决方案?
0 x 50 0 x 25 0 x 10 1 x 5 78 x 1
0 x 50 0 x 25 0 x 10 2 x 5 73 x 1
0 x 50 0 x 25 0 x 10 3 x 5 68 x 1
0 x 50 0 x 25 0 x 10 4 x 5 63 x 1
0 x 50 0 x 25 0 x 10 5 x 5 58 x 1
少。
实用精品课件PPT
6
【输入格式】
输入的第一行有两个整数N(1 <= N <= 3,402)和M(1 <=
M <= 12,880),接下来的N行每行两个整数,分别表示宝石
重量和魅力值。
【输出格式】
输出只包括一行,这一行只包含一个整数,表示魅力值最多
能增加多少。
【样例输入】
3 70
71 100
69 1
实用精品课件PPT
10
【输入格式】
第一行为硬币总值total和硬币种类数n。
以下n行为数值a[i],i=1,2,3...n
【输出格式】
一行,解决方案数
【样例输入】
83 5
50
25
10
5
1
【样例输出】
159
实用精品课件PPT
11
【样例说明】 0 x 50 0 x 25 0 x 10 0 x 5 83 x 1
【样例输出】
25
实用精品课件PPT
17
【问题分析】
一个类似最长下降序列,穷举每个最低点。用记忆化搜索写 比较方便。
实用精品课件PPT
18
【程序实现】
实用精品课件PPT
19
【例题5】最小代价子母树
问题描述:
有n堆沙子排成一排,每堆沙子有一个数量,例如:13 7 8 16 21 4 18。任 意2堆相邻的沙子可以进行合并,将两堆沙子合并为一堆时,两堆沙子数 量的和称为合并这两堆沙子的代价。经过不断的归并,最后将这些沙子 归为一堆,而全部归并代价的和称为总代价。例如上列数,其中2种归并 方案的代价为:
0 x 50 0 x 25 0 x 10 6 x 5 53 x 1
0 x 50 0 x 25 0 x 10 7 x 5 48 x 1
0 x 50 0 x 25 0 x 10 8 x 5 43 x 1
0 x 50 0 x 25 0 x 10 9 x 5 38 x 1
0 x 50 0 x 25 0 x 10 10 x 5 33 x 1