自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 统计逆序对数目

//计算数组data中[lo,hi)区间上逆序对数目,注意算法执行完后A数组已排序。复杂度:o(nlogn)int revCount(int* data, int lo, int hi){ int revC = 0; if (hi - lo < 2) return 0; int mi = (lo + hi) / 2; revC += revCount(data, lo, mi); revC += revCount(data, mi, hi); int *A = data + lo;.

2020-10-09 16:39:11 226

原创 UVA-10759

题意: n个筛子点数之和大于等于x的概率为多少。题解: 这道题第一眼看上去就是DP。思路很简单,DP[n][x]表示n个筛子点数恰好为x的情况数。DP[n][x] = DP[n-1][x-1] +DP[n-1][x-2]+DP[n-1][x-3] +DP[n-1][x-4] +DP[n-1][x-5] +DP[n-1][x-5]...

2020-09-25 22:29:43 229

原创 UVA-11137

题意:用1,8,27.....9261(都是n^3, 每个数都是无穷多个)从凑出n,有多少中不同的方案?题解:#include <iostream>#include <cmath>using namespace std;int main(){ long long DP[10000] = {1}; int n; for (int i = 1, t; (t = pow(i, 3)) <= 10000; i++) for (int j = t; j &l

2020-09-09 12:53:30 2858

原创 UVA-10617

题意: 找出一个字符串中的子串中的回文串个数。题解: 区间上动态规划。DP[i][j]表示S[i]到S[j]的局部解,则动态转移方程如下:DPi][j] = S[i]==S[j] ?dp[i][j] = DP[i+1][j] + DP[i][j-1] + 1:DP[i+1][j] + DP[i][j-1]-DP[i+1][j-1]推导过程(字比较丑...)正在上传…重新上传取消正在上传…重新上传取消...

2020-09-09 08:59:49 3127

原创 UVA-10285

题意: 给一个R*C大小的int型矩阵,起点终点任意,每次只能朝一个方向(上下左右均可,不能斜着走)走一步,且只能从更大的数走向更小的数,求最长路径。题解: 记忆化DP。DP[i][j]表示从(i,j)出发所能走的最长路径,则状态转移方程可描述如下:对于上下左右4个方向,如果走得通的话,则选择能走的最远的一个方向走。#include <iostream>#include <algorithm>#include <string&gt...

2020-09-05 15:50:49 5958

原创 UVA-10192

题意: 题目说了一大堆,其实就是求最长公共子序列。解法: 仿照《生物信息学》中的序列比对问题*(感兴趣的可以去了解了解)。#include <iostream>#include <algorithm>#include <string>#include <cstring>using namespace std;int main(){ string a, b; int DP[105][105], c...

2020-09-03 22:09:13 7551

原创 UVA-10131

题意: 输入一些大象的的重量和千克,找出满足:按重量严格递增,智商严格递减(严格递减的意思就是只能小于,不能等于)的最长的序列。解法: 参照小白书上的方法,将转换为求DAG上的最长路径问题(此题显然不存在自环、闭环以及重复边,因此可以转换为DAG问题)。 DAG使用邻接矩阵G存放,G[i][j] = true表示第i头大象重量大于第j头大象,且第i头大象智商小于第j头大象。 注意此题的最长路径是不固定起点和终点的,这里用的是记忆化DP(dijkst...

2020-09-03 20:24:04 7621

翻译 UVA-108

题意给一个N*N的int矩阵,求出所有子矩阵中的最大和。解法:蛮力算法(超时): 枚举所有左上角起点(startRow,startCow)O(N^2)和右下角终点(endRow, endCow)O(N^2),求出子矩阵的和O(N^2)。复杂度O(N^2)* O(N^2)* O(N^2)=O(N^6)。解法1: 动态规划。memo[i][j] = memo[i - 1][j] + memo[i][j - 1] - memo[i - 1][j - 1] +...

2020-09-01 22:53:05 7629

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除