自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 问答 (1)
  • 收藏
  • 关注

原创 PAT1068 Find More Coins (30)(DP)

题意:给出n枚钱币,要求买价值为m的物品,要求输出具体所用的钱币,如有多种情况输出字典序最小的情况。思路:这题就是01背包的变种,状态转移方程很好写:dp[i][j]=max(dp[i-1][j],dp[i-1][j-c[i]]+c[i])主要难点在于怎么处理多种情况最后输出,基本思路是一开始将钱币按从大到小排序,在状态转移的过程中用hash[i][j]保存是否选取了当前钱币i,这样最后对dp[n...

2018-05-31 14:41:51 212

原创 PAT1067 Sort with Swap(0,*) (25)(贪心)

题意:给出0~N-1的序列,要求每次只能通过0和其他数交换,最后将所有数排序思路:这题还是比较容易想到的,分成两种情况讨论:0不在0位置,如果0在i位置,那么在i位置的应该是i,所以将i对应的位置与0交换即可0在第0位且还没排好序,选择还没匹配位置的第一个数与0交换这题有两个样例卡时间,所以对第二种情况进行优化,不用每次从0开始遍历,从上一次的位置之前的数已经匹配完成,所以从该位置开始遍历即可。#...

2018-05-29 19:03:42 177

原创 PAT1066 Root of AVL Tree (25)(AVL树)

题意:给出一系列要插入平衡搜索二叉树的数,要求输出最后的根节点思路:没其他办法,完完全全是AVL树的插入节点模拟,这题就不会写,看别人代码写的。#include<iostream> #include<algorithm> using namespace std; struct node { int key; struct node *left, *right; }; ...

2018-05-29 18:55:46 190

原创 PAT1064 Complete Binary Search Tree (30)(BST)

题意:给出一个完全二叉搜索树的键值序列,要求输出层序输出要点:完全二叉搜索树的根节点是可以唯一确定的,所以一开始排序一下,再用dfs即可。这题我思路是想到了,但是生成根节点的地方写的有点问题,然后要输出层序是可以用dfs中序遍历再加一个数组直接输出的,这里可以学习一下。#include<iostream> #include<string> #include<vecto...

2018-05-27 20:54:46 224

原创 PAT1057 Stack (30)(树状数组)

题意: 模拟一个栈,要求可以输出中位数。 思路: 这题还是有点意思,看题意就知道会卡时间复杂度,想着用multiset试一下发现果然有几个点过不去,后面就没想出来。实际这题应该用树状数组做: Push x:就update(x,1),就是树状数组的区间更新,c[i]+=1,说明值为i的数出现并更新与其相关的数 Pop:就update(x,-1),c[i]-=1,将值为i的数以及和它相关的数...

2018-05-21 22:21:48 419

原创 PAT1051. Pop Sequence (25)(栈模拟)

题意:有个容量限制为m的栈,分别把1,2,3,…,n入栈,给出一个系列出栈顺序,问这些出栈顺序是否可能.思路:我的思路是将出栈顺序一个个入栈,如果当前栈顶等于此时入栈的元素说明正确,如果小于就继续入栈到该元素为止,如果小于说明出栈顺序有错,其中判断一下栈的元素个数是否大于m。过是过了但是感觉写的不太好,看了一下网上的代码思路比我的要清晰很多,所以还是记录一下,这个问题可以用来判断出栈顺序是否正确,...

2018-05-05 20:35:02 209

原创 PAT1049. Counting Ones (30)(数学)

题意:给出一个n,求从0到n一共出现几个1思路:这题还是有点复杂的,看了一下别人的代码,基本思路是一位一位考虑,也就是计算这一位为1的数有几个,用now表示当前位的值,left为左边的数字,right为右边的数字,a为当前位的位数,以3105为例:当now>=2时,比如分为310 5 0,此时now=5也就是说可以取(0~310)1,这些数当前位为1,res+=(left+1)*a当now=...

2018-05-03 11:24:03 165

空空如也

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

TA关注的人

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