
PAT
文章平均质量分 64
Line290
这个作者很懒,什么都没留下…
展开
-
1086. Tree Traversals Again (25)
for(int i=inl;i#include#include#include#include #include#includeusing namespace std;const int MAX = 50;stack s;vector post;int pre[MAX],in[MAX];void creatpostorder(int prel,int prer,int i原创 2016-12-10 04:23:18 · 346 阅读 · 0 评论 -
1060. Are They Equal (25)
考虑:1、0001.2222、0.01233、04、不足位数0补齐#include#include#include#include #include#include#include #includeusing namespace std;int n; string changes(string s){ string a; int i = 0; int原创 2017-02-16 13:47:35 · 351 阅读 · 0 评论 -
1061. Dating (20)
注意最后分钟的判定是大小字母#include#include#include#include #include#include#include #includeusing namespace std;string Day(char a){ switch(a){ case 'A':return "MON";break; case 'B':return "TUE";br原创 2017-02-16 14:43:40 · 339 阅读 · 0 评论 -
1044. Shopping in Mars (25)
双指针,辅助数组存储对应位置信息#include#include#include#include #include#includeusing namespace std;const int INF = 100000001;vector num;int main(){ int n, m; cin>>n>>m; for(int i = 0; i < n; i++){ i原创 2017-02-08 11:48:11 · 301 阅读 · 0 评论 -
1122. Hamiltonian Cycle (25)
。。。又是一A。。。考试的时候刚开始写的思路就是对的,不过可能是用的方法不好,导致一个三分的测试点不通过我还以为简单回路概念搞错了,因为最后一题就算丢了就把所有时间都和这三分较真了,改了又改。。。所以考试的时候一定不能紧张!!!一定要多想一会,不着急下笔。。。不对。。。是下手所以前三题都是简单题。。。没有坑点的简单题,不用套模版的简单题!!!对了考试的时候NO中字母写成了零。。原创 2017-01-12 19:58:49 · 543 阅读 · 0 评论 -
1098. Insertion or Heap Sort (25)
#include#includeusing namespace std;const int MAX = 110;int input[MAX],a[MAX],output[MAX];int n;bool same(int a[],int b[]){ for(int i=1;i<=n;i++){ if(a[i]!=b[i]) return false; } return true转载 2017-01-18 15:09:46 · 343 阅读 · 0 评论 -
1089. Insert or Merge (25)
归并排序和插入排序,和1098类似#include#includeusing namespace std;const int MAX = 110;int input[MAX],a[MAX],output[MAX];int n;bool same(int a[],int b[]){ for(int i=1;i<=n;i++){ if(a[i]!=b[i]) return false原创 2017-01-19 05:57:46 · 225 阅读 · 0 评论 -
1045. Favorite Color Stripe (30)
昨晚写的时候序号2的6分点没过今天终于去了趟市里,从小到大第一次,真不容易。。。回来坐车上看着窗外,想了想这题,瞬间想到了。。。说说我的思路:(以题目中例子为例)因为第二行给定颜色序列你肯定要分清先后关系,这里我就用1~m(m是给定的颜色个数)与给定的2、3、1、5、6一一映射 ,2、3、1、5、6映射 1、2、3、4、5再由1、2、3、4、5映射回2、3、1、5、6;当然估计原创 2017-02-09 22:14:30 · 303 阅读 · 0 评论 -
1047. Student List for Course (25)
#include#include#include#include #include#includeusing namespace std;const int K = 2501;vector cous[K];int main(){ int n, k; cin>>n>>k; for(int i = 0; i < n; i++){ char a1, a2, a3; int原创 2017-02-10 01:10:11 · 303 阅读 · 0 评论 -
1048. Find Coins (25)
#include#include#include#include #include#includeusing namespace std;vector coins;int main(){ int n, m; cin>>n>>m; for(int i = 0; i < n; i++){ int temp; scanf("%d",&temp); coins.push_原创 2017-02-10 01:23:51 · 302 阅读 · 0 评论 -
1120. Friend Numbers (20)
考的时候这是第一题,应该说是很简单很简单的不过第一次考,难免有些紧张。。。花了快30分钟才把这题搞定运行的时候发现字符变数字没有加-'0';好尴尬!!!之前一度还想用atoi。。。结果这个用的也不熟,string还要加c_str();转化为字符数组。。。觉得好烦琐,不如直接写个函数转换得了学的多(不精)适得其反。。。#include#include#includeusin原创 2017-01-11 23:20:10 · 295 阅读 · 0 评论 -
1121. Damn Single (25)
当时考试的时候,set::find忘记怎么用了。。。。然后直接从头到位遍历的。。。当然超时了。。。丢了8分,其实是看到最后一题是AVL Tree就没有用剩下的时间去猜find函数怎么用。。。30都丢了,考多少也就无所谓了find是用红黑树,时间复杂度log2n今天写了一下,一A,意料之中复习一下set中常见函数用法吧!#include#includeusing namesp原创 2017-01-11 23:10:22 · 474 阅读 · 0 评论 -
1042. Shuffling Machine (20)
#include#include#include#include #include#includeusing namespace std;const int MAX = 54;char Front(int n){ if(n / 13 == 0){ return 'S'; } else if(n / 13 == 1){ return 'H'; } else if(n原创 2017-02-07 18:44:16 · 289 阅读 · 0 评论 -
1034. Head of a Gang (30)
首先并查集模版要先写上,hash肯定要用设置times数组记录每个人的通话总时长,并且把所有人合并集合设置一个长度为N结构体,集合父亲对应位置存储此集合的一些信息,比如集合中所有人的通话总时长,通话最长的人,成员数遍历所有的人,把每个集合的信息存入结构体对应项为了方便下次找到所有集合的父亲,可以开一个集合(set)存储遍历出现的所有父亲遍历所有父亲,筛选所有符合条件的集合,保存原创 2017-02-04 21:37:18 · 314 阅读 · 0 评论 -
1035. Password (20)
注意参数传递要引用#include#include#include#include #include#includeusing namespace std;struct rec{ string name; string pw;}; vector mod_rec;bool ismod(string &s){ bool flag = true; for(int i =原创 2017-02-04 22:15:20 · 359 阅读 · 0 评论 -
1038. Recover the Smallest Number (30)
注意除去前面零的几种情况#include#include#include#include #include#includeusing namespace std;vector s;bool comp(string a, string b){ string s1 = a + b; string s2 = b + a; if(s1 < s2) return true; else原创 2017-02-05 12:31:44 · 306 阅读 · 0 评论 -
1123. Is It a Complete AVL Tree (30)
#include#include#include#include#includeusing namespace std;struct node{ int v,height; int order; node *lchild,*rchild;};node* newNode(int v){ node* Node = new node; Node->v = v; Node->h原创 2017-01-13 23:49:21 · 613 阅读 · 0 评论 -
逐步构建一个平衡二叉树模版
转自晴神宝典struct node{ int v,height; node *lchild,*rchild;};node* newNode(int v){//新建节点 node* Node = new node; Node->v = v; Node->height = 1; Node->lchild = Node->rchild = NULL; return Node;}转载 2017-01-13 23:56:35 · 530 阅读 · 0 评论 -
1037. Magic Coupon (25)
正负分开都按照负数的话可以以绝对值从大到小排序,省点事#include#include#include#include #include#includeusing namespace std;vector pcoup,ncoup,pprod,nprod;int main(){ int nc,np; cin>>nc; for(int i = 0; i < nc; i++原创 2017-02-05 17:22:02 · 282 阅读 · 0 评论 -
1036. Boys vs Girls (25)
#include#include#include#include #include#includeusing namespace std;struct rec{ string name;// char gender; string id; int grade; }; vector boy, girl;bool comp(rec a, rec b){ if(a.grad原创 2017-02-05 17:41:26 · 278 阅读 · 0 评论 -
1040. Longest Symmetric String (25)
居然没超时。。。最笨的方法。。。不过字符串长度1000以内,而且判断字串是否是回文串,如果不是就跳出,这样应该不会花多少时间,字串大多数情况都是首尾直接就不相等#include#include#include#include #include#includeusing namespace std;string s;int symlen(int low, int high原创 2017-02-05 18:19:19 · 236 阅读 · 0 评论 -
1041. Be Unique (20)
#include#include#include#include #include#includeusing namespace std;const int N = 10010;int num[N] = {0}; vector all_num;int main(){ int n ; cin>>n; for(int i = 0; i < n; i++){ int tem原创 2017-02-06 20:57:14 · 316 阅读 · 0 评论 -
1051. Pop Sequence (25)
出栈的模拟#include#include#include#include #include#include#include using namespace std;stack s;int m, n, k;int main(){ cin>>m>>n>>k; for(int i = 0; i < k; i++){ int cur = 1; bool flag =原创 2017-02-10 19:49:34 · 238 阅读 · 0 评论 -
1052. Linked List Sorting (25)
注意链表为空的情况,此时输出0 和 -1,最后一个点就是考查这个注意题目中这句话:NULL is represented by -1.#include#include#include#include #include#include#include using namespace std;const int N = 100010;struct node{ int add原创 2017-02-10 20:50:47 · 423 阅读 · 0 评论 -
1096. Consecutive Factors (20)
没有细细去分析题目,方法有点繁琐,而且还有一个1分的测试点超时。。。有的地方有些问题,因式有重复的情况,不过对于结果来说不影响#include#include #includeusing namespace std;vector all_factors,out_factors,temp_factors,fin_factors;int n;bool IsFactors(vecto原创 2017-01-20 20:17:53 · 290 阅读 · 0 评论 -
1090. Highest Price in Supply Chain (25)
#include#include#include#includeusing namespace std;const int N = 1000010;struct node{ vector child; int level;}node[N];void levelorder(int root){ queue q; node[root].level = 0; q.pu原创 2017-01-27 16:22:46 · 265 阅读 · 0 评论 -
1023. Have Fun with Numbers (20)
Check to see the result if we double it again!这句废话误导审题了。。。题目意思就是简单的一次2倍。。。两个数比较,我就利用sort排好序比较的,因为长度较短,时间复杂度可以忽略。。。当然打两个0~9的表,方法好一点#include#include#include#include#include#include//#defin原创 2017-01-28 12:38:56 · 243 阅读 · 0 评论 -
1024. Palindromic Number (25)
额,中午刚写的大数加法还没出错这才半天功夫。。。就写错了卡了三小时,想都没往这个地方想。。。这个最后一步是不是回文数无关与结果无关,当第K步是回文数,我这里不会判断它是回文数,反正最后一步是不是回文数,都要输出那个结果#include#include#includeusing namespace std;string sum(string s){//s与s转置相加 st原创 2017-01-28 23:40:34 · 301 阅读 · 0 评论 -
1025. PAT Ranking (25)
#include#include#include#include#include#includeusing namespace std;typedef long long LL;struct node{ LL id; int score; int loca; int fin_rank; int loc_rank;};int n; vector loca_ss, al原创 2017-01-29 07:44:13 · 243 阅读 · 0 评论 -
1027. Colors in Mars (20)
注意: 1、字符数组初始化赋值的几种方法; 2、STL中string的“ + ”操作#include#include#includeusing namespace std;char a[13] = {'0','1','2','3','4','5','6','7','8','9','A','B','C'};//char a[] = "012345原创 2017-01-30 21:25:19 · 257 阅读 · 0 评论 -
1028. List Sorting (25)
#include#include#include #includeusing namespace std;struct rec{ int id; string name; int score;};int n, c;vector recs;bool comp1(rec a, rec b){ if(a.id < b.id) return true; else return原创 2017-01-30 21:45:49 · 277 阅读 · 0 评论 -
1029. Median (25)
这题好像以前时间限制是400ms前些年的408算法题最优解好像是比较两个数组的中间值大小,然后舍去小的左边和大的右边,这样重复到最后,这样时间复杂度就是logn因为pat上有输入,所以时间复杂度至少为O(n)。。。当然可以利用排好序的条件,遍历两个数组,比较大小排序,最后输出中间值,这样时间复杂度就是O(n)#include#include #includeusing原创 2017-01-30 22:41:46 · 281 阅读 · 0 评论 -
1031. Hello World for U (20)
#include#include#includeusing namespace std;int main(){ string s; cin>>s; int n = s.size(); int n1, n2; for(n1 = 1; n1 = 3 && n + 2 - 2 * n1 <= n; n1++); n1--; n2 = n + 2 - 2 * n1; for(int原创 2017-02-01 20:39:43 · 351 阅读 · 0 评论 -
1032. Sharing (25)
本来想的方法是根据样例第三列后继地址的重复的关系求公共节点地址,一般公共地址都会出现两次,如果没有公共节点-1也会出现两次但是好像只能过前三个测试点,不知道是不是输入节点可能包含相同节点的重复,或者一些无用节点#includeusing namespace std;int addr[100001] = {0}; int visited[100001] = {0};int main(原创 2017-02-02 01:01:32 · 463 阅读 · 0 评论 -
1091. Acute Stroke (30)
题目看不懂。。。图也看不懂看完Uncle_Sugar的解答,大概猜出这是,求空间中值为1的点形成的点个数不小于2的所有团簇中点个数总和这个切片。。。前些年全国数学建模比赛也有一个三维血管重建,给的是血管切片1、空间六个方向,用的三个数组,方法挺好,1105题那个不知道可不可以用,当时四个方向写了四句。。。2、还有就是三维数组(i,j,k)的遍历顺序,先k,再二维(i,j),这和Fl转载 2017-01-27 11:19:00 · 263 阅读 · 0 评论 -
1092. To Buy or Not to Buy (20)
利用map建立字符与字符数目的映射扫描商店的做自增扫描Eva的做自减,若商店没有或数目不足,对应字符对应值即为负数最后遍历映射表,同时记录,多出的和缺少的,有负数出现就为"No“,反之”Yes“最后输出缺少的,要变符号#include#include#include#include#include#includeusing namespace std;const原创 2017-01-24 18:26:44 · 365 阅读 · 0 评论 -
1093. Count PAT's (25)
辅助数组记录左右的情况这题和1101. Quick Sort一个思想最后结果要取余数long long 当然也不能忘#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int MAX = 100010;int pnum[MAX]原创 2017-01-24 17:55:38 · 258 阅读 · 0 评论 -
1059. Prime Factors (25)
刚开始质数打表,范围搞大了,弄成了1~n,第一个点15点超时了大于根号n的质数只有一个,若有两个乘积就大于n了,完全可以把表打到根号n若有剩余的一个大于根号n的质因子再额外讨论ps:这里1要输出1=1,有个2分测试点#include#include #include#includeusing namespace std;vector prime;int n;//1~s原创 2017-01-20 23:59:13 · 323 阅读 · 0 评论 -
1053. Path of Equal Weight (30)
考查DFS算法注意点:路径要到叶子节点#include#include#include#include #include#include#include using namespace std;const int N = 101;int n, m, s;int w[N]; int sum[N];//初始化和w[N]一样 vector child[N];vector原创 2017-02-10 22:29:00 · 272 阅读 · 0 评论 -
1055. The World's Richest (25)
这题要剪支,每个年龄段最多输出100人,所以每个年龄最多保留100人就可以了,不然第二点超时不过我第一次用的方法第二点过了,第三点超时了。。。还多赚一分#include#include#include#include #include#include#include using namespace std;struct rec{ string name; int age原创 2017-02-11 15:51:24 · 328 阅读 · 0 评论