自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 *浙大PAT甲级 1111

通过两边的dij最短路算法。path[]数组记录最短路中每个结点的前驱结点,第一遍dij以路径的距离为主,如果相等则判断时间最短。第二遍dij以路径所花时间为主,如果相等则判断路径的结点数最小。如果两边dij算法的路径相同则合并在一起输出,否则分开输出。AC代码:#include#include#include#include#include#include#include#

2016-09-09 23:14:18 1060

原创 **浙大PAT甲级 1010 进制转化

这个题目应用long long 才不超出范围。首先将已经进制的数转为10进制数结果为sum,如果超出long long范围 则直接输出impossible,否则进行二分查找基数,l为最小的进制数(为字符串中最大的字符对应的10进制数+1),r为最大的进制数(为sum+1),进行二分查找。AC代码:#include#include#include#include#include#i

2016-09-09 23:02:57 406

原创 浙大PAT甲级 1115

对输入的每个点都进行一插入操作,然后得出最深的那一层,然后进行广度优先搜索进行计算最后两层的结点的数量。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*60*6

2016-09-08 22:18:49 474

原创 *浙大PAT甲级 1114 并查集

考察并查集,并附加记录额外信息。为了得到一个家族中的最小id,我们可以将最小的id做为这个家族的根。并将整个家族的信息如家族人数,家族房产数,家族的房产面积。然后通过排序,输出相应结果。AC代码:#include#include#include#include#include#include#include#include#include#include#inc

2016-09-08 21:45:40 984

原创 浙大PAT甲级 1113

超级简单。先排序,再判断n的奇偶性,奇数输出1,偶数输出0,然后求出后半段-前半段即可。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*60*60usin

2016-09-08 20:51:32 291

原创 浙大PAT甲级 1112

简单的字符串处理,用map来记录失败的字符。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*60*60using namespace std;int mai

2016-09-08 20:44:41 247

原创 *浙大甲级PAT 1109

题目有些难读懂。大致意思是:(1)每行人有n/k个,如果有多则都排在最后一行。(2)最后一行的人比前行的人都要高(3)每行中最高的人站在中间。(4)每行第二高的人站在最高人的左边,第三高的人站在最高人的右边,依次类推。(5)如果有相同身高的人,要以字母表顺序排列。AC代码:#include#include#include#include#include#i

2016-09-08 20:03:50 315

原创 *浙大PAT甲级 1110 判断是否为完全二叉树

这个题关键是如何判断是否为完全二叉树。通过bfs广搜来进行判断如果一个结点没有左二子,有右儿子那么不是完全二叉树;或者前一个结点无左二子或者俩个儿子都没有而这个结点却有孩子,那么不是完全二叉树。否则就是完全二叉树。AC代码:#include#include#include#include#include#include#include#include#include#

2016-09-08 17:28:04 464

原创 *浙大PAT甲级 1108

一个很繁琐的题,使用字符串数组,对于每个字符串需要判断第一个符号是否为负,以及是否有小数点以及个数,还需判断是否超过[-1000,1000]的范围。还有如果合法数为1个时,number后面不加s,如果为0个则用Undefined来代替Y 。AC代码:#include#include#include#include#include#include#include#include

2016-09-08 16:18:15 445

原创 *浙大PAT甲级 1107 并查集

这个题目求有共同爱好的人的集体数,以及从大到小输出各个集体的人数。并查集的思想。我的思路是:用num[i]数组表示根为爱好i的人数个数。最后排序统计不等于的num[i]有多少个,然后排序,后序输出。AC代码:#include#include#include#include#include#include#include#include#include#include

2016-09-08 14:11:09 352

原创 浙大PAT甲级 1106 广度优先搜索

用vector数组来存储每个点的子节点编号,然后通过广度优先搜索从根结点开始,来寻找最小的深度的根,并统计个数。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*

2016-09-08 13:06:42 388

原创 **浙大PAT甲级 1105

首先需要求出m,n。从1开始遍历到根号n,如果n能整除i,则得出n/i-i的差,更新最小值。接下来关键是如何得到该矩阵,可通过一个flag变量,flag为0,是纵坐标++,如果到达边界或者已经有值则转向flag为1;为1,是横坐标++,当到达边界或已经有值了则转向flag为2;为2,是纵坐标--,当到达边界或者已经有值了则转向flag为3;为3,是横坐标--,当到达边界或者已经有值了则转向fl

2016-09-07 22:40:52 363

原创 浙大PAT甲级 1104

只要统计每个数出现的次数即可。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*60*60using namespace std;double a[10000

2016-09-07 20:23:32 313

原创 **浙大PAT甲级 1103 dfs+快速幂

题目的意思是求一个数n=k个数的p次方之和。对n进行深度优先搜索,按照递减的顺序进行搜索,并计算sum的值,如果sum的值比maxxx大,则更新vector,并用ans来统计结果次数,如果为0,那么输出impossible。还用了快速幂来求解数的P次方。AC代码:#include#include#include#include#include#include#inclu

2016-09-07 19:31:07 334

原创 浙大PAT甲级 1102

反转一个二叉树。先来个广搜再来个中序遍历。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*60*60using namespace std;struct n

2016-09-07 17:17:10 323

原创 *浙大PAT 1101

这个题意是找到某个数的左边都比这个数小,这个数的右边都比这个数大。我是通过输入时,判断是否比左边的最大值要大,如果是则把该数的下标加入到一个吧新数组b中。然后对原数组进行从右到左遍历,有C数组记录这个数以及右边的数的最小值,然后通过遍历b数组来比较原数是否小于等于右边最小的数,是则存入新数组d中。AC代码:#include#include#include#include#i

2016-09-07 16:53:58 540

原创 *浙大PAT甲级 1099层次遍历二叉查找树

先通过输入进行建树,然后根据中序遍历对应从小到大的数,再进行bfs进行层次遍历。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*60*60using name

2016-09-07 16:00:27 341

原创 **浙大PAT甲级 1098堆排序

主要考察了堆排序。具体堆排序的操作点击打开链接。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*60*60using namespace std;vecto

2016-09-07 14:41:01 380

原创 *浙大PAT甲级 1096

这个题目我的思路是i从2到r(等于n)开始遍历,如果r能整除i,如果第一次则标记这个i,r/=i,sum++,继续判断,直到不能整除为止。到了不能整除时,如果是因为之前r改变过则将r置成n,同时sum=0,i应变成上次标记的值。AC代码:#include#include#include#include#include#include#include#include#in

2016-09-07 13:38:37 396

原创 浙大PAT甲级 1097

简单的链表处理,用两个vector来进行存储保留的和删除的结点。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 24*60*60using namespace st

2016-09-07 11:17:42 281

原创 浙大PAT甲级 1100

火星数与地球数的转化,注意如果输入的数为13的倍数,则后面的tret则省略。例如:13 应输出tam 而不是输出tam tret。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#def

2016-09-06 19:35:28 860

原创 **PAT浙大甲级 1095

这个题很注重时间复杂性,我是用map >来存每一个号码的车的记录。然后根据栈来求有效的记录,别用hash将时间与整数想映射,hash[某一时间段]++,并统计每个车今天停车的时间,然后根据输入的时间 即可输出此刻停车的数量。最后通过排序,输出停车最长的时间的车号。最后个测试用例超时。28分代码:#include#include#include#include#inclu

2016-09-06 17:21:43 431

原创 浙大PAT甲级 1094

简单的BFS求数的那一层结点数最大,输出最大数量与相应的层。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 999999999using namespace std

2016-08-31 11:34:01 197

原创 **浙大PAT甲级 1093 树状数组

这个题目求一个字符串中PAT的数目,我们可以这样处理。对字符串每个字符进行遍历,当字符为P时len1++,当字符为A时,则将len1加入到树状数组中,当字符为T时,对树状数组求和累加并取余。AC代码:#include#include#include#include#include#include#include#include#include#include#inc

2016-08-31 11:17:04 271

原创 浙大PAT甲级 1092

简单的字符串处理。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 999999999using namespace std;int main(){ st

2016-08-30 21:23:51 239

原创 *浙大PAT甲级 1091 广搜

这个题目很难读懂,查了资料才知道求三位数组的BFS,对于每个出现的1,寻找其连接的1,统计个数如果大于等于T,则将其加入。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define in

2016-08-30 15:48:30 261

原创 浙大PAT甲级 1090 广搜

广搜求层次,然后进行排序求出最大层次以及在最大层次结点的数目。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 999999999using namespace st

2016-08-30 15:07:30 321

原创 *浙大PAT甲级 1089 归并排序与插入排序

先判断是否由插入排序而得来,再判断归并排序。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 999999999using namespace std;vector

2016-08-30 14:40:51 345

原创 浙大PAT甲级 1088

考虑的情况比较多:(1) 除数为0则,则等号后面输出inf。(2)求最小公倍数时,两数相乘的范围可能超过了int所表示的范围,因此应选用long long 类型。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define

2016-08-30 12:41:58 379

原创 *浙大PAT甲级 1087 dijkstra+dfs

由于输入的是城市名称,因此要先将名称与id想对应,可以用map映射。dist数组代表源点到该点的最短路径,path数组记录推荐路径,num数组记录源点到该点的最大happy值。通过dijkstra来得出最短路径以及最大happy值和相应路径。但关键是怎么求有多少条总和为最短路径的路径数,这里可以通过得到的最短路径进行深度优先搜索。AC代码:#include#include#

2016-08-30 11:52:44 372

原创 **浙大PAT甲级 1086 二叉树的先中根遍历求后根遍历

题目中push的顺序为先根遍历,pop()得到的结果为后根遍历,因此这个题是根据先根遍历和中根遍历来求后根遍历。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 999

2016-08-30 10:33:45 341

原创 **浙大PAT甲级 1085

先对数组进行从小到大排序,对每个元素运用二分查找该数*p+1,得到位置,但此时还要向前减去相同的数。然后再找出最大值AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 9

2016-08-29 21:52:42 417

原创 浙大PAT甲级 1084

很简单的字符串题,我用了set与vector,set来保证唯一性。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 999999999using namespace

2016-08-29 20:54:30 325

原创 浙大PAT甲级 1084

先排序然后二分查找临界点。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 999999999using namespace std;int n;struct n

2016-08-29 20:47:32 339

原创 浙大PAT甲级 1082

题目需注意0的情况。碰到0不输出,标记=1,碰到数如果标记为1,输出ling,再输出数,标记=0。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 999999999

2016-08-29 14:55:31 455

原创 *浙大PAT甲级 1081

题目不难,但是需要注意的细节很多,尤其是 long long虽然数的范围在int内,但是求最小公倍数时,相乘会超出int范围,因此用long long;AC代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 9999

2016-08-29 14:06:44 404

原创 浙大PAT甲级 1080

结构体排序以及一些特殊情况的考虑。用两个截止数组分别表示最后一位入取到该学校的两个分数值。如果这次遍历与上一位的rank相同,则判断该两门成绩是否与该学校的两个截止数组相同,如果相同,无聊是否满额,都继续招人。AC代码:#include#include#include#include#include#include#include#include#include#in

2016-08-29 12:49:21 519

原创 *浙大PAT甲级 1079

这个题对时间的限制比较要,因此要用bfs先求得各结点的层次,否则在遍历中多次对结点求层次会导致超时。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 999999999using namespace std;

2016-08-29 11:58:05 572

原创 **浙大PAT甲级 1078

以除法为散列函数,注意要用到二次探测解决冲突。二次探测采用下列探测序列:h(key),h1(hey),h2(hey).........h2i-1(key), h2i(key)......h2i-1(hey)=(h(key)+i*i)%m i=1,2.....(m-1)/2;  (1)h2i(key)=(h(key)-i*i)%m i=1,2......(m-1)/2;   (2)

2016-08-29 10:17:32 390

原创 浙大PAT甲级 1077

求公共后缀,暴力循环即可。AC代码:#include#include#include#include#include#include#include#include#include#include#include#define inf 999999999using namespace std;string s[105];int main(){ int

2016-08-28 18:16:26 393

空空如也

空空如也

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

TA关注的人

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