PAT
Bendaai
莫忘少年凌云志 曾许天下第一流
展开
-
1019. General Palindromic Number (20)
题目不难,用vector存储转换进制的各个位,然后转置一下,进行比较,相等即Yes#include<iostream>#include<vector>using namespace std;int main(){ int N;; int b; cin >> N >> b; char c; vector<int> vec1,vec2; while原创 2017-02-05 16:45:30 · 272 阅读 · 0 评论 -
1020. Tree Traversals (25)
2 3 1 5 7 6 4 1 2 3 4 5 6 7 得到root为4 左树: 2 3 1 1 2 3 右树: 5 7 6 5 6 7 递归#include<iostream>#define MAX_Node 32#include<deque>using namespace std;int post[MAX_Node];//保存后序原创 2017-02-05 18:25:56 · 285 阅读 · 0 评论 -
1022. Digital Library (30)
用map<string,vector<string>>来存储各个条件下的id,输入完成后,对要输出的map的second即vector进行排序,然后输出即可 对于关键词先getline读取一行,然后用stringstream重新输入到string 如果用int来存储id的话,输出的时候000000显示为0,输出需要设置格式#include<iostream>#include<sstream>原创 2017-02-06 16:13:57 · 293 阅读 · 0 评论 -
1023. Have Fun with Numbers (20)
比较水的一道题,用string存储输入,然后*2成另一个string,通过sort后比较是否一样来判断Y/N#include<iostream>#include<string>#include<algorithm>using namespace std;string double_str(string str){ int temp=0; for (auto it = str原创 2017-02-06 17:01:21 · 285 阅读 · 0 评论 -
1021. Deepest Root (25)
开始用各个叶节点dfs遍历,找最大deep,运行超时,然后评论里发现个方法,挺赞 https://www.nowcoder.com/questionTerminal/f793ad2e0c7344efa8b6c18d10d4b67b#include<iostream>#include<algorithm>#include<vector>#define MAX_V 10002using name原创 2017-02-06 19:10:04 · 375 阅读 · 0 评论 -
1024. Palindromic Number (25)
题目不难,开始错误的原因是用str=tostring(stoll(str)+stoll(str2))来处理结果,导致溢出(str存储的数值可能会远超过10^10)#include<iostream>#include<string>using namespace std;int main(){ string str; cin >> str; int K; cin >原创 2017-02-07 13:32:10 · 333 阅读 · 0 评论 -
1025. PAT Ranking (25)
一道水题,vector存储学生,每输入一个地方的学生,放入临时的vector中,并进行排序,设置好地方排名,然后都放入总的一个vector中,最后对总的vector进行sort,注意sort的时候如果成绩一样,按id的顺序排,设置好总排名,输出即可#include<iostream>#include<vector>#include<string>#include<algorithm>usin原创 2017-02-07 14:05:42 · 295 阅读 · 0 评论 -
1059. Prime Factors (25)
特殊处理2,然后一次对x/3,/5。。。判断,知道x变成0#include<iostream>#include<cmath>using namespace std;int main(){ long int x; cin >> x; cout << x << "="; if (x == 0 || x==1) {//额外处理0,1,的情况 cout原创 2017-02-16 12:52:44 · 305 阅读 · 0 评论 -
1060. Are They Equal (25)
找到第一个有效数字和第一个小数点的位置。然后讨论进行转换#include<iostream>#include<string>#pragma warning(disable :4996)using namespace std;int N;string change(string str)//str边科学计数法的str{ string str2;int temp; unsig原创 2017-02-16 14:27:20 · 188 阅读 · 0 评论 -
1061. Dating (20)
按说明探寻,注意第一个日期 A-G第二个时 0-9和A-N 第三个分 a-z和A-Z#include<iostream>#include<string>using namespace std;string week[7] = { "MON","TUE","WED","THU","FRI","SAT","SUN" };int main(){ string a, b, c, d;原创 2017-02-16 14:51:22 · 246 阅读 · 0 评论 -
1062. Talent and Virtue (25)
对所有数据进行排序,再将其保存到题目各个要求的位置,最后将其输出#include<iostream>#include<vector>#include<algorithm>#include<string>#pragma warning(disable :4996)using namespace std;struct node {//people并创建排列的顺序 string id;原创 2017-02-16 15:32:54 · 212 阅读 · 0 评论 -
1057. Stack (30)
http://blog.csdn.net/x_iya/article/details/8943264 使用树状数组,上面是树状数组的介绍 有一个很大的坑是用cout的时候超时,改成printf就ok了,做题感觉输入输出还是用printf和scanf最快,最稳#include<iostream>#include<string>#include<vector>#include<algorith原创 2017-02-08 12:03:56 · 99 阅读 · 0 评论 -
1065. A+B and C (64bit) (20)
涨了个只是, LLONG_MAX这种类似的常量是包含再climits这个头文件里的#include<iostream>#include<climits>#pragma warning (disable:4996)using namespace std;bool compare(long long int A, long long int B, long long int C){ i原创 2017-02-16 20:29:48 · 447 阅读 · 0 评论 -
1064. Complete Binary Search Tree (30)
先对输入数据排序。然后用中序建立CBT(用数组存储节点),最后层序输出即可#include<iostream>#include<vector>#include<algorithm>#include<queue>#pragma warning(disable:4996)using namespace std;int N;int cnt =0;vector<int> sq,resault原创 2017-02-16 20:50:47 · 225 阅读 · 0 评论 -
1063. Set Similarity (25)
第一次的想法是把要比较的两个set合并成一个set,然后原来set的两个长度-合并的set长度就是公共的长度,然而最后一个测试点过不去,后来就根据set是从小到大排序的规律进行一个个遍历比较,这要就通过了#include<iostream>#include<set>#include<vector>#pragma warning(disable:4996)using namespace std原创 2017-02-16 21:24:38 · 229 阅读 · 0 评论 -
1066. Root of AVL Tree (25)
这道题考察平衡二叉排列树,由于之前没有编写过平衡二叉排列树的代码,过程中出现了一些小错误 1.我存储的是高度,然后通过左右子树高度差来判断是否平衡,开始获取高度时未+1 2.root指针开始未赋值NULL#include<iostream>#include<cstdlib>#include<cstdio>#pragma warning(disable:4996)using namespa原创 2017-02-17 15:50:28 · 500 阅读 · 0 评论 -
1067. Sort with Swap(0,*) (25)
除了位置0,其他位置一旦对应就从存储容器中删除,知道存储容器中只剩下0, 要考虑rr[0]==0的特殊情况#include<iostream>#include<map>#pragma warning(disable:4996)using namespace std;int main(){ int N; int cnt = 0; int tt = 0; ci原创 2017-02-17 19:54:52 · 201 阅读 · 0 评论 -
1027. Colors in Mars (20)
//看到这水道题是懵逼的#include<iostream>#include<iomanip>using namespace std;void trans(int x){ char temp,temp2; temp = x % 13;//个位 temp2 = x / 13;//十位 if (temp > 9) temp += 'A' - 10; else原创 2017-02-09 16:47:17 · 254 阅读 · 0 评论 -
1111. Online Map (30)
并查集#include<iostream>#include<vector>#include<algorithm>using namespace std;int pre[1005] = {};int nu[1005] = {};vector<bool> visited(1005, false);int find_root(int t){ if (t != pre[t]) pre原创 2017-02-27 18:39:52 · 385 阅读 · 0 评论 -
1118. Birds in Forest (25)
并查集#include<iostream>#include<vector>#include<algorithm>using namespace std;int pre[10005];vector<bool> visited(10005,false);int findroot(int t){ if (pre[t] != t) pre[t] = findroot(pre[t]);原创 2017-02-27 19:04:53 · 247 阅读 · 0 评论 -
1119. Pre- and Post-order Traversals (30)
有个坑,数字不是按1.2.3这样排序的#include<iostream>#include<vector>#include<algorithm>using namespace std;struct node { int data; node *l, *r; node() { l = r = NULL; }};vector<node> all;vector<int原创 2017-02-27 20:11:18 · 329 阅读 · 0 评论 -
1120. Friend Numbers (20)
很奇怪的一道水题#include<iostream>#include<vector>#include<string>#include<set>using namespace std;int main(){ int a[40] = {}; set<int> re; int N; cin >> N; while (N--) {原创 2017-02-27 20:25:10 · 385 阅读 · 0 评论 -
1121. Damn Single (25)
单身狗,C++的map和set的确比C方便很多#include<iostream>#include<set>#include<vector>#include<cstring>#include<map>using namespace std;bool vis[100000];bool ha[100000];int main(){ memset(vis, 0, sizeof(v原创 2017-02-27 20:38:53 · 375 阅读 · 0 评论 -
1123. Is It a Complete AVL Tree (30)
#include<iostream>#include<deque>#include<cstdlib>using namespace std;struct node { int data; node *l, *r; int h; node() { l = r = NULL; h = 0; }};int N;int G原创 2017-02-27 21:47:15 · 263 阅读 · 0 评论 -
1122. Hamiltonian Cycle (25)
#include<iostream>#include<vector>#include<string>using namespace std;int arc[205][205] = {};int main(){ int N, M; string str; vector<bool> visited; cin >> N >> M; vector<int>原创 2017-02-27 21:47:47 · 282 阅读 · 0 评论 -
1068. Find More Coins (30)
可能排序太费时间,用map话对于重复的直接次数+1即可,不需要排序 最后个测试点超时的代码#include<iostream>#include<vector>#include<algorithm>#pragma warning(disable:4996)using namespace std;int N, M;vector<int> all;int add = 0;vector<原创 2017-02-18 10:25:18 · 241 阅读 · 0 评论 -
1069. The Black Hole of Numbers (20)
没什么难度吧,注意输入元素几个特殊的就好了#include<iostream>#include<string>#include<algorithm>#pragma warning(disable:4996)using namespace std;int main(){ string str; cin >> str; char temp[10]; sprin原创 2017-02-18 10:45:13 · 252 阅读 · 0 评论 -
1028. List Sorting (25)
题目不难,不过花了很长的时间,开始用cin,cout最后一个测试点过不去(关闭了同步), std::ios::sync_with_stdio(false);这个关了以后最好不要用scanf,用了以后VS2015测试正确,但提交都是错误答案。注:对string用scanf和printf,对于scanf可以用一个临时变量char a[10],而printf可以用string里的子函数c_str()。#原创 2017-02-09 21:11:38 · 242 阅读 · 0 评论 -
1029. Median (25)
可能做了假题,这道题明显该merge,对两个有序序列进行合并,结果sort一下居然过了#include<iostream>#include<vector>#include<algorithm>#pragma warning (disable:4996)using namespace std;vector<long int> a;int N;int main(){ cin >>原创 2017-02-09 21:29:14 · 241 阅读 · 0 评论 -
1070. Mooncake (25)
计算出单价,对此进行排序,然后从大到小的筛选就好了#include<iostream>#include<vector>#include<algorithm>#pragma warning(disable:4996)using namespace std;struct node { double n, m, p;//数量,总金额,单价 bool operator<(const原创 2017-02-18 12:01:23 · 221 阅读 · 0 评论 -
1071. Speech Patterns (25)
用map保存word及次数,由于map自动按字典序保存,最后只要输出第一个和max一样的字符就可以了#include<iostream>#include<string>#include<vector>#include<map>#include<cctype>#include<algorithm>#pragma warning(disable:4996)using namespace s原创 2017-02-18 12:48:32 · 253 阅读 · 0 评论 -
1072. Gas Station (30)
开始用FLOY求最短路径,奈何最后个测试点超时,只能再试试DIJ来求,然后过了 需要注意的地方: 首先加油站离最近房子的距离尽可能远,如果有不同解,选路径和最小的那个,还一样选序号最小的一个,当然加油站里所有房子的最小路径都不能超过给的数,代码中贴有FLOY解法和DIJ解法#include<iostream>#include<vector>#include<string>#define I原创 2017-02-18 16:20:05 · 343 阅读 · 0 评论 -
1104. Sum of Number Segments (20)
简单题,AcB的形式(c是第t个位置,A、B为前后部分),c出现的次数为(t+1)*(N-t)#include<iostream>using namespace std;int main(){ int N; cin >> N; double sum = 0; for (int t = 0;t < N;t++) { double te;原创 2017-02-28 10:02:27 · 213 阅读 · 0 评论 -
1073. Scientific Notation (20)
通过E的位置来判断有效位数,从而计算是否加小数点,是否添0等等 E的位置pos,E后面的数字n,具体算出来的式子已再代码中#include<iostream>#include<string>using namespace std;int main(){ string str1; getline(cin, str1); int pos = str1.find('E')原创 2017-02-18 22:22:37 · 236 阅读 · 0 评论 -
1075. PAT Judge (25)
保存输入,筛选出要输出的,进行排序即可#include<iostream>#include<vector>#include<algorithm>using namespace std;int p[5];//保存题目的满分成绩int N, K, M;struct node { vector<int> grade;//保存各科成绩 int id; int rank;/原创 2017-02-19 10:46:51 · 301 阅读 · 0 评论 -
1077. Kuchiguse (20)
求公共后缀#include<iostream>#include<string>#include<vector>#pragma warning(disable:4996)using namespace std;int main(){ int N; cin >> N; getchar(); string resault; vector<string>原创 2017-02-19 10:49:36 · 268 阅读 · 0 评论 -
1076. Forwards on Weibo (30)
把题目的数据看成图,进行bfs遍历即可#include<iostream>#include<vector>#pragma warning(disable:4996)using namespace std;int arc[1010][1010] = { 0 };//邻接矩阵int N, L;vector < bool> visited;//bfs用的int cnt;void bfs(in原创 2017-02-19 10:49:00 · 110 阅读 · 0 评论 -
1078. Hashing (25)
二次探测是0,1,4,9…. 而二次探测再散列是0,1,-1,4,-4….#include<iostream>#include<cmath>#include<vector>using namespace std;int main(){ int M, N; bool flag; cin >> M >> N; M = M > N ? M : N; wh原创 2017-02-20 10:32:04 · 307 阅读 · 0 评论 -
1030. Travel Plan (30)
题目还是很正常的最短路径,用DIJ#include<iostream>#include<vector>#define MAX_V 510#define INF 0x3f3f3fusing namespace std;typedef struct ArcNode { int length;//长度 int info;//花费 ArcNode() { this->leng原创 2017-02-10 21:47:52 · 188 阅读 · 0 评论 -
1031. Hello World for U (20)
一道水题,求出n1,n2,n3的值,然后按格式输出就好:n1行 前n1-1行都是,s[t]+n2-2个空格+s[s.size()-t-1] 最后一行是s[n1-1 … n1+n2-2]#include<iostream>#include<string>using namespace std;int main(){ string s; cin >> s; int N原创 2017-02-10 22:46:49 · 172 阅读 · 0 评论