自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不应该放弃,直到失去的那一刻

只为超越昨日的自己

  • 博客(102)
  • 收藏
  • 关注

转载 C++11 lambda 表达式解析

转自点击打开链接C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看。本文作为 5 月的最后一篇博客,将介绍 C++11 的 lambda 表达式。很多语言都提供了 lambda 表达式,如 Python,Java 8。lambda 表达式可以方便地构造匿名函数,如果你的代码里面存在大

2016-12-19 15:38:10 346

转载 Impala与Hive的比较

1. Impala架构       Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具,Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从

2016-03-28 15:49:48 520

原创 1099.Build A Binary Search Tree

【题意】        对于一个给出结构的BST,将给定的数字填入其中并输出层先遍历序列【思路】        BST的中序遍历是非递减的,利用这一点即可用一次中序遍历把数字填上。层先遍历用队列实现#include #include #include #include #include using namespace std;struct BiNode{ i

2015-03-24 18:34:49 455

原创 1098.Insertion or Heap Sort

【题意】        和1089差不多,无非是归并排序改成了堆排序。【思路】        直接码即可#include #include #include using namespace std;int n;void adjustDown(int cur, int size, vector &vec){ int index = 0, maximum = v

2015-03-24 18:34:28 450

原创 1097.Deduplication on a Linked List

【题意】        给出内存中的链表信息,将给定头结点的链表拆分成节点绝对值不重复的子链表以及剩余节点构成的另一个子链表。【思路】        直接码即可,用set记录出现过的绝对值。题目的坑估计和1052、1074差不多,所以成功避开。#include #include #include #include #include using namespace

2015-03-24 18:33:38 357

原创 1096.Consecutive Factors

【题意】        找出一个给定数字分解因数的所有可能中连续因数最长的串【思路】        暴力找每一个数字为起始的因数串即可#include #include using namespace std;int main(){ int n; cin >> n; int maxCnt = 1, first = n; for (int i = 2; i <

2015-03-24 18:32:19 571

原创 1095.Cars on Campus

【题意】        给出一些车进出校园的记录,计算特定时间点停在学校里的车的数量,并输出停的时间最长的车的车牌号以及停车时长。【思路】        这题和1016有点像,都要匹配 in 和 off。先按照车牌号和时间排序,筛去错误的车辆进出记录并计算最长停车时长以及相应的车辆;再按照时间排序,对于每一条记录模拟车辆进出过程即可。#include #include

2015-03-14 20:46:45 995

原创 1094.The Largest Generation

【题意】        给出一个树,找到节点数最多的一层以及相应的节点数【思路】        先将输入读入一个map中,然后用队列层先遍历即可#include #include #include #include #include using namespace std;int main(){ int n, m; cin >> n >> m; map

2015-03-14 20:45:39 383

原创 1093.Count PAT's

【题意】        找出给出的字符串中PAT子串的个数【思路】        对于每一个A,PA的个数由前面P的个数决定;对每一个T,PAT的个数由前面PA的个数决定,所以只需要从前往后扫一遍,记下中间P的累计个数、PA的累计个数即可得到答案#include #include using namespace std;#define SIZE 1000000007

2015-03-14 20:44:57 384

原创 1092.To Buy or Not to Buy

【题意】        判断字符串1是否包含了字符串2所有的字符,是的话输出多余字符数,否则输出缺的字符数【思路】        直接码即可#include #include #include using namespace std;int main(){ string str[2]; map mm; for (int i = 0; i < 2; ++i){

2015-03-14 20:42:24 395

转载 KMP算法详解——适合初学KMP算法的朋友

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://billhoo.blog.51cto.com/2337751/411486相信很多人(包括自己)初识KMP算法的时候始终是丈二和尚摸不着头脑,要么完全不知所云,要么看不懂书上的解释,要么自己觉得好像心里了解KMP算法的意思,却说不出个究竟,所谓知其然不知其所以然是也。

2015-02-02 22:20:07 558

原创 1091.Acute Stroke

【题意】        给出一个三维空间的 01 矩阵,算出所有超出阈值的相连的1的数目【思路】        看到题目描述马上想到了并查集,不过我之前的题目都没用并查集写过,于是有点手生,好在最后还是成功AC,正好练练手了【注意点】        在归并集合时6个方向只要找坐标减小的3个方向即可,多找了没必要而且会超时#include #incl

2015-01-28 19:23:15 580

原创 1090.Highest Price in Supply Chain

【题意】        找到一个供销网络中的最高零售价和相应的零售商人数【思路】        其实就是求从根节点到叶节点的最大深度,记录下每个供应商供给的人的编号,DFS即可#include #include #include #include using namespace std;int maxDepth = 0,cnt = 0;vector>

2015-01-28 16:24:55 646

原创 1089.Insert or Merge

【题意】        给出一个初始数列和一个部分排序的数列,判断所用的是插排还是归并排序,并输出下一轮排序的结果【思路】        具体排序可用sort代替,总体思想是该种排序方式即可【注意点】        插排的第一轮至少得是两个数,不然有个1分的点过不去,可能是这么一种情况:                初始数列:1 3 2 0   

2015-01-28 16:20:11 463

原创 1088.Rational Arithmetic

【题意】        对两个分数进行四则运算,并用最简形式表示结果【思路】        通过求最大公约数约分,别的就没啥好说的了#include #include #include #include #include #include using namespace std;#define ll long longll gcd(ll a, l

2015-01-28 16:03:25 477

原创 1087.All Roads Lead to Rome

【题意】        找出一个图中起始节点到目标节点代价最少并满足其他一些条件的路径【思路】        类似的题在PAT里实在碰到太多遍了。。。依然是Dijkstra找最短路径长然后DFS找到所有最短路径并筛选的老套路#include #include #include #include #include #include using namesp

2015-01-27 17:30:32 719

原创 1086.Tree Traversals Again

【题意】        给出一个非递归输出二叉树中序遍历的方法,根据这种方法建立二叉树并输出此二叉树的后序遍历【思路】        找出利用栈输出中序遍历的规律即可建树:            ·    push时若之前节点无左子树就插在之前节点的左子树上,否则插入右子树;            ·    pop时要记录弹出的栈顶节点        后序遍历递归实

2015-01-27 17:28:47 427

原创 1085.Perfect Sequence

【题意】        找到给出的数字集合中满足最小数字乘以一正整数p不小于最大数字的子集的最大容量(= =感觉说的有点拗口。。。)【思路】        此题可用DP做,先对所有数字由小到大排个序,放在num数组中,然后用 dp[i] 表示 num[i] 为最大数字的数字串中最小数字的下标,        ①    若 num[dp[i-1]]*p>=num[i],则 d

2015-01-27 17:28:02 396

原创 1084.Broken Keyboard

【题意】        找到相对第一个字符串,第二个字符串少了的字符(需大写)【思路】        用一个集合存下第二个字符串中的所有字符,然后对第一个字符串从前往后比对即可,碰到多余的字符要加入集合中以避免再次输出#include #include #include #include #include using namespace std;int

2015-01-27 17:27:17 443

原创 1083.List Grades

【题意】        给出一些学生的姓名、学号、年级信息,按照年级非递增(因为不存在相同的年级,其实就是递减)的顺序输出指定年级区间内学生的姓名和学号信息。【思路】        用个vector存信息的结构体,写个cmp函数,sort一下,再输出指定区间信息即可。#include #include #include #include using name

2015-01-26 15:16:08 297

原创 1082.Read Number in Chinese

【题意】        给出一个至多9位的整数,用中文读法读出来【思路】        首先如果是负的就输出“Fu "并取相反数,然后由于亿位最多只有一位,也容易处理。对于万级别和小于万级别的数可以写一个函数统一读,这个函数可以读1、2、3、4位,并根据之前有没有输出过数字、有没有输出过'ling'判断是否输出空格、'ling',并输出非零数字和单位。【注意点】

2015-01-26 15:15:27 498

原创 1081.Rational Sum

【题意】        求一连串分数的和,仍用分数表示结果【思路】        每加两个分数,先通分、再约分(涉及找最大公约数,注意分子为0的特殊情况的处理),最后判断整数部分是否为0,是否只有整数部分等情况即可#include #include using namespace std;#define MAXN 100int gcd(int a, in

2015-01-26 15:13:47 447

原创 1080.Graduate Admission

【题意】        根据学生的成绩以及学校的容量确定各学校的录取情况【思路】        记录学生的各种分数、志愿等信息,记录学校的计划招生人数、已招学生以及已招的最低排名(保证即使超出了计划招生容量,后面来的同一排名的学生也能被录取)等信息,再对学生排个名,最后从前往后一个个看能不能录取即可#include #include #include usin

2015-01-26 15:11:10 516

原创 1079.Total Sales of Supply Chain

【题意】        计算一个供销网络中零售商卖的总价【思路】        DFS找到所有零售商即可,要记录路径的深度【注意点】        这题的数据范围可达10^10,用float过不去,要用double#include #include #include #include using namespace std;vector>

2015-01-26 15:03:53 379

原创 1078.Hashing

【题意】        考查哈希表的知识,解决冲突用的是平方增量【思路】        直接码即可【注意点】        记总容量为n,则判断是否有位置放时至多要判断n次,因为a^2≡(a+n)^2(mod n)#include #include #include using namespace std;vector mark;boo

2015-01-26 14:59:01 452

原创 1077.Kuchiguse

【题意】        找几个字符串的最长公共后缀【思路】        从后往前看即可【注意点】        刚开始想多了,以为到空格就要截断= =去掉这个判断后果断AC#include #include #include using namespace std;int main(int argc, char const *argv

2015-01-26 14:54:08 478

原创 1076.Forwards on Weibo

【题意】        根据微博的粉丝网络,计算一条微博最多被转发的次数【思路】        BFS可搞定,DFS应该也可以【注意点】        BFS时进队列就要把visited标记一下,否则可能重复计数,当然这个问题在测试数据中就已经体现了#include #include #include using namespace std;

2015-01-25 17:27:41 452

原创 1075.PAT Judge

【题意】        给出一个PAT提交列表,输出排名结果【思路】        此题细节稍多,难度不大,直接码即可【注意点】        一开始我在处理最后要输出的用户列表时想省空间,于是在原vector里删除,结果有个点总是超时,改成scanf和printf还是不行。后来猜测可能是频繁对vector进行删除、每次都要挪动后面的元素导致的超时,于是另开了一

2015-01-25 17:26:26 326

原创 1074.Reversing Linked List

【题意】        对于一个存数的链表,每k个节点倒置一次,从头结点到尾节点输出结果【思路】        先用map存下输入的节点,然后按照从头到尾的顺序放入一个vector中,最后借助reverse函数即可实现倒置【注意点】        之前做1052题的时候我默认所有节点都是有用的,结果错了几次才发现可能有多余节点。这次一开始就注意了这个问题于是1A

2015-01-25 17:25:50 460

原创 1073.Scientific Notation

【题意】        将科学表示法的浮点数表示为普通形式【思路】        注意字符串的处理即可【注意点】        位数不够要补零#include #include using namespace std;int main(int argc, char const *argv[]){ string rawNum,num; i

2015-01-25 17:24:55 366

原创 1072.Gas Station

【题意】        找一个到所有房屋最短距离最远,平均距离最近,且覆盖所有房屋的加油站【思路】        把住房和加油站都视作普通节点,对每个加油站用一次Dijkstra算法即可【注意点】        此题Dijkstra算法中可以不用遍历到每个点,只要把所有房屋都访问到了就可以了,即使有些加油站访问不到或者超出了服务范围也不要紧。#inc

2015-01-24 18:28:29 521

原创 1071.Speech Patterns

【题意】        找出一行输入的字符串中最常使用的词,大小写不敏感【思路】        从前往后扫描,用两个指针记下子字符串的起始位置和终止位置,并将分出来的词存在记录出现次数的map中即可#include #include #include using namespace std;bool isCharacter(char ch){ retur

2015-01-24 18:27:07 404

原创 1070.Mooncake

【题意】        给出一些月饼的总量和总价,按照重量需求选购月饼使得总价最高【思路】        计算出重量和价钱的比例,从小到大排一下即可【注意点】        虽然题中例子给的重量都是整数,但题干中并没明确说重量是整数,其实判题程序中有浮点数的情况。。。#include #include #include #include us

2015-01-24 17:38:31 399

原创 1069.The Black Hole of Numbers

【题意】        求数字黑洞6174的计算过程【思路】        直接码【注意点】        若输入的数就是6174也至少要输出一次#include #include #include using namespace std;vector num2vec(int num){ vector res; res.resize(

2015-01-24 17:37:48 375

原创 1068.Find More Coins

【题意】        这题是1048题的扩展,能用的硬币数可以不只是两枚,币值和必须跟给定价钱相等【思路】        用map存下每个币值的硬币数,然后从小往大试即可。有点类似于DFS#include #include #include using namespace std;map coins;stack res;bool findCoins(

2015-01-23 16:30:34 379

原创 1067.Sort with Swap(0,*)

【题意】        对于一串 0到N-1 打乱的数字,只能交换 0 和另一个数字,判断把这个数字串排成 0,1,2...N-1 需要几次交换【思路】        每次把 0 所在位置应该放的数和 0 交换位置,直到所有数字都排在自己应该排的位置上为止。【注意点】        当 0 换到了 0 位置时,可能还有数字没有交换完毕,这时候需要“浪费”一次交换

2015-01-23 16:29:52 338

原创 1066.Root of AVL Tree

【题意】        给出一个AVL树的添加节点顺序,输出最后得到的树的根对应的值【思路】        直接模拟即可,纯属考察概念

2015-01-23 16:28:55 382

原创 1065.A+B and C (64bit)

【题意】        判断三个整数A、B、C是否满足A+B>C【思路】        直接码【注意点】        注意对溢出的处理即可#include using namespace std;int main(int argc, char const *argv[]){ long long a,b,c; int t; cin >

2015-01-23 16:24:45 375

原创 1064.Complete Binary Search Tree

【题意】        给出一个BST的所有元素,要求这个BST同时是完全二叉树,输出这个二叉树的层先遍历序列【思路】        对于一个完全二叉树,总的节点数给出后左右子树的节点数就确定了,再结合BST的中序遍历是递增数列的特性,就可以递归地建树了。层先遍历自然是借助队列实现#include #include #include #include #in

2015-01-22 18:50:03 368

原创 1063.Set Similarity

【题意】        给出几个集合(有重复元素),按照给出的规则计算几个集合间的相似度【思路】        用set存下每一个集合,比较时记两个集合元素个数分别为a和b(无重复),通过在一个集合中找另一个集合中的元素得出并集的元素个数c,则相似度为(a+b-c)/c*100%#include #include #include #include usin

2015-01-22 18:43:44 377

空空如也

空空如也

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

TA关注的人

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