queue
Datrilla
C语言拷贝人才
展开
-
1044. Shopping in Mars (25)
题目N个数,看看是否有连续的几个数和是M的,是按照i顺序输出i-j; 否则找到一个min>M又最接近M的那个,输出连续几个和是min的,按照i顺序输出i-j;我用到的queue 先进先出队列原创 2015-08-09 10:13:19 · 659 阅读 · 0 评论 -
1106. Lowest Price in Supply Chain (25)
这一题的类型感觉去年做了好几次了。但是这次还是会细节问题N(三种商人) price(厂家价格) r(每转手一家,价格(1+r%))ki个 ID[1]……ID[ki][其中ID从0到N-1,ID[]=0代表厂家]问题求的是没有转手的那些商家【零售商】,价格最低是多少【min】,且达到最低价格的有几家【num】输出min num原创 2016-07-10 18:14:24 · 447 阅读 · 0 评论 -
1006. Tree Traversals - Hard Version (35)
n个结点中序残缺列先序残缺列后序残缺列 求能不能唯一确定一棵二叉树,可以输出中序遍历、先序遍历、后序遍历、层次遍历;每个遍历后面没有多余的空格。 不能唯一确定输出“Impossible”我一共尝试了5种方法,一、一种方法是错误的(5个测试点错误);二、另一种方法考虑没有周全(两个测试点错误);三、一种方法直接递归(最后一个测试点运行超时)四。一种方法把递归的拆成两部分,存入多维数组里面(最后一个测试点内存超限)【这个代码中有vector的[]传参】五、把第三种和第二种部分相结合原创 2015-09-17 17:24:16 · 5313 阅读 · 3 评论 -
1102. Invert a Binary Tree (25)
N个结点(编号0~N-1;N不超过10)接着N行分别为编号0~N-1对应点的 右结点编号 左结点编号(如果没有结点就是-)要求输出这个二叉树的层次遍历的 、中序遍历的这是这次pat2015中25分的,也是这次pat考试中唯一一个ac并且一次就ac的原创 2015-09-12 20:53:10 · 921 阅读 · 0 评论 -
1094. The Largest Generation (25)
输入:N(这个家族的总成员数) M(有几个人有子嗣)M行(父节点编号) father count(几个子结点) child1 child2……childcount(对应子结点编号)……求哪一辈份的人数最多,是哪一代。这里默认祖宗为编号1,祖宗为第一代;这里用BFS层遍历数个数;找出人数最多的那一代。我一开始开动态数组的时候开太小,vs就报错。原创 2015-08-19 10:34:29 · 1004 阅读 · 3 评论 -
1091. Acute Stroke (30)
下面两个代码的区别是一个用了符号重载;M N L T(L个M行N列的长方体)接着就是L个M行N列的输入;0代表正常,1代表异常;而造成病变的,是一块的异常总数>=T; PS:一块的意思是只要上下左右前后有是异常的就加起来。这里用的是BFS,对于每个左标,进行上下左右前后,在范围内的异常的进行累加,并扩展的一块之外都是正常,然后看看这一块的异常总数是不是>=T;是就是病变加到core里面 vector<vector<vector<bool>>>cuboid(L);长方体 vector< i原创 2015-08-19 00:42:58 · 636 阅读 · 0 评论 -
1090. Highest Price in Supply Chain (25)
零售商+经销商+厂商=N(代号0~N-1) 厂家直销价格p 每次转手价格增加百分之rN个数(代表0~N-1从对应的代号买的,当数为-1,说明这家是厂家)求消费者可以预期到最高价格是多少,并给出count家卖的价格是这个最高的原创 2015-08-18 21:30:34 · 869 阅读 · 0 评论 -
1079. Total Sales of Supply Chain (25)
工厂只有一家,默认编号root=0;工厂供货商+经销商+零售商=N(PS:编号0~N-1) 工厂直销价钱p 每经过一次转手增加的百分之r(比如买的时候p,转手卖给下一家为p=p*(100+1)/100)接着N行(代表编号0~N-1的买或卖),这N行形式有两种【一种: 0 买的个数count; 【另一: 卖给num个 接着num个来买的人的编号id1 id2……idnum;求出那些买的【入手价钱*原创 2015-08-17 11:07:27 · 639 阅读 · 0 评论 -
1099. Build A Binary Search Tree (30)
有N个结点(0-N-1),接下来N个结点的左结点和右结点标号,无为-1;再接下来给出N个要填充的值;填充要点左<中,中<=右;做法先按非降序排列#include<algorithm> 使用DFS深度优先搜索中序填充 左-中-右输出一层一层输出用到BFS广度优先搜索 中-左-右用到了#include<queue>queue先进先出原创 2015-08-02 10:46:56 · 864 阅读 · 0 评论 -
1004. Counting Leaves (30)
这题看了很久很不懂在说甚么,就百度汉化版,原来是有一棵树,然后看看每一层有几个叶子结点(即没有子结点的点),然后一个个输出。结果弄完能是找不出哪里有误,用了别人的测试样例才发现是函数TreeBFS()中Nosign == Father[nowID].index写错成Nosign ==Child[Index].frontindex;这一题我用到了数组邻接表和广度优先搜索还有queue(先进先出)。这一题是只有一棵树,我TreeBFS的前面用于处理找到树根,假如不只一棵数,应该也是可以的吧。原创 2015-07-22 23:03:04 · 1296 阅读 · 3 评论 -
1107. Social Clusters (30)
N(一共有的注册用户数)Ki(后面有ki个爱好对应编号): h1……hki……求这些注册用户可能是朋友的朋友圈个数;【用户id:1~N;爱好编号1~1000】比如【3】2:5 3【5】1:3【7】4:6 8 1 5【3】【5】有共同爱好3,存在可能,【3】【7】有共同爱好5,存在可能;座椅【3】【5】【7】一个圈我用的bfs,有的用并查集的(想到过并查集,但是很久没做了,又失之东隅)原创 2016-07-10 18:29:37 · 733 阅读 · 0 评论