动态规划
include_zzy
真正不羁的灵魂不会真的去计较什么,因为他们的内心深处有腐王般的骄傲
展开
-
[枚举][dp]JZOJ P3601——Tree
Description下图展示了一种二叉树:这种二叉树的每个叶子节点上都标注了权值,而且具有以下有趣的特性:每个非叶子节点,其左右子树叶子节点的权值之和相等。我们称这种二叉树叫平衡二叉树。我们将一棵平衡二叉树叶子节点的权值从左到右列出来,假如这个权值序列是另一个序列A的子序列,我们称这棵平衡二叉树“隐藏”在序列A当中。在本题中,我们称一个序列S2是另一个序列S1的子序列,当且仅当S原创 2018-01-29 18:46:43 · 305 阅读 · 0 评论 -
2017.6.4 入门组 NO.1——k好数
数据1<=n<=1000000,时间复杂度最大O(1000000*6) 暴力足够了,于是,便开始码暴力: 循环枚举i,将i转为字符串,每一位的判断是否超过k:如果每一位都没超过就+1代码如下:var n,k,i,j,o,l:longint; s:string;begin readln(n,k); for i:=1 to n do begin原创 2017-06-05 19:16:24 · 392 阅读 · 0 评论 -
2017.6.4 入门组 NO.7——K上升段
Description对于自然数1..n的一个排列A[1..N] 可以划分为若干个单调递增序列。每个单调递增序列由连续元素A[st..ed]组成,且满足以下条件: 1<=st,ed<=n; A[i]ed=n 或者 A[ed] > A[ed+1]; 例如:排列1 2 4 5 6 3 9 10 7 8 可划分为3个单调递增序列 1 2 3 4 5 6;3 9 10 ;7 8 ; 所以我们原创 2017-06-05 20:08:21 · 652 阅读 · 0 评论 -
2017.6.4 入门组 NO.5——序列
f[i,j*k]:=f[i,j*k]+f[i-1,j]; 设f[i,j]表示前i个,当那一位数字为j*k的时候的最大好序列个数代码如下:const maxn=2000; p=1000000007;var f:array [1..maxn,1..maxn] of longint; i,j,k,n,m:longint;原创 2017-06-05 19:49:19 · 324 阅读 · 0 评论 -
洛谷 1855——榨取kkksc03
题目描述 洛谷的运营组决定,如果一名oier向他的教练推荐洛谷,并能够成功的使用(成功使用的定义是:该团队有20个或以上的成员,上传10道以上的私有题目,布置过一次作业并成功举办过一次公开比赛),那么他可以浪费掉kkksc03的一些时间的同时消耗掉kkksc03的一些金钱以满足自己的一个愿望。Kkksc03的时间和金钱是有限的,所以他很难满足所有同学的愿望。所以他想知道在自己的能力范围内,最多可以原创 2017-04-27 21:15:53 · 1243 阅读 · 0 评论 -
洛谷 1417——烹调方案【动规】
题目背景 由于你的帮助,火星只遭受了最小的损失。但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星。不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的食物准备填饱肚子。gw希望能在T时间内做出最美味的食物,但是这些食物美味程度的计算方式比较奇葩,于是绝望的gw只好求助于你了。 题目描述 一共有n件食材,每件食材有三个属性,ai,bi和ci,如原创 2017-04-27 20:58:32 · 423 阅读 · 0 评论 -
SSL 1589——传纸条
Description 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从原创 2017-04-26 21:15:12 · 323 阅读 · 0 评论 -
SSL 1028——数字游戏
Description 丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分,各部分内的数字相加,相加所得的m个结果对10取模后再相乘,最终得到一个数k。游戏的要求是使你所得的k最大或者最小。 例如,对于下面这圈数字(n=4,m=2): 当原创 2017-04-26 20:37:49 · 462 阅读 · 0 评论 -
luogu 1005——矩阵取数游戏【dp】【高精度】
题目描述帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下:1.每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素;2.每次取走的各个元素只能是该元素所在行的行首或行尾;3.每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走的元素值*2^i,其中i表示第i次取数(从1开始编号);4.游戏结束总得分为m次取原创 2017-05-27 18:58:47 · 408 阅读 · 0 评论 -
JZOJ 4.22 2131——【2017.4.21普及】数字游戏
题目描述 小W发明了一个游戏,他在黑板上写出了一行数字a1,a2,a3,……,an,然后给你M个回合的机会,每回合你可以从中选择一个数字擦去它,接着剩下来的每个数字ai都要递减一个值bi,即a1减掉b1,a2减掉b2,….。如此重复M个回合,所有你擦去的数字之和就是你所得的分数。 小W和他的好朋友小Y玩了这个游戏,可是他发现,对于每个给出的an和bn序列,小Y的得分总比他高,所以他就很不服原创 2017-04-25 20:59:57 · 542 阅读 · 0 评论 -
SSL 2299——护卫队
Description护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥。因为街道是一条单行道,所以任何车辆都不能超车。桥能承受一个给定的最大承载量。为了控制桥上的交通,桥两边各站一个指挥员。护卫车队被分成几个组,每组中的车辆都能同时通过该桥。当一组车队到达了桥的另一端,该端的指挥员就用电话通知另一端的指挥员,这样下一组车队才能开始通过该桥。每辆车的重量是已知的。任何一组车队 的重量之和原创 2017-04-21 21:51:30 · 396 阅读 · 0 评论 -
SSL 2290——潜水员
Description潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少? 例如:潜水员有5个气缸。每行三个数字为:氧,氮的(升)量和气缸的重量: 3 36 120 10 25原创 2017-04-21 19:07:40 · 660 阅读 · 0 评论 -
SSL 2301——混合背包
Description背包体积为V ,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品要么至多取1件,要么至多取mi件(mi > 1) , 要么数量无限 , 在所装物品总体积不超过V的前提下所装物品的价值的和的最大值是多少?Input第一行两个数V,N下面N行每行三个数Vi,Wi,Mi表示每个物品的体积,价值与数量,Mi=1表示至多取一件,Mi>1表示至多取Mi件,Mi=0表示数量无限Ou原创 2017-04-21 18:51:02 · 412 阅读 · 0 评论 -
SSL 1376——完全背包
Description设有n 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和为最大。Input第一行:两个整数,M(背包容量,M<= 200)和N(物品数量,N<= 30); 第2..N+1 行:每行二个整数Wi,Ui,表示每个物品的重量和价值。Output仅一行原创 2017-04-21 18:07:07 · 355 阅读 · 0 评论 -
SSL 2289——庆功会
Description为了庆贺班级在校运动会上取得第一名的成绩,班主任决定开一场庆功会,为此拔款购买奖品奖励运动员,期望拔款金额能购买最大价值的奖品,可以补充他们的精力和体力。Input第一行二个数n(n<=500),m(m<=5000),其中n代表希望购买的物品的种数,m表示班会拨的钱数。 接下来n行,每行3个数,v、w、s,分别表示第I种物品的价格、价值(价格 与 价值 是不同的概念)和购买原创 2017-04-21 18:27:35 · 414 阅读 · 0 评论 -
JZOJ 1331——超级教主【dp】
Description LHX教主很能跳,因为Orz他的人太多了。教主跳需要消耗能量,每跳1米就会消耗1点能量,如果教主有很多能量就能跳很高。 教主为了收集能量,来到了一个神秘的地方,这个地方凡人是进不来的。在这里,教主的正上方每100米处就有一个能量球(也就是这些能量球位于海拔100,200,300……米处),每个能量球所能提供的能量是不同的,一共有N个能量球(也就是最后一个能量球在N×1原创 2017-05-03 21:14:21 · 509 阅读 · 0 评论 -
JZOJ 2113——括号问题
题目描述众所周知,纪中的信息学竞赛是很强的。专家为看看纪中的学生是否名符其实,给几个初一的学生(当然包括信息学小牛的你)出了几个问题来考考他们。其中一个问题是:在N个数乘积K1K2……KN中插入足够的括号,使得每一个乘积恰好是两个因子的乘积。例如K1K2K3K4能被括号括成: ((K1K2)(K3K4)) (((K1K2)K3)K4) (K1((K2K3)K4)) …… 在加括号的过程中不原创 2017-05-11 16:15:39 · 439 阅读 · 0 评论 -
JZOJ 4.15 1667——【AHOI2009】中国象棋【dp】
Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。请问有多少种放置方法?中国象棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N,M,中间用空格分开. Output 输出所有的方案数,由于值比较大,输出其mod 9999973Sample Input1 3Sample Output7 Hint 除了在3个格子中都放满炮的的原创 2017-04-15 16:12:04 · 545 阅读 · 0 评论 -
2017.7.11 C组总结
NO.1题目描述:知道n+1(包括Oliver)个人的语文、数学、英语成绩,求出Oliver的数学、语文、英语分别和最高的分数差多少?思路:高精+排序 考试一瞟数据最长的成绩<30位,便无奈至极,于是手动码起了高精 因为他只用求出与最大的分差,所以可以用排序,将三科的最大成绩求出来 再做三次高精减就可以A了 时间原创 2017-07-12 08:07:19 · 375 阅读 · 0 评论 -
2017.7.12 C组总结
NO.1题目描述: n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离xi,但不知道它当前的朝向。请计算各种情况当中,所有蚂蚁落下竿子所需的最短时间和最长时间。思路:代码:#include<iostream>#include<string.h>#incl原创 2017-07-12 21:31:03 · 480 阅读 · 0 评论 -
[排序][二分][dp]JZOJ 2747 捡金子
Description从前有一个迷宫,迷宫的外形就像一棵带根树,每个结点(除了叶子结点外)恰好有K个儿子。 一开始你在根结点,根结点的K个儿子分别标记为‘A’, ‘B’, ‘C’….,而结点‘A’的K个儿子结点分别标记为‘AA’,‘AB’,‘AC’……,依此类推。这棵树一共有L层。 现在你事先知道M个结点中有金子,并且你可以派出N个机器人去收集金子。首先你可以分别指定每一个机器人的目标结点原创 2018-01-18 16:24:45 · 346 阅读 · 0 评论 -
[排序][dp][二分]JZOJ 2746 选数排列
传送门Description 给出N个数,我们需要选择其中的R x C个数,,把它们填入一个R x C的矩阵(R行C列)中。 我们先定义一个函数D(i)代表第i行中最大的数和最小的数之差。对于整个矩阵,定义F为矩阵中D(i) (1我们需要F的值最少,你能求出最少可能达到的F值是多少吗? 题解首先,我们可以将读入n个数从小到大排序用二分求出可能出现的情况那么怎么判断原创 2018-01-18 16:12:09 · 306 阅读 · 0 评论 -
[dp]洛谷 P1373 小a和uim之大逃离
题目背景小a和uim来到雨林中探险。突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声。刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个披头散发、青面獠牙的怪物,低沉着声音说:“呵呵,既然你们来到这,只能活下来一个!”。小a和他的小伙伴都惊呆了!题目描述瞬间,地面上出现了一个n*m的巨幅矩阵,矩阵的每个格子上有一坨0~k不等原创 2018-01-30 21:00:14 · 362 阅读 · 0 评论 -
JZOJ 8.15 B组总结
NO.1 平台Description Alice要搭建平台,平台不能漂在空气中,必须要有两根柱子支撑,具体地说,每个平台的两端必须由一根柱子支撑,柱子的另一端在地板或另一个平台上。 给你平台的放置位置(如下左图所示),每个平台的位置由它的高度(离地面的垂直距离)和水平方向两个端点的坐标决定,每根柱子必须安放在离端点0.5个单位的位置,如下右图所示。 编程计算所需柱子总长是多少。原创 2017-08-15 19:48:03 · 524 阅读 · 0 评论 -
JZOJ 8.14 B组总结
NO.1Description我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以10原创 2017-08-14 20:52:22 · 670 阅读 · 0 评论 -
JZOJ 2017.8.6 B组总结
第一题题目大意:求一个有重量限制的天平最多可以放重量多少的砝码 题目链接:https://jzoj.net/senior/#main/show/1252思路:DFS+剪枝+前缀和 先记录一波**前缀和**s[i] 那么我们倒过来搜,搜到第i个,如果前面的全取了都不超过限制,那么直接加上,退出(可以用前缀和实现) 否则枚举i~1,看能原创 2017-08-06 15:55:00 · 404 阅读 · 0 评论 -
JZOJ 8.10 B组总结
NO.1Description对于两个整数k 和m,如果k 和m 的最大公约数为1,则k 和m 互质。给出两个正整 数n 和m(m≤n),定义f(n,m)为1~n!中与m!互质的数的个数。其中n!=1*2*3*..*(n-1)*n。 Task:给定n 和m,要求计算f(n,m)。Input本题设多组数据。 输入文件的第一行有一个整数T(1≤T≤100000),表示有T 组数据。 接下来有T原创 2017-08-10 21:03:56 · 659 阅读 · 1 评论 -
JZOJ 8.8 B组总结
NO.1Description在一个长方型框子里,最多有N(0≤N≤6)个相异的点。在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其它油滴或者框子的边界。必须等一个油滴扩展完毕才能放置下一个油滴。那么应该按照怎样的顺序在这N个点上放置油滴,才能使放置完毕后所有油滴占据的总体积最大呢?(不同的油滴不会相互融合) 注:圆的面积公式V=pi*r*r,其中r为圆的半径。Input第原创 2017-08-08 16:32:58 · 444 阅读 · 0 评论 -
JZOJ 8.7 B组总结
第一题Description 有n堆石子,从1~n编号,其石子总数为2^k。 每次可以选择两堆石子a和b,满足a堆的石子数不比b堆的多,记c为a的石子数。然后可以进行以下操作:从b堆石子中拿c这么多的石子到a堆中。 要求你给出一个方案,使得最后有一堆石子的数目达到2^k。Input 第一行两个正整数n,k。 第二行n个非负数ai。 Output原创 2017-08-07 16:41:02 · 485 阅读 · 0 评论 -
2017.7.9 C组 总结
NO.1题目描述: 给定n个数,{x1,x2,…,xn}要求从中选出至少一个数,至多n个数,使得乘积之和最大。思路:强枚 记录下最大的小数,和小数的个数、”0”的个数 再做一波判断就好了代码:var max,n,i,x,w,k:longint; ans:int64;begin assign(input,'max.in'); as原创 2017-07-09 15:55:33 · 851 阅读 · 0 评论 -
2017.7.8 C组总结
NO.1题目描述: 小x和小y是好朋友。小y的成绩很差,以至于 GPA(平均绩点)在系内倒数。系内一共有 N 位同学,每位同学有自己的 GPA,以及已修学分数,定义 GPT = GPA ×已修学分数。小x为了帮助小y提高成绩,给小y提了一个要求:新学期的 GPA 要超过系内排名第 K 位的同学。 为了帮助理解,给出一个例子: 现在给出系里面每位同学的 GPT(只有一位小原创 2017-07-08 16:13:01 · 702 阅读 · 0 评论 -
2017.7.7 C组总结
NO.1题目描述: 给定一个长度为N的序列a,对于每一个数都可选或不选,把选出的数有序组成一个新的序列b,使b序列的“和谐数”最大。 一个序列的和谐数如下定义:对于位置i,如果第奇数次选的则加上bi,偶数次选的则减去bi 注意:新的序列b必须是从左到右依次在a序列选择的,即不能打乱顺序。思路:DP 设f[i,0/1]表示第i个位置选(为0)或不选(为1)的“和谐数”最大原创 2017-07-08 08:17:40 · 514 阅读 · 0 评论 -
2017.7.6 C组总结
NO.1题目描述: Mirko 最近发现了一个古老的游戏。这个游戏的屏幕有N列。在屏幕的底部,有个占M(M< N)列的船。在玩这个游戏的过程中,我们可以左右移动这条船,但是这条船必须时刻完整的在屏幕里面。这条船开始的时候是在最左边的。 有一些苹果从这个屏幕的顶部掉下来,每个苹果会从屏幕N列中的某一列的顶部掉下来,垂直下落直到到达屏幕的底部。当前一个苹果掉落在底部以后,后一个苹果原创 2017-07-06 21:13:27 · 589 阅读 · 0 评论 -
jzoj 高中 3505——积木
Description小A正在搭积木。有N个位置可以让小A使用,初始高度都为0。小A每次搭积木的时候,都会选定一个拥有相同高度的区间[A..B],然后将位置[A+1..B-1]上的所有积木的高度加一。不幸的是,小A把积木搭好之后没多久,小A调皮的弟弟就将其中若干个位置上的积木弄倒了。小A想知道他原来的积木是如何摆放的,所以他求助于你,请你告诉他原来有多少种可能的摆法。 Input 第一行为一原创 2017-07-15 21:54:42 · 578 阅读 · 0 评论 -
jzoj 高中 1286——太空电梯
Description 奶牛们想用K(1<=K<=400)中石块制造一个太空电梯去太空旅行,每种石块有自己的高度h_i(1<=h_i<=100)和数量c_i(1<=c_i<=10),为了避免宇宙射线的干扰,每种石块不能超过最高可以达到的高度a_i(1<=a_i<=40000)。 帮助奶牛用石块堆积一个最高的太空电梯。Input 第1行:一个整数K 第2到K+1行:每行3个用空格隔开的原创 2017-07-15 21:42:54 · 781 阅读 · 0 评论 -
2017.7.15 C组总结
NO.1题目描述:有n首曲子,每一次播放值最大的音乐,每播完一首音乐,它的值平均分给其他n-1首曲子,如果不能平分,那么多出来的,顺次分给编号靠前的曲子思路:暴力模拟 每次求出最大值,用两个变量记录它能平分的值和多出来的值 然后循环,枚举1~n, ①如果l<>j就是不为本身,而且v>0还有剩的数原创 2017-07-15 15:50:09 · 432 阅读 · 2 评论 -
2017.7.14 C组总结
NO.1题目描述:有n个长方形,给出它的左下角和右上角,求出q个点被多少个长方形覆盖(平行于x轴和y轴)思路:差分+前缀和 代码:var n,i,x,y,x1,y1,j,q:longint; a,f:array[0..3001,0..3001]of longint;begin assign(input,'square.in'); assign(output原创 2017-07-14 21:57:13 · 406 阅读 · 0 评论 -
JZOJ 4.1 C组 【NOIP动态规划专题】电子眼
Description中山市石一个环境优美、气候宜人的小城市。因为城市的交通并不繁忙,市内的道路网很稀疏。准确地说,中山市有N条马路和N个路口,每条马路连接两个路口,每两个路口之间最多只有一条马路。作为一条交通网络,显然每两个路口之间都是可达的。为了更好地管理中山市的交通,市长决定在一些路口加装电子眼,用来随时监视路面情况。这些装在路口的电子眼能够监视所有连接到这个路口的马路。现在市长想知道最少需要原创 2017-04-02 11:50:56 · 693 阅读 · 0 评论 -
JZOJ 4.2 C组 交错匹配【dp】
题目描述有两行自然数,UP[1..N],DOWN[1..M],如果UP[I]=DOWN[J]=K,那么上行的第I个位置的数就可以跟下行的第J个位置的数连一条线,称为一条K匹配,但是同一个位置的数最多只能连一条线。另外,每个K匹配都必须且至多跟一个L匹配相交且K≠L!现在要求一个最大的匹配数。例如:以下两行数的最大匹配数为8 输入从文件CROSS. in读入数据,第一行有两个正整数N和M。第二行N个原创 2017-04-02 14:22:16 · 997 阅读 · 0 评论 -
JZOJ 4.2 C组 打鼹鼠
题目描述鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果i时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器人每一时刻只能够移动一格或停留在原地不动。机器人的移动是指从当前所处的网格移向原创 2017-04-02 14:13:12 · 504 阅读 · 0 评论