动态规划作业汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业就是写代码测测的题目
作业1 2004.t3合唱队形
作业2 2008.t1能量项链
作业3 2007.t3矩阵取数
作业4奶牛食物
农民John购买了一处肥沃的矩形牧场,分成M*N(1<=M<=12;1<=N<=12)个格子。他想在那里的一些格子中种植美味的玉米。遗憾的是,有些格子区域的土地是贫瘠的,不能耕种。
精明的FJ知道奶牛们进食时不喜欢和别的牛相邻,所以一旦在一个格子中种植玉米,那么他就不会在相邻的格子中种植,即没有两个被选中的格子拥有公共边。他还没有最终确定哪些格子要选择种植玉米。
作为一个思想开明的人,农民John希望考虑所有可行的选择格子种植方案。由于太开明,他还考虑一个格子都不选择的种植方案!请帮助农民John确定种植方案总数。
【输入格式】
第1行:两个用空格分隔的整数M和N
第2..M+1行:第i+1行描述牧场第i行每个格子的情况,N个用空格分隔的整数,表示这个格子是否可以种植(1表示肥沃的、适合种植,0表示贫瘠的、不可种植)
【输出格式】
一个整数:FJ可选择的方案总数除以100,000,000的余数。
【输入样例】
2 3
1 1 1
0 1 0
【输出样例】
9
【输出解释】
给可以种植玉米的格子编号:
1 2 3
0 4 0
只种一个格子的方案有四种(1,2,3或4),种植两个格子的方案有三种(13,14或34),种植三个格子的方案有一种(134),还有一种什么格子都不种。4+3+1+1=9。
作业5 2010.t2乌龟棋
作业6 2011.d1.t2选择客栈
作业7 2013.d2.t2花匠(有其它方法)
作业8 2015.d2.t1跳石头(可以二分答案)
作业9 2015.d2.t2子串
作业10 2006.t2预算方案
作业11 2014.d1.t3飞扬的小鸟
作业12 Wave
Description
波在不同的介质中的传播速度是不一样的。真空中波速都是3*108m/s,而在液体介质中的波速会比真空中的波速小,并且在不同的液体介质中波速不一样。我们将一个液体表面分成N * M块相同大小的正方形格子,每个格子中只包含一种液体介质。现在我们想知道,从某个波源传出去的波能以不变的波速延伸到多大的以波源为中心的大正方形内。假定所有大正方形的边都是平行于坐标轴的。
Input Format
输入文件第一行包含三个整数N、M和Q,分别表示液体表面分成的正方形格子的行数和列数,以及询问的个数。接下来是一个N * M的矩阵,其中每个元素包含一个小写字母表示相应各自内的介质,不同的字母表示不同的介质。接下来Q行每行用两个数X和Y描述一个询问,表示询问以第X行第Y列为波源的波能以不变的波速延伸到的最大的以波源为中心的大正方形的边长。注意行的标号从0到N-1,列的标号从0到M-1。
Output Format
输出文件包括Q行,每行包含一个整数,即相应问题的答案。
Sample Input
5 5 3
abbaa
abbaa
aaaaa
aaaaa
aaaaa
1 2
1 4
3 2
Sample Output
1
1
3
Hint
对于30%的数据,有1 ≤ N ≤ 50,1 ≤ Q ≤ 500;
对于100%的数据,有1 ≤ N ≤ 1000,1 ≤ Q ≤ 10000
作业13 2008.t3传纸条
作业14免费馅饼
【问题描述】
SERKOI最新推出了一种叫做“免费馅饼”的游戏:游戏在一个舞台上进行。舞台的宽度为W 格,天幕的高度为H格,游戏者占一格。开始时游戏者站在舞台的正中央,手里拿着一个托盘。下图为天幕的高度为4格时某一个时刻游戏者接馅饼的情景。
游戏开始后,从舞台天幕顶端的格子中不断出现馅饼并垂直下落。游戏者左右移动去接馅饼。游戏者每秒可以向左或向右移动一格或两格,也可以站在原地不动。
馅饼有很多种,游戏者事先根据自己的口味,对各种馅饼依次打了分。同时,在8-308电脑的遥控下,各种馅饼下落的速度也是不一样的,下落速度以格/秒为单位。
当馅饼在某一秒末恰好到达游戏者所在的格子中,游戏者就收集到了这块馅饼。
写一个程序,帮助我们的游戏者收集馅饼,使得所收集馅饼的分数之和最大。
【输入文件】
输入文件的第一行是用空格隔开的两个正整数,分别给出了舞台的宽度W(1到99之间的奇数)和高度H(1到100之间的整数)。
接下来依馅饼的初始下落时间顺序给出了所有馅饼的信息。每一行给出了一块馅饼的信息。由四个正整数组成,分别表示了馅饼的初始下落时刻(0到1000秒),水平位置、下落速度(1到100)以及分值。游戏开始时刻为0。从1开始自左向右依次对水平方向的每格编号。
输入文件中同一行相邻两项之间用一个或多个空格隔开。
【输出文件】
输出文件的第一行给出了一个正整数,表示你的程序所收集的最大分数之和。
其后的每一行依时间顺序给出了游戏者每秒的决策。输出0表示原地不动、1或2表示向右移动一步或两步、-1 或-2表示向左移动一步或两步。输出应持续到游戏者收集完他要收集的最后一块馅饼为止。
【输入样例】
3 3
0 1 2 5
0 2 1 3
1 2 1 3
1 3 1 4
【输出样例】
12
-1
1
1
作业15 2014.d1.t2联合权值(要求用DP解答)
作业16 2014.d2.t2寻找道路(SPFA)
NOIP动规真题2004-2015(时间顺序排列)
2004.t3合唱队形(chorus.pas/dpr/c/cpp)
【问题描述】
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。
合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足T1<...
你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。
【输入文件】
输入文件chorus.in的第一行是一个整数N(2<=N<=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高(厘米)。
【输出文件】
输出文件chorus.out包括一行,这一行只包含一个整数,就是最少需要几位同学出列。
【样例输入】
8
186 186 150 200 160 130 197 220
【样例输出】
4
【数据规模】对于50%的数据,保证有n<=20;对于全部的数据,保证有n<=100。