cccc-gplt
oranges_c
落寞是岁月的痕迹
展开
-
团体程序设计天梯赛-练习集-L2-004. 这是二叉搜索树吗?
题目链接虽然只是L2级,但是感觉比一些L3还要难写。。其实就是建树的一个过程,如果可以把序列划分成两个部分,一部分的值都比这个节点小,另一部分的值都大于等于这个节点的值 对于每一个节点,都如此判断,递归进行。 这题要注意很多细节。 通不过的可以测试下 Sample1: 2 2 1 Sample2: 3 3 1 2#include <cstdio>#incl原创 2017-02-10 16:33:38 · 487 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L2-016. 愿天下有情人都是失散多年的兄妹(dfs)
题目链接一看题目,我以为可以用LCA算法写,写了半天,后来发现不是树(woc…) 再看题目,不超过5代,那么直接暴搜咯、、查询时,标记一个人的不超过5代的祖先,再从另一个人向上搜索在5代内是否有标记过的祖先。#include <bits/stdc++.h>using namespace std;#define ALL(v) (v).begin(),(v).end()#原创 2017-03-14 18:08:27 · 563 阅读 · 0 评论 -
PAT(A)-1099. Build A Binary Search Tree (30)
题目链接题目大意: 一棵二叉排序树,有n个点,告诉你每个点的左右儿子编号; 给你n个值。 确定每个值所在的位置。输出层序序列。先将值排好序。 从根节点开始递归建树。 每次确定当前点在当前区间排第几,也就是要知道当前点的左子树上有多少个点。搜索一遍即可。#include <bits/stdc++.h>using namespace std;#define fi f原创 2017-03-21 17:41:01 · 226 阅读 · 0 评论 -
PAT(A)-1127. ZigZagging on a Tree (30)(树的重建)
题目链接题目大意: 给你一颗二叉树的中序和后序。 要你输出指定顺序的序列。又是树的重建。。 输出的序列跟层序差不多,判断一下是否逆序存放就行了。PS:这次春季,水的一匹。。这树的重建出了不知道多少遍。。#include <bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#原创 2017-03-07 20:39:55 · 831 阅读 · 0 评论 -
PAT(A)-1126. Eulerian Path (25)(欧拉图的判断)
题目链接题目大意: 给你一个图,判断是欧拉回路,还是不是欧拉回路的欧拉通路,还是不是欧拉图。#include <bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))typedef long long LL;const int INF = 0x3f3f3f3f;const in原创 2017-03-07 20:35:11 · 263 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L2-014. 列车调度(LIS)
题目链接 决赛的L2-2,当时暴力下,有几个case是TLE的。。 现在一看,就感觉有点像是LIS,然后交了下还真过了。。至于为什么 要将一个序列以递减的顺序出栈,在每个栈的序列都要是从上到下是递减的。 假设栈的数量小于LIS,那么总会有一个数的前面有比它小的数 就是有一个栈的不是按照从上到下是递减的 那么出栈也不可能是递减出栈了#include <cstdio>原创 2017-02-11 16:54:06 · 456 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L3-011. 直捣黄龙(最短路+计数)
题目链接 最快路径其实就是最短路径。以下数组都在满足最短路条件下 num[i] := 表示到达i点的最短路径数 len[i] := 表示到达i点所经过的点数,不包括起点 tot[i] := 表示到达i点所救的人数#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#原创 2017-02-12 15:17:24 · 633 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L3-005. 垃圾箱分布(最短路dijkstra)
题目链接对每一个垃圾桶都用一遍dijkstra,然后把相应的数据存入结构体排下序,再输出就可以了 如果有一个居民点和垃圾桶间没有路径,这肯定是不行的。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;#define cl(a,b原创 2017-02-12 15:10:31 · 627 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L3-007. 天梯地图(最短路)
题目链接 这题跟pat(A)1111很像。。 只是在求最短路和最快的路的次要条件不一样并且输出格式颠倒一下。 之前写过pat(A)1111的代码 就稍微改下。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;#define原创 2017-02-11 22:56:37 · 420 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L2-013. 红色警报(dfs)
题目链接还记得这是去年决赛时L2的第一道题,当时还是有点懵。现在看看就是暴力的dfs。。#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <vector>#include <set>#include <map>#原创 2017-02-11 16:43:09 · 350 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L2-007. 家庭房产(并查集)
题目链接 并查集的略微扩展,用Size数组记录人数,num数组记录房产数,area数组记录面积 就是处理起来会有点麻烦。#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <vector>#include <set原创 2017-02-11 16:39:28 · 538 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L3-002. 堆栈(线段树-区间第k大)
题目链接其实可以套主席树求动态的区间第k大。但是这里规定了范围[1,100000] 我们可以建立一颗线段树,线段树的节点值表示在这个区间内数的出现次数的总和 比如区间为[2,2]的节点的值为2的出现次数 这样相当于对整个栈序列排了个序。 然后我们可以用二分的方法查询区间第k大。 这里的k就是当前栈序列大小的中值#include <cstdio>#include <原创 2017-02-19 18:08:59 · 666 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L2-012. 关于堆的判断(小顶堆)
题目链接这里建堆要每输入一个值就插入并且向上调整 在堆顶设置一个哨兵会省点操作 还要注意值有负数,在处理字符串的时候要注意。(之前一直不知道哪里有问题,后来才发现负数忘了处理,一直过不了)#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorith原创 2017-02-19 18:01:17 · 978 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L3-004. 肿瘤诊断(三维bfs)
题目链接 这题原来写的是dfs。结果给我段错误,应该是爆栈了?后来改成了三维bfs#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <queue>using namespace std;#define ALL(v) (v).begin(),(v).原创 2017-02-10 16:37:49 · 380 阅读 · 0 评论 -
团体程序设计天梯赛-练习集-L2-018. 多项式A除以B
题目链接不给数据范围。让我说什么好。。我还犹豫了半天要不要用数组。。 最后想了想,算了用数组暴力一发。。 结果就过了。。就是两个循环; 第一重枚举a多项式的头 第二重进行计算 PS:大区赛时敲得代码。略丑。#include <bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a)原创 2017-03-26 16:37:29 · 1005 阅读 · 0 评论