自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 背包问题 动态规划

简化版的01背包#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue&a

2018-04-30 22:02:05 116

原创 动态规划之Maximum sum

最大子段和的改编版本需要注意的是初始化预处理步骤避免二重循环超时#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>

2018-04-30 21:36:14 294

原创 区间DP之合并石子

确定状态result[i][j][1]:表示合并i到j的所有石子的最高得分result[i][j][0]:表示合并i到j的所有石子的最低得分状态转移方程result[i][j][0] = min(result[i][j][0], result[i][k][0] + result[k+1][j][0] + cost(i,j) );result[i][j][1] = max(result[i][j][...

2018-04-30 20:49:25 181

原创 动态规划之最大子矩阵

步骤1. 枚举两行(i , j)2.将两行压缩,转换为最大子段和小技巧#include <iostream>#include <memory.h>int n;using namespace std;int a[105][105];int sum[105][105];int dp[105][105][105];int main(){ cin >&...

2018-04-30 20:40:44 341

原创 动态规划之最大子段和

状态b[ j ]表示以a [ j ]结尾的最大子段和状态转移方程b[ j ] = max( b[j-1] + a[ j ], a[ j ] )#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#in...

2018-04-30 20:37:23 221

原创 区间dp之最大括号匹配数

#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue>#

2018-04-30 17:08:53 284

原创 动态规划之数的划分

转化为分苹果问题#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue&a

2018-04-29 00:05:41 662

原创 动态规划之买书

不能用常规的状态转移方程,因为会出现重复。解决方法是利用买书的种类来限制#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set&

2018-04-28 21:40:45 314

原创 动态规划之最低通行费

注意边界情形#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue&amp

2018-04-28 20:51:48 489

原创 动态规划之拦截导弹

最长下降子序列#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue&am

2018-04-28 20:26:43 863 1

原创 动态规划之怪盗基德的滑翔翼

#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue>#

2018-04-28 20:19:49 420

原创 动态规划之移动路线

递推,注意初始化#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue&a

2018-04-28 20:02:38 883 1

原创 动态规划之摘花生

状态dp [ i ][ j ] 表示从 i 行 j 列结束的最大花生数状态转移方程dp [ i ][ j ] = max( dp [ i - 1] [ j ] ,dp[ i ][ j-1]) +1注意初始化要小心#include <iostream>#include <stdio.h>#include <algorithm>#include <vec...

2018-04-28 19:18:41 853

原创 动态规划之登山(上山下山分别考虑)

#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue>#

2018-04-28 18:02:41 1680

原创 动态规划 一维背包 采药

#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <queue>#

2018-04-28 17:17:09 113

原创 动态规划之切割回文

状态 dp[ i ] 表示从长度为1的位置到长度为 i 的位置的最少切割次数状态转移方程if( i 到 j 是回文串 )dp [ i ]  = min ( dp[ i ] , dp[ j-1 ] + 1)  #include <iostream>#include <memory.h>#include <string>using namespace std;...

2018-04-28 16:17:29 1812

原创 动态规划之股票买卖

确定状态  pro [ i ]表示从第一天到第 i 天能获得的最大利润    post[ i ]表示从第 i 天到第 n 天能获得的最大利润状态转移方程  pro [ i ] = max( pro[ i-1 ],price[ i ] - min )post [ i ] = max( post[ i+1 ] , max - price[ i ] )#include <iostream>...

2018-04-28 10:13:33 1075

原创 动态规划 背包问题 二维费用背包

裸的二维费用背包#include <iostream>#include<cstring>#include<algorithm>using namespace std;int n,m,k;int a[1005];//消耗精灵球int b[1005];int result[1005][1005];int main(){ cin >&g...

2018-04-27 12:03:19 325

原创 动态规划之硬币

#include <iostream>#include<cstring>#include<algorithm>using namespace std;int n,x;int kinds[2000005];//kind[i]表示构成i元的方法数int mykinds[2000005];int value[205];int result[205];...

2018-04-27 10:58:52 152

原创 二分查找之放弃考试

将0/1分数规划问题转化为二分查找问题#include <iostream>#include <memory.h>#include <math.h>#include <stdio.h>#include <unordered_map>#include <string>#include <map>#inc

2018-04-26 22:04:48 715 1

原创 二分查找之弯曲的木杆

二分法解超越方程#include <iostream>#include <memory.h>#include <math.h>#include <stdio.h>#include <unordered_map>#include <string>#include <map>#include &l

2018-04-26 20:48:30 267

原创 查找之疯牛

这是一个最小值最大化问题,可以将其转化为二分查找和判定性问题同样地,最大值最小化问题,也可以将其转化为二分查找和判定性问题#include <iostream>#include <memory.h>#include <math.h>#include <stdio.h>#include <unordered_map>#includ...

2018-04-26 20:07:40 139

原创 查找之快速找到和为零的四个数

用unorderdmap 即可 ,否则会超时#include <iostream>#include <memory.h>#include <math.h>#include <stdio.h>#include <unordered_map>#include <string>#include <map>u

2018-04-26 19:43:20 565

原创 查找之在线翻译

#include <iostream>#include <memory.h>#include <math.h>#include <stdio.h>#include <unordered_map>#include <string>#include <map>using namespace std;ma

2018-04-26 19:25:04 140

原创 二分查找之方程求解

#include <iostream>#include <memory.h>#include <math.h>#include <stdio.h>using namespace std;double fun(double x){ return pow( x, 3.0 ) - 5 * pow( x, 2.0 ) + 10.0*x -...

2018-04-26 19:09:48 875

原创 动态规划之复杂的整数划分问题

注意初始值的给定#include <iostream>#include <memory.h>#define MaxLen 55using namespace std;int result1[MaxLen][MaxLen];//result1[i][j]表示将整数i划分为j个数字int result2[MaxLen][MaxLen];//result2[i][j]...

2018-04-26 11:51:46 674

原创 动态规划之开餐馆

递推法 人人为我型状态result[ i ] 定义为开到第i个餐馆能获得的最大利润#include <iostream>#include <memory.h>#define MaxLen 105using namespace std;int result[MaxLen];int pos[MaxLen];int pro[MaxLen];int dp(int n...

2018-04-26 10:58:35 727

原创 快速排序

步骤为:1. 选主元(取头中尾的中位数)2. 子集划分3.递归左半边4.递归右半边注意的地方是当数组元素个数较少时,快速排序时间性能不高,故设定阈值,当元素数目高于阈值时,使用快速排序,低于阈值时使用插入排序。快速排序的平均时间复杂度为O( n log n ) , 最坏情况时间复杂度为 O( n^2 ) 递归需要O( logn )的空间复杂度,排序算法是不稳定的typedef int Elemen...

2018-04-25 20:42:56 129

原创 递归之简单的整数划分问题

状态dp( n , m )表示把数 n 拆分 ,拆分·出来的数字不大于 m

2018-04-25 18:06:09 399

原创 动态规划之方盒游戏

状态是ClickBox( i , j , extralen)表示在大块 j 的右边已经有一个长度为 extralen 的大块,且其颜色与大块 j 相同,将大块 j 和大块 extralen 合并称为大块Q,在此情况下,将大块 i~j 以及大块 extralen 都能消除所得到的最高分。整个问题就是求ClickBox( 1 , n , 0 )状态转移方程:1. 直接将Q删除,这种做法得到的最高分是C...

2018-04-25 17:15:48 397

原创 复杂排序之归并排序

归并排序的时间复杂度是O(nlogn),与快速排序和堆排序最大的不同是归并排序是稳定的,但它需要额外的O(n)的空间复杂度利用递归的方法进行排序void Merge( ElementType A[], ElementType TmpA[], int Left, int Mid, int Right ){ /* 将有序的A[Left]~A[Mid-1]和A[Mid]~A[Right]归并成一个有序...

2018-04-24 21:49:02 120

原创 简单排序算法

选择排序:选择排序思想是每次找到未排元素中的最小元素放到已排好元素的末尾template<typename T>void selectSort( T arr[],int n ){ for( int i = 0; i < n; i ++) { int minIdex = i; for( int j = minIdex; j &lt...

2018-04-24 17:33:51 136

原创 c++ new的用法

1 int *x = new int; //开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)2 int *a = new int(100); //开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址3 char *b = new char[10]; //开辟一个存放字符数组(包括10个元素)的空间,返回首元素的地址4 float *...

2018-04-24 15:21:45 102

原创 leetcode 存在重复元素 滑动窗口+set

#include <set>class Solution {public: bool containsNearbyDuplicate(vector<int>& nums, int k) { unordered_set<int> record; for( int i = 0; i < nums.s...

2018-04-24 14:49:33 174

原创 有效的数独

#include <set>#include <algorithm>#include <string>#include <string.h>using namespace std;class Solution{public: bool isValidSudoku(vector<vector<char>>&...

2018-04-24 11:02:19 107

原创 leetcode 四数之和

#include <set>#include <algorithm>using namespace std;class Solution{public: vector<vector<int>> fourSum(vector<int>& nums, int target) { if(nums...

2018-04-24 10:42:19 383

原创 leetcode 无重复字符的最长子串

注意边界#include <map>#include <queue>#include <set>#include <algorithm>#include <memory.h>using namespace std;class Solution {public: int lengthOfLongestSubstring...

2018-04-24 09:51:36 98

原创 回旋镖的数量

遍历每个i,把剩余点与i的距离做key放入map,value是具有相同距离的点的个数#include <map>#include <queue>#include <set>#include <algorithm>using namespace std;class Solution{public: int numberOfBoom...

2018-04-23 17:57:53 367

原创 leetcode 四数相加

把C和D的所有组合放入到查找表中#include <map>#include <queue>#include <set>#include <algorithm>using namespace std;class Solution {public: int fourSumCount(vector<int>& A,...

2018-04-23 17:23:05 297

原创 leetcode 三数之和

#include <map>#include <queue>#include <set>#include <algorithm>using namespace std;class Solution{public: vector<vector<int>> threeSum(vector<int>

2018-04-23 16:48:53 126

空空如也

空空如也

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

TA关注的人

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