zh成功的在他人的帮助下获得了与小姐姐约会的机会,同时也不用担心被非"川大"的女票发现了,可是如何选择和哪些小姐姐约会呢?zh希望自己可以循序渐进,同时希望挑战自己的极限,我们假定每个小姐姐有一个"攻略难度值" 从攻略成功第一个小姐姐开始,zh希望每下一个需要攻略的小姐姐难度更高,同时又希望攻略难度值之和最大,好了,现在小姐姐们排成一排,zh只能从左往右开始攻略,请你帮助他找到最大的攻略难度和 Input 多组输入,每组数据占一行,每行一个整数n表示小姐姐个数,接着…
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Description Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a…
Problem Description Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it to you now. The game can be played by two or more than t…
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32561    Accepted Submission(s): 14689 Problem Description Nowadays, a kind of chess game called “Super Jumping!…
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 50078    Accepted Submission(s): 23221 Problem Description Nowadays, a kind of chess game called “Super Jumping!…
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1087 Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 41523    Accepted Submission(s): 19239 Problem Descript…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1087 题目大意: 求递增子序列最大和 思路: 直接dp就可以求解,dp[i]表示以第i位结尾的递增子序列最大和,初始化dp[i] = a[i],转移方程dp[i] = max(dp[i], a[i] + dp[j])如果j < i && a[j] < a[i] #include<cstdio> #include<cstring> #include<i…
题目意思: http://acm.hdu.edu.cn/showproblem.php? pid=1087 此题的意思求最长上升子序列的和. 题目分析: 在求最长上升子序列的时候,不在保存最长的个数,而是保存他们的和就可以. AC代码: /** *最长上升子序列问题+保存得到的分数 */ #include<iostream> #include<cstdio> #include<map> #include<cstring> #include<string…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 分析:简单dp:dp[i] = max (dp[i], dp[j] + a[i]) 1 #include<iostream> 2 #include<sstream> 3 #include<cstdio> 4 #include<cstdlib> 5 #include<string> 6 #include<cstring> 7 #inc…
以下引用自:http://www.cnblogs.com/Lyush/archive/2011/08/31/2161314.html沐阳 该题可以算是一道经典的DP题了,题中数据是这样的.以 3 1 3 2 为例,首先 3 代表有三个数, 后面给出三个数,求该串的一个子串,使得其值一直是递增的,而且要求输出最大的和值.可以论证,该子串一定会是最长上升子串,因为,如果一个串还能够插入一个元素的话,那么这个串就一定不是最大的和了.而这个最长的上升子串还满足是所有同样长度的子串中最优的,和值最大. 具…
传送门:HDU_1087 题意:现在要玩一个跳棋类游戏,有棋盘和棋子.从棋子st开始,跳到棋子en结束.跳动棋子的规则是下一个落脚的棋子的号码必须要大于当前棋子的号码.st的号是所有棋子中最小的,en的号是所有棋子中最大的.最终所得分数是所有经过的棋子的号码的和. 思路:读完题之后知道这是一个最长上升子序列的题目.因为之前刚刚看过牛客网上一节讲解最长上升子序列的视屏,所以一上来就找准了方向,but我只知道怎么求最长上升子序列的长度啊,和怎么求???于是自己想方法开始求和,然后就wa掉了一个上午.…
  Virus  We have a log file, which is a sequence of recorded events. Naturally, the timestamps are strictly increasing. However, it is infected by a virus, so random records are inserted (but the order of original events is preserved). The backup log…
动态规划(Dynamic Programming, DP)是一种用来解决一类最优化问题的算法思想,简单来使,动态规划是将一个复杂的问题分解成若干个子问题,或者说若干个阶段,下一个阶段通过上一个阶段的结果来推导出,为了避免重复计算,必须把每阶段的计算结果保存下来,方便下次直接使用. 动态规划有递归和递推两种写法.一个问题必须拥有重叠子问题和最优子结构才能使用动态归来来解决,即一定要能写出一个状态转移方程才能使用动态规划来解决. 最大连续子序列和: 令状态dp[i]表示以A[i]作为末尾的连续序列的…
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1030 题目大意: 给定两个字符串的长度和内容,求最长公共子序列. 题目思路: [动态规划] 求最长公共子序列.f[i][j]表示第一个串匹配到i,第二个串匹配到j的最长长度. // //by coolxxx // #include<iostream> #include<algorithm> #include<string> #include<ioman…
由于种种原因(看这一章间隔的时间太长,弄不清动态规划.分治.递归是什么关系),导致这章内容看了三遍才基本看懂动态规划是什么.动态规划适合解决可分阶段的组合优化问题,但它又不同于贪心算法,动态规划所解决的问题的各个阶段是相互关联的,一个阶段的选择会影响其它阶段的选择.动态规划有两个优点:一是可以排除一些解,另一个是可以帮助我们系统化的解决问题,使问题变得清晰. 下面就说一下我对动态规划.分治.递归这三者的理解.分治算法是将原问题分解成两个较小的问题,而动态规划是将问题分成不同的阶段(步骤),当然,…
最少拦截系统 HDOJ-1257 我做这题的思路就是采用暴力或者贪心.也就是每次循环选出从第一个未被选择的元素开始,依次把后面可以选择的元素作为一个系统.最后统计可以有多少个系统. 还有人的思路就是利用动态规划的思路,求解最长上升子序列,也就是反着题意来求.因为在这个最长上升子序列中,所有的元素不可能在同一个拦截系统中,所以子序列的长度就是最后的答案,也就是拦截系统的个数 https://blog.csdn.net/qq_29963431/article/details/49081409 还有博…
动态规划 P1439 [模板]最长公共子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 给出 1,2,-,n 的两个排列 P1 和 P2 ,求它们的最长公共子序列. 输入格式 第一行是一个数 n. 接下来两行,每行为 n 个数,为自然数 1,2,-,n 的一个排列. 输出格式 一个数,即最长公共子序列的长度. 输入输出样例 输入 #1 5 3 2 1 4 5 1 2 3 4 5 输出 #1 3 说明/提示 对于 50% 的数据, n≤1000: 对于 100%…
layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathjax: true - kuangbin - 动态规划 传送门 A.HDU1024 Max Sum Plus Plus 题意 给你N个数,然后你分成M个不重叠部分,并且这M个不重叠部分的和最大. 思路 动态规划最大m字段和,dp数组,dp[i][j]表示以a[j]结尾的,i个字段的最大和 两种情况:1.第a[j…
Robberies 点击打开链接 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱  最脑残的是把总的概率以为是抢N家银行的概率之和- 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋);  正确的方程是:f[j]=max(f[j],f[j-q[i].money]*q[i].v)  当中,f[j]表示抢j块大洋的最大的逃脱概率,条件是f[j-q[i].money]可达,也就…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 题意就是给你n个数,找出某个序列的最大和,这个序列满足依次增大的规则: 哎,这个题之前做过,但是一点印象都没有但是自己写出来了,估计当时写的时候也不知道为什么这样写吧,事实证明,题做多了自然就懂了: 我是拿做上升子序列的想法来做的... #include<stdio.h> #include<string.h> #include<algorithm> using nam…
HDU 1024第一遍水过,没有体会到这个题的奥妙,思考了很久终于体会了.大概意思是求把序列分成m段的子序列,并不一定要覆盖完,求子序列和的最大值我们首先要写出基本的动态转移方程: DP:dp[ i ] [ j ] =max ( dp[ i - 1 ] [ 1~j-1 ]+a[ j ],dp[ i ] [ j - 1 ]+a[ j ] ) 其中dp[ i ][ j ]其中i,j表示,第i个集合,取前j 个数. 意思是,dp[ i ][ j ]是由两个状态转移过来的,一个是把新的数归入i集合,还有…
多态:同一个对象,在不同时刻表现出来的不同形态 例如: 猫 cat = new 猫(); 动物 animal = new 猫(); 这里的猫在不同时刻表现出来不同的形态,这就是多态 多态的前提和体现:继承/实现方法.方法重写.父类引用指向子类对象 多态访问成员的特点: 成员变量:编译看左边,运行看左边 成员方法:编译看左边,运行看右边 // Animal类 public class Animal { public int age = 30; public void eat(){ System.o…
Problems     # Name     A Addictive Bubbles1 addictive.in / addictive.out 2 s, 256 MB    x438 B Blind Problem Solving1 standard input/output 2 s, 256 MB    x124 C Caravan Robbers1 caravan.in / caravan.out 2 s, 256 MB    x178 D Disjoint Regular Expres…
CharacterMotor.cs using UnityEngine; using System.Collections; /** * @Author : www.xuanyusong.com */ [RequireComponent(typeof(CharacterController))] [AddComponentMenu("Character/Character Motor")] public class CharacterMotor : MonoBehaviour { //…
using System; using System.Collections; using UnityEngine; // This class just convert from CharacterMotor.js to C# [RequireComponent(typeof(CharacterController))] [AddComponentMenu("Character/Character Motor")] public class CharacterMotor : Mono…
兔子跳跃 (jumping.pas/c/cpp) [问题描述] 兔子常常感到孤独,所以当他们决定出去走走,去见见他们的朋友,他们跳的很快. Iris正走在一条无限长的直线道路上.这条道路上点的编号...,-3,-2,-1,0,1,2,3,...从西到东.Iris的家是在0点上,而她想要见的朋友在点1000000001.她是兔子当然只能通过移动跳跃前行,她有两个跳跃类型:小跳和大跳.当她在点x,通过一小跳,她可以移动到点(x + 2)或(x - 2).通过一个大跳跃,她可以移动到点(x + lar…
最近在做与目标检测模型相关的工作,很多都要求VOC格式的数据集. PASCAL VOC挑战赛 (The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛, PASCAL全称:Pattern Analysis, Statical Modeling and Computational Learning,是一个由欧盟资助的网络组织.很多模型都基于此数据集推出.比如目标检测领域的yolo,ssd等等. voc数据集结构 看下目录结构 :~/git_project…
作者:yongh701 挂载到微信服务器上的应用程序,能够通过微信Oauth2认证,能够抓取到用户的微信信息,当然,你首先要通过微信的帐号资质审核. 一.基本思想 二.基本过程 1.登陆微信的公众平台(点击打开链接),在左侧的最下方找到开发者中心,记下你的AppID(应用ID),假设是i,与AppSecret(应用密钥),假设是s 在接口权限表中的高级接口,修改OAuth2.0网页授权,写入你挂载本应用的域名,假设是http://a.b.com. 2.在Eclipse中新建一个工程,由于使用到S…
题意: 有 n 根木棒,长度和质量都已经知道,需要一个机器一根一根地处理这些木棒. 该机器在加工过程中需要一定的准备时间,是用于清洗机器,调整工具和模板的. 机器需要的准备时间如下: 1.第一根需要1min的准备时间: 2.在加工了一根长为 l ,重为 w 的木棒后,接着加工一根长为 l’(l <= l’),重为 w’ (w <= w’)的木棒是不需要任何准备时间的,否则需要1min时间. 求加工 n 根木棒所用的最少时间.例如现有长和重分别为(4,9),(5,2),(2,1),(3,5)和(…
问题描述:给定一个环形序列,进行在线操作,每次修改一个元素,输出环上的最大连续子列的和,但不能是完全序列. 算法:把环从一个地方,切断拉成一条直线,用线段树记录当前区间的非空最大子列和当前区间的非空最小子列. 动态规划解决过静态的序列最大连续子序列和问题,时间复杂度可以达到 n(环形序列可能复杂度更高).但是这里涉及到动态更新,更新频度很大,如果计算子序列和复杂度仍然是n,就会非常耗时. 如果环上的数都是正整数,答案是:环上数的总和-根结点的非空最小子列:否则,答案是:max{根结点的非空最大子…