摘要: 声明:此文转载,方便自己以后分类查看 1)首先按照常规的方法求出最长公共子序列的长度也就是用O(MN)的那个动态规划,结果放在二维数组dp里dp[i][j] = { 字串a的1~i部分与字串b的1~j部分的最长公共子序列的长度 }2)求辅助数组last1[i][j] = { 到下标i为止,字符j在字 阅读全文
posted @ 2018-10-21 11:50 osatalp 阅读(320) 评论(0) 推荐(0)
摘要: hdu 1950 Bridging signals http://acm.hdu.edu.cn/showproblem.php?pid=1950 最长上升子序列(LIS)的典型变形,熟悉的n^2的动归会超时。LIS问题可以优化为nlogn的算法。定义d[k]:长度为k的上升子序列的最末元素,若有多个 阅读全文
posted @ 2018-10-20 21:39 osatalp 阅读(1350) 评论(1) 推荐(0)
摘要: 声明:此文转载,方便自己以后分类查看 Dilworth定理优化“序列的不下降子序列最少划分数 首先是定义。偏序关系是满足自反性、反对称性、传递性的二元关系。可以用<=表示。自反性:x<=x成立。反对称性:a<=b 且 b<=a <=> a=b传递性:a<=b 且 b<=c ==> a<=c满足上述三 阅读全文
posted @ 2018-10-20 19:21 osatalp 阅读(1890) 评论(0) 推荐(0)
摘要: 有N堆石子,现要将石子有序的合并成一堆,规则如下:(1)每次只能移动任意相邻的2堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆总花费,要求N#include #include usin... 阅读全文
posted @ 2018-09-19 10:20 osatalp 阅读(175) 评论(0) 推荐(0)
摘要: 树形dp:给定一棵有N个节点的树,(通常是无根树,也就是有N-1条无向边),我们可以任选一个节点为根节点,从而定义出每个节点的深度和每棵子树的根。在树上设计动态规划算法的时候,一般就以节点从深到浅(子树从小到大)... 阅读全文
posted @ 2018-09-18 19:47 osatalp 阅读(124) 评论(0) 推荐(0)
摘要: 逆序对数使用归并排序更好,在此我们介绍一种树状数组的实现。假设一个数组A[n],当A[n]=0时表示数字n在序列中没有出现过,A[n]=1表示数字n在序列中出现过。A对应的树状数组为c[n],则c[n]维护的是数... 阅读全文
posted @ 2018-08-05 22:18 osatalp 阅读(94) 评论(0) 推荐(0)
摘要: 转载:SourceURL:https://www.cnblogs.com/flyinghearts/archive/2011/04/11/2013111.html用二叉树来理解树状数组 - flyingheart... 阅读全文
posted @ 2018-08-05 13:32 osatalp 阅读(132) 评论(0) 推荐(0)
摘要: 4195: [Noi2015]程序自动分析Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 3021 Solved: 1414[Submit][Status][Di... 阅读全文
posted @ 2018-08-03 17:05 osatalp 阅读(70) 评论(0) 推荐(0)
摘要: 1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,jO(nlogn) { for... 阅读全文
posted @ 2018-01-28 13:21 osatalp 阅读(160) 评论(0) 推荐(0)
摘要: 今天早上有些人嘲笑我手残mdzz# -*- coding: utf-8 -*-import osimport timeimport numpy as npimport matplotlib.pyplot as p... 阅读全文
posted @ 2018-01-08 13:13 osatalp 阅读(138) 评论(0) 推荐(0)