自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PAT1045. Favorite Color Stripe (30)(dp)

题意:给出m中颜色作为喜欢的颜色(同时也给出顺序),然后给出一串长度为L的颜色序列,现在要去掉这个序列中的不喜欢的颜色,然后求剩下序列的一个子序列,使得这个子序列表示的颜色顺序符合自己喜欢的颜色的顺序,不一定要所有喜欢的颜色都出现思路:就是个简单的dp,一遍过,不过我dp不怎么样所以记录一下:用dp[i][j]表示序列中第i个数并且喜欢的颜色在顺序中排j的最大值。当num[i]是喜欢的颜色时,dp...

2018-04-29 20:41:22 136

原创 PAT1044. Shopping in Mars (25)(二分)

题意:给出一系列数字,要求输出子序列使其和等于m,如果没有等于m的子序列就输出和减去m的差最小的子序列要点:这题的时间要求是100ms,n的量级是10^5,O(n^2)是肯定不行了,但我一开始算了一下O(nlogn)觉得不大行,就一直在想O(n)的方法,实际上O(nlogn)=10^5*17=1.7*10^6差不多是行的。接下来二分就行了。#include<iostream>#inc...

2018-04-28 16:02:19 136

原创 PAT1043. Is It a Binary Search Tree (25)(BST)

题意:给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果,并输出后序遍历思路:这题判断是否为BJT很简单和输出后序遍历都很简单,递归一下即可。我做的时候主要是没想到怎么处理镜像。就按照第一个点和第二个点判断大小来做了一下果然有几个点过不去。后来看了一下别人代码,其实很简单,先按BJT处理一遍,如果后序遍历有n个点就说明是BJT,如果没有n个点就再按照镜像处...

2018-04-27 09:32:01 115

原创 PAT1040. Longest Symmetric String (25)(回文串:dp)

题意:给出一个字符串,求出其中最大的回文串字数要点:这题比较好的办法是用dp做:dp[i][j]表示从s[i]到s[j]是否为回文串,用0、1区分s[i]=s[j]时,dp[i][j]=dp[i+1][j-1];s[i]!=s[j]时,dp[i][j]=0边界:dp[i][i]=1,dp[i][i+1]=(s[i]==s[i+1])?1:0因为i、j如果从小到大的顺序来枚举的话,无法保证更新dp[...

2018-04-24 22:01:02 197

原创 PAT1039 Course List for Student (25)(hash)

这题一点都不难,但是会有一个点超时,我原本是用map直接写,最后一个点超时,这是因为处理字符串类型的速度是相当慢的,这题学生姓名非常规则,所以hash一下转化为数字速度就会快很多。记录一下这种情况。#include<iostream>#include<string>#include<vector>#include<map>#include&l...

2018-04-23 09:00:36 298 1

原创 PAT1038 Recover the Smallest Number (30)(贪心)

题意:给出一些字符串,把他们拼接起来获得最小数字要点:就是贪心,比较字符串大小,如果其中一个是另一个的子串就比较一下它和另一个除去相同子串剩下的部分即可。我一开始想复杂了,一直在考虑前导0的问题,觉得如果前导0放在中间可能会更小,但其实是不可能的,因为放在前面总位数变少了,所以压根不用考虑这么复杂,直接排序一下最后处理一下就完事了。不过网上的代码想法非常巧妙,下面贴一下。#include<i...

2018-04-22 20:04:05 156

原创 PAT1034 Head of a Gang (30)(并查集)

题意:给出n次通话记录,当通话的人数超过2人并且通话总时长超过k时,这些人就是犯罪团伙,其中通话时间最大的人是头目,要求按字母序输出头目和团伙人数思路:就是并查集,将两两通话的人关联在一起,因为通话的人的姓名是按三位字母给出的,所以要离散化,并且对应要用一些STL保存映射。我自己写的时候有两个点没过,后来改过了,错误原因写在下面注释里了。网上的代码也有用DFS找连通分量做的。#i...

2018-04-18 22:32:18 263

原创 PAT1033 To Fill or Not to Fill (25)(贪心)

题意:开车从起点出发,到终点的路上有一些加油站,不同的加油站油价不同,要求输出到终点时最少花费的钱思路:贪心,在加满油可以走的最大距离内分情况讨论:在范围内存在加油站油价比当前加油站小,就加油加到刚好可以到那个加油站在范围内不存在加油站油价比当前加油站小,说明当前加油站油价最小,所以在当前加油站加满油再走到不包括当前加油站的油价最小的加油站,也就是油价第二小的,此时会剩下一些油。自己写的时候基本想...

2018-04-17 20:19:00 161

原创 PAT1026 Table Tennis (30)(排队模拟)

又是排队模拟,PAT很喜欢出排队模拟题,这题巨复杂,反正我是没想出来,基本的思路就是分为桌子为VIP和选手为VIP一共4种情况讨论,太复杂。抄了一下别人的代码,其中的几个难点写了注释。#include<iostream>#include<vector>#include<string>#include<algorithm>#define INF...

2018-04-11 19:31:05 244 1

原创 PAT1022 Digital Library (30)(map的使用)

很简单的题,就是考察一个map的使用,不过这题有个陷阱就是最后输出的id必须是7位的,我做这题的时候用到了string的分割,其实不需要,直接用getchar()就可以判断结束条件,注意使用getline时要吃掉\n#include<string>#include<cstdlib>#include<vector>#include<stack&g...

2018-04-06 20:54:27 175

原创 PAT1021 Deepest Root (25)(树的最深节点)

题意:给出n-1条边,要求判断能否生成一棵树,并求树中所有以它为根时深度最大的节点。思路:我一开始做的时候就很莽的直接用dfs搜索,就有一个节点超时,其实简单的思考就是如果以1为根,那么就是当前最深的几个点,他们之间的距离也就是树最大的深度。可以这么理解:从1到i距离最远,那么以i为根,到1的距离已经是最远,那只要从1开始找次深的点即可。实现方法就是先dfs一遍找出最深的几个点,在用其中一个再次d...

2018-04-05 22:49:31 308

原创 PAT1020 Tree Traversals (25)(中序后序遍历生成树)

题目很简单,就是给出树的中序和后序遍历,要求输出层序遍历,记录一下主要是因为之前这块一直懒得写,一直没写过#include<bits/stdc++.h>#define INF 0x6ffffusing namespace std;struct node { int data; node *left, *right;};int n;int postOrder[35...

2018-04-05 22:39:03 207

原创 PAT1018 Public Bike Management (30)(最短路径+DFS)

题意:每个自行车车站的最大容量为一个偶数cmax,如果一个车站里面自行车的数量恰好为cmax / 2,那么称处于完美状态。如果一个车展容量是满的或者空的,控制中心(处于结点0处)就会携带或者从路上手机一定数量的自行车前往该车站,一路上会让所有的车展沿途都达到完美。现在给出cmax,车站的数量n,问题车站sp,m条边,还有距离,求最短路径。如果最短路径有多个,求能带的最少的自行车数目的那条。如果还是...

2018-04-02 21:59:14 179

空空如也

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

TA关注的人

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