自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二分 D 和为0

1、简单描述有四列数据,共n行,每列数据找一个,这四个数加起来为0,问一共有多少种方法使和为0?2、思路 #include #include #include #include using namespace std; int a[4001][4],sum1[20000002],sum2[2000000

2017-04-30 23:05:32 208

原创 贪心 X 比赛排名

1、简单描述爷爷的在比赛中排名第一,排名根据参加比赛次数来定,参加最多的是爷爷,第二名是谁2、思路#include #include#include #include using namespace std;struct player{ int number; int s;};bool cmp(player a,player b)

2017-04-29 20:57:46 160

原创 贪心 T 装箱

1、简单描述所有商品和箱子的高都相同,商品规格1*1,2*2,3*3,4*4,5*5,6*6,所有的商品都要用6*6规格的箱子来装。最少用多少个箱子来装?2、思路数组key【i】是一个箱子放i个3*3的商品,能放下的2*2的商品个数。贪心,先放大的,再在空余位置放小的。#include#include#includeusing namespace std;typ

2017-04-25 22:30:58 357

原创 贪心 U 堆墙

1、简单描述几堆砖,砖的数目不同,最少移动多少块砖能让所有的砖堆一样高。2、思路#includeusing namespace std;int j=1;int main(){ int n,num[51],adv; cin>>n; while(n!=0) { int sum=0,answer=0;

2017-04-24 12:31:19 245

原创 B 字典(STL)

1、简单描述输入,编写字典,输入词条,查找单词。2、思路map一个string键值对应一个string实值。#includeusing namespace std;int main(){ string s; char ss[100],s1[100],s2[100]; mapstring,string>m; mapstring,string>

2017-04-24 11:48:53 198

原创 二分 E 找距离最大的最小值

1、简单描述有n个不连续的格子,每一个格子对应一个位置坐标,将c头牛分别放入不同的格子中,尽可能地使牛的距离相隔远,求在不同放法中最小距离的最大值。2、思路

2017-04-24 09:36:48 404

原创 dp专题总结

1、做题感觉大部分时候看到题感觉一头雾水,在明确告诉这是动态规划的题时会刻意往这方面想,缩小问题规模。如果没说的话,可能根本不会朝这方面去想。感觉好难做起来理解起来都很费劲,专题中有很多题是稍微变了一下,就晕了,会在各方面细节出问题。就像登山问题和合唱团问题,感觉他们一模一样,样例也通过了,就是过不了,心累。2、简单的动态规划题基本能用下面四步解决1、 缩小问题规模,寻找合适的子问

2017-04-17 15:31:09 200

原创 dp专题 第二十四题 鸣人的分身

1、简单描述能量为m,分身个数有n个,共多少种不同的分身方案2、思路#includeusing namespace std;int dp(int m,int n){ if(m==0||n==1)return 1; if(mn)return dp(m,m); else return dp(m,n-1)+dp(m-n,n);}int main(

2017-04-17 15:19:00 330

原创 dp专题 第二十三题 大盗阿福

1、简单描述一共有n家店铺,不能抢劫相邻的两家店铺,最多能抢多少钱。2、思路#includeusing namespace std;int t,n,ans;int f[100001],a[100001];int main(){ cin>>t; while(t--) { cin>>n; memset(f,0,sizeo

2017-04-17 15:15:39 343

原创 dp专题 第十九题 最低通行费

1、简单描述一个n*n的正方形方格,在规定时间内穿过,需要的最少通行费是多少。2、思路#include using namespace std;const int INF = 2147483647 ;int N;int node[101][100],money[101][101] ;int main() { cin>>N; for(int i=1;i

2017-04-17 15:07:57 308

原创 dp专题 第十六题 踩方格

1、简单描述踩方格,每次只能移动一步,只能移到北、东、西三个方向。一旦走过就不能再走这个方格,走n步,共有多少种走法的方案。2、思路#includeusing namespace std;int f[30];int n,i,j;int main(){ cin>>n; f[0]=1; f[1]=3; for (i=2;in;i++) f[i]=f[i-1]+f[

2017-04-17 11:56:28 283

原创 dp专题 滑翔翼问题

1、简单描述城市中一共有N幢建筑,初始时,可以在任何一幢建筑的顶端。他可以选择一个方向逃跑,但是不能中途改变方向。他只能往下滑行。希望尽可能多地经过不同建筑的顶部,他最多可以经过多少幢不同建筑的顶部。下降子序列的最长长度。2、思路#includeusing namespace std;int n,m,i,j,k,h[110],f[110],g[110];int mai

2017-04-17 11:35:41 228

原创 dp专题 第十三题 最大上升子序列的和

1、简单描述给出一个序列,求该序列最大上升子序列的和。注意:最长上升子序列的和不一定是最大上升子序列的和。2、思路#includeusing namespace std;int arr[1001];int Max[1001];void Maxsum(int k){ memset(Max,0,sizeof(Max)); for(int i=1;ik;i+

2017-04-17 11:30:43 183

原创 dp专题 第十题 数字组合

1、简单描述有n个正整数,找出其中和为正整数k的可能的组合方式。输出有多少种方案数?2、思路#includeusing namespace std;int f[21][1001],n,line[30],k;int main(){ cin>>n>>k; for(int i=1;i { cin>>line[i];

2017-04-17 11:20:18 290

原创 dp专题 第十八题 买书

1、简单描述小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。有多少种买书的方案。注意:n元钱必须全部用来买书,每种书的数目不限。2、思路完全背包问题#includeusing namespace std;int v[10];int f[1010],i,j,n;int main(){ cin>>n; v[1]

2017-04-17 10:45:57 324

原创 dp专题 第二十一题 三角形最佳路径

1、简单描述给出一个三角形形状数组,寻找从上到下和最长的路径和。2、思路#includeusing namespace std;int n;int a[101][101];int f[101][101];int main(){ cin>>n; for(int i=1;i for(int j=1;j {

2017-04-10 09:31:14 217

原创 dp专题 第九题 移动路线

1、简单描述从左下角到右上角,只能向上或者向右移动,一共有多少种移动的方案数。2、思路#includeusing namespace std;int sum(int m,int n){ if(m==1||n==1) return 1; else return sum(m,n-1)+sum(m-1,n);}int main(){

2017-04-10 09:01:38 430

原创 dp专题 第六题 登山

1、简单描述山上一个有N个景点,并且决定按照顺序来浏览这些景点。不连续浏览海拔相同的两个景点。并且一旦开始下山,就不再向上走了。尽可能多的浏览景点,找出最多可能浏览的景点数。2、思路#includeusing namespace std;#define N 1005int n,ans;int a[N],f1[N],f2[N];int main(){ cin>

2017-04-10 08:33:50 374

原创 dp专题 第八题 最长公共子上升序列

1、简单描述两个序列,求它们最长公共子序列的长度,并输出这个公共子序列。2、思路#includeusing namespace std;struct Node{int val = 0;vectorv;};int main(){int a[501], b[501];Node dp[501];int m, n;cin >> m;f

2017-04-09 15:22:26 190

原创 dp专题 第三题 采药

1. 简单描述01背包问题总时间为n,总药材数为m。各种药材消耗时间t【i】,价值v【i】,求在规定时间内,能采到的草药最大价值数。2.思路#includeusing namespace std;struct Herb{int time;int value;}herb[1001];int main()

2017-04-09 14:35:36 251

原创 dp专题 第五题 吃糖果

1. 简单描述一盒糖果共n块,可以一天吃两块也可以一天吃一块,吃完为止共有多少不同的吃法?2.思路#includeusing namespace std;int sum(int n){if(n==1||n==2) return n;else return sum(n-1)+sum(n-2);}int main(){int n;

2017-04-09 14:20:28 220

原创 dp专题 第四题 最长公共子序列

1、简单描述多次测试输入,输入两个字符串,编号是上升序列,查找他们最长公共子序列的长度。2、思路# include using namespace std;int main(){ string s1,s2; while(cin>>s1>>s2) { int arr[1001][1001]; memse

2017-04-08 10:54:51 232

原创 dp专题 第二十六题 滑雪

1、简单描述输入c*r的矩阵,元素表示山头的高度,求最长滑雪的区域长度。2、思路#include using namespace std;int dx[]={-1,0,1,0};int dy[]={0,1,0,-1};int r,c;int opt[101][101];int node[101][101];bool ok(int i,

2017-04-06 21:06:33 194

原创 dp专题 第二题 最大子矩阵

1、简单描述输入一个n*n的矩阵,输出最大的子矩阵之和2、简单思路#includeusing namespace std;int fun(int b[101],int n){ int i,Max,c; c=0; Max=0; for(i=1;i { if(c>0) c+=b[i];

2017-04-05 22:27:57 230

原创 dp专题 第一题最长上升子序列

1、简单描述给出一个序列,找出他最长上升子序列的长度2、思路#include using namespace std;int b[1000];int maxlen[1000];int main(){ int i,j,n; cin>>n; for(i=1;i { cin>>b[i]; }

2017-04-05 11:14:47 314

原创 P 二分查找

1、简单描述给出含有n个数的上升序列,编号从1到n,然后给出q次询问,每次询问一个数x是否在上升序列中,如果在输出该数的编号,如果不在输出-1.2、思路# include using namespace std;int a[3000010];int n;int f(int m){ int l = 1, r = n; int mid; while(l !

2017-04-01 18:20:41 282

原创 递推递归专题总结

递推递归专题目主要是找现状态与前一状态的关系

2017-04-01 17:54:04 257

原创 递推递归专题 O 螺旋方阵

1、简单描述可多组输出,输入n,输出n*n方阵。2.思路#include using namespace std;int Arr[100][100];void f(int left, int right, int up, int down, int v, int n){ if(left right) { for (int i = left;

2017-04-01 17:23:43 281

空空如也

空空如也

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

TA关注的人

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