PAT
Wind_white
这个作者很懒,什么都没留下…
展开
-
Are They Equal (25)
重点:通过一个函数获取在有效位数内的标准形式,判断两个标准形式是否相同来判断是否相等。判断情况:1、在数字前有很多0,没有小数点2、小数点前后全是0,没有有效数字3、主要是第一个有效数字的位置与小数点位置的判断#include "iostream"#include "string"#include using namespace std;原创 2017-03-15 14:43:54 · 314 阅读 · 0 评论 -
旧键盘打字(20)
重點:当判断大小写的时候,注意小写ASCII码加0x20后可能是可以打到的字符。#include "iostream"#include "string"#include "vector"#includeusing namespace std;int main(){string s;cin >> s;bool cantDAXie = fal原创 2017-03-14 14:38:44 · 293 阅读 · 0 评论 -
在霍格沃茨找零钱(20)
重点:找钱的时候谁比谁大是很重要的,不能简单进制。#include "iostream"#include "string"#include "vector"#includeusing namespace std;int main(){int g1, s1, k1, g2, s2, k2;scanf("%d.%d.%d %d.%d.%d", &原创 2017-03-13 20:14:01 · 438 阅读 · 0 评论 -
Forwards on Weibo (30)
题目描述Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is formed with followers relations.原创 2017-03-12 20:51:50 · 533 阅读 · 0 评论 -
Shortest Distance(20)
陷阱:是个圈,第一个数字有可能比第二个大。代码:#include "iostream"#include "vector"#include "string"#include "cstring"using namespace std;int main(){ int N, M; int Distance[100000], total = 0; cin >> N;原创 2017-03-17 14:27:31 · 362 阅读 · 0 评论 -
Sort with Swap(0,*)(25)
題目与华为的面试题类似,只能与0元素交换。考虑情况:1、0交换到了位置0,但仍有元素未被交换,需要多换2次。2、初始位置为0,比不初始为0的多交换两次3、计算环数与不在位个数。代码:#include "iostream"#include "vector"#include "string"#include "cstring"using namespac原创 2017-03-17 14:18:03 · 299 阅读 · 0 评论 -
Longest Symmetric String (25) 与Manacher算法
求最长回文子串问题。数据量比较小,可以进行暴力破解。但有一种更好的算法,Manacher 算法。详见:https://segmentfault.com/a/1190000003914228题目代码:#include "iostream"#include "vector"#include "string"#include "cstring"#include "原创 2017-03-26 22:17:06 · 340 阅读 · 0 评论 -
Be Unique (20)
比较简单。#include "iostream"#include "string"#include "vector"#include "cstring"using namespace std;int Num[10001];int main(){ int n; cin >> n; vector data(n); memset(Num, 0, sizeof(Num));原创 2017-03-16 21:56:38 · 262 阅读 · 0 评论 -
A+B and C (64bit) (20)
两个大数相加的结果:如果对问题有疑惑的话可以看我的一篇博客介绍机器内数字加法。http://blog.csdn.net/wind_white/article/details/51000864代码:#include "iostream"#include "string"#include "vector"using namespace std;vec原创 2017-03-16 21:24:50 · 318 阅读 · 0 评论 -
Shuffling Machine (20)
题目大意:洗牌,给一串数字,数字代表当前牌放到第几张,由于是从1开始数,所以注意一下。代码:#include "iostream"#include "string"#include "vector"using namespace std;vector Card(55);vector Order(55);vector temp(55);vector result(55);原创 2017-03-16 20:44:44 · 248 阅读 · 0 评论 -
二叉搜索树的简单说明
定义:二叉搜索树就是左儿子节点的VALUE大,比右儿子的VALUE小的一颗二叉树。给定一个值能够在拥有此性质的树中进行快速搜索。二叉树的插入:直接在相应位置插入即可。如果根节点的左右两颗树层数相差过多的话,性能不好,O(n),所以需要进行平衡二叉树,在此后说。由PAT甲级中的一道题想到。Build A Binary Search Tree (30)//建原创 2017-03-15 22:40:15 · 413 阅读 · 0 评论 -
Pop Sequence (25)
分析:重复入栈过程。其他分析:如果栈的容量为5,那第一个比较的数字必然不大于5,否则会爆栈,所以可以设置一个index,把index~待检测的数值之间的数字全部入栈,如果爆栈就不符合要求。代码:#include "iostream"#include "vector"#include "string"#include "cstring"#include "queu原创 2017-03-21 13:59:28 · 365 阅读 · 0 评论 -
String Subtraction (20)
注意:字符串输入可能会有空格,用getline(cin, string);代码:#include "iostream"#include "vector"#include "string"#include "cstring"#include "queue"#include "map"#include "cstdio"#include using namespace原创 2017-03-21 13:30:16 · 340 阅读 · 0 评论 -
Find Coins (25)
思路:500个面值,哈希存储即可。注意从1开始算的话,注意M-i>500的情况。代码:#include "iostream"#include "vector"#include "string"#include "cstring"#include "queue"#include "map"#include "cstdio"#include using namespace原创 2017-03-21 13:22:21 · 280 阅读 · 0 评论 -
PAT算法笔记(五)————旧键盘*
题目描述旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入描述:输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。输出原创 2017-03-02 21:51:13 · 410 阅读 · 0 评论 -
PAT算法笔记(四) ————锤子剪刀布
题目描述大家应该都会玩“锤子剪刀布”的游戏:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入描述:输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。原创 2017-03-02 21:09:29 · 1016 阅读 · 0 评论 -
PAT算法笔记(三)————数素数
题目描述令Pi表示第i个素数。现任给两个正整数M 输入描述:输入在一行中给出M和N,其间以空格分隔。输出描述:输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。输入例子:5 27输出例子:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73原创 2017-03-01 23:34:43 · 399 阅读 · 0 评论 -
PAT算法笔记(二)————数字分类
题目描述给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。输入描述:每个输入包原创 2017-03-01 22:54:06 · 375 阅读 · 0 评论 -
PAT算法笔记(一) ————A+B和C
题目描述给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。输入描述:输入第1行给出正整数T(输出描述:对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。输入例子:41 2 32 3 4214748364原创 2017-02-28 21:26:25 · 614 阅读 · 0 评论 -
PAT算法笔记(九)————程序运行时间
题目描述要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用clock(),获得一个时钟打点数C1;在原创 2017-03-05 17:25:21 · 695 阅读 · 0 评论 -
PAT算法笔记(十)————人口普查
题目描述某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入描述:输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(原创 2017-03-05 20:23:38 · 383 阅读 · 0 评论 -
德才论 (25)
思路:建立四个vector,通过插入排序进行排列或者自己创造链表进行插入排序。代码:#include #include #include using namespace std;int N, L, H;struct Student{int Num, talent, moral;};vector People_Type[4];原创 2017-03-09 22:11:47 · 293 阅读 · 0 评论 -
The Dominant Color (20)
在20分内算是比较有难度了,可能也是思考比较绕弯。想不到存两个数据的数组形式,只好又创建一个。800*600也比较大,不用存储。#include "iostream"#include "vector"#include "string"#include "cstring"#include "queue"#include "map"using namespace std;原创 2017-03-19 19:50:55 · 308 阅读 · 0 评论 -
Is It a Binary Search Tree (25)
题目分析:1、要求根据给出的数字建立二叉树2、看看给出的数字序列是不是先序遍历,是则给出后序遍历3、看看给出的数字序列是不是镜像的先序遍历,是则给出镜像的后序遍历注意地方:手写解题的时候,要注意镜像是左边大于等于根节点,右边小于根节点,完全镜像。遍历方法:1、先序:根节点,左儿子调用递归,右儿子调用递归2、中序、后序类似void PreOrd原创 2017-03-18 22:37:56 · 436 阅读 · 0 评论 -
PAT算法笔记(六)————反转链表(需要修改)
参考博客:http://blog.csdn.net/livecoldsun/article/details/36899291题目描述给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。输入描述:每个输原创 2017-03-03 15:08:05 · 347 阅读 · 0 评论 -
PAT算法笔记(七)————完美数列(快速排序)
题目描述给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入描述:输入第一行给出两个正整数N和p,其中N(5)是输入的正整数的个数,p(9)是给定的参数。第二行给出N个正整数,每个数不超过109。输出描述:原创 2017-03-04 18:11:57 · 385 阅读 · 0 评论 -
Prime Factors (25)
思路:求质数因子,从2到sqrt(Num)1.考慮Num=1的情況2..考虑Num=质数的情况3.考虑最后除完剩下一个质数的情况,如例题中的12914.考虑最后除完剩下的是1的情况代码:#include "iostream"#include "string"#include "cmath"#include "vector"using namesp原创 2017-03-11 16:11:09 · 310 阅读 · 0 评论 -
Kuchiguse
题目描述The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker's personality. Such a preference is c原创 2017-03-07 21:24:17 · 343 阅读 · 0 评论 -
Highest Price in Supply Chain
题目描述A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier to customer.Starting from one root supplier, everyone原创 2017-03-07 20:30:06 · 310 阅读 · 0 评论 -
PAT算法笔记(十七)————月饼
题目描述月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖原创 2017-03-07 14:20:10 · 413 阅读 · 0 评论 -
Consecutive Factors (20)
暴力求解。#include "iostream"#include "vector"#include "string"#include "cstring"#include "queue"#include "map"using namespace std;int main(){ int N; while (cin >> N) { int max = 1; int s原创 2017-03-20 18:57:01 · 273 阅读 · 0 评论 -
PAT算法笔记(十六)————组个最小数
题目描述给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入描述:每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、…原创 2017-03-07 10:05:04 · 515 阅读 · 0 评论 -
PAT算法笔记(十三)————A除以B
题目描述本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。输入描述:输入在1行中依次给出A和B,中间以1空格分隔。输出描述:在1行中依次输出Q和R,中间以1空格分隔。输入例子:123456789050987654321 7输出例子:17636原创 2017-03-06 20:06:53 · 262 阅读 · 0 评论 -
PAT算法笔记(十四)————科学计数法
题目描述科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。输入描述:每个输入包含1个测试用例原创 2017-03-06 20:39:46 · 639 阅读 · 0 评论 -
PAT算法笔记(十五)————D进制的A+B
题目描述输入两个非负10进制整数A和B(30-1),输出A+B的D (1 输入描述:输入在一行中依次给出3个整数A、B和D。输出描述:输出A+B的D进制数。输入例子:123 456 8输出例子:1103代码:#include"iostream"#include "string"#include "c原创 2017-03-07 09:44:52 · 242 阅读 · 0 评论 -
PAT算法笔记(十二)————打印沙漏
题目描述本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递 增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的原创 2017-03-06 19:15:53 · 449 阅读 · 0 评论 -
PAT算法笔记(十一)————部分A+B
题目描述正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA、B、DB,请编写程序计算PA + PB。输入描述:输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 10。输出描述:在一行中输出PA + PB的值原创 2017-03-06 10:07:44 · 388 阅读 · 0 评论 -
PAT算法笔记(八)————有几个PAT*
题目描述字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?输入描述:输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。输出描述:在一行中输出给定字符串中包含多少个PAT。由于原创 2017-03-04 18:35:38 · 1102 阅读 · 0 评论 -
The Largest Generation
题目描述A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level belong to the same generation. Your task is to find the generation with the largest population.原创 2017-03-08 17:00:33 · 313 阅读 · 0 评论