- 博客(33)
- 收藏
- 关注
原创 PAT A1053 Path of Equal Weight (30分)
30分压轴题,不算很难,需要对STL有一定的熟练度。唯一困扰我的是题目要求输出序列要按大小排序,开始想的是用vector的二维数组,但是熟练度不够放弃了,参考了书上的方法在输入子节点的时候就先排序。#include <cstdio>#include <vector>#include <algorithm>using namespace std;int n, m, s;struct Node{ int w; vector<int> ch.
2021-01-31 17:50:17 50 1
原创 PAT A1102 Invert a Binary Tree (25分)
开始题目没读懂,花了好一会儿来理解题意,题目懂了以后可就太简单了。这题题目中给的是结点序号,因此可以建立静态二叉树来做,二叉树建好以后观察题目中的例子,很容易看出来所谓翻转二叉树就是从上至下将每个结点的左右子树互换,可以用队列来实现(类似层序遍历),然后输出层序遍历和中序遍历的结果即可。#include <cstdio>#include <queue>#include <algorithm>using namespace std;bool ishave.
2021-01-30 16:23:50 63
原创 PAT A1086 Tree Traversals Again (25分)
#include <cstdio>#include <stack>#include <cstring>#include <cstdlib>using namespace std;int pre[1000];int in[1000];int t = 0;int n;typedef struct Node{ int data; Node *lchild, *rchild;}Node, *BiTree;void create(Bi.
2021-01-30 12:37:12 80
原创 PAT A1020 Tree Traversals (25分)
#include <cstdio>#include <cstdlib>#include <queue>using namespace std;int post[100];int in[100];typedef struct Node{ char data; Node *lchild, *rchild;}Node, *BiTree;void create(BiTree &T, int postL, int postR, int inL,.
2021-01-29 18:44:59 114
原创 【数据结构】中序线索二叉树
对如图所示的二叉树建立中序线索二叉树,并遍历#include <cstdio>#include <cstdlib>typedef struct Node{ char data; Node *lchild, *rchild; int lflag, rflag;}Node, *BiTree;Node* newNode(char v){ BiTree node = (BiTree)malloc(sizeof(BiTree)); node->data = .
2021-01-29 11:53:58 1471 1
原创 【数据结构】二叉树的遍历
初始为满二叉树ABCDEFG先中后序的代码实现#include <cstdio>#include <cstdlib>typedef struct Node{ char data; Node *lchild, *rchild;}Node, *BiTree;BiTree newNode(char v){ BiTree node = (BiTree)malloc(sizeof(BiTree)); node->data = v; node->lchil
2021-01-28 18:24:06 136
原创 PAT A1091 Acute Stroke (30分)
#include <cstdio>#include <queue>using namespace std;int m, n, s, T;int arr[1300][1300][70];bool inq[1300][1300][70] = {false};int X[] = {0, 0, 0, 0, -1 ,1};int Y[] = {0, 0, 1, -1, 0, 0};int Z[] = {1, -1, 0, 0, 0, 0};struct Node{ .
2021-01-26 15:43:38 54
原创 PAT A1103 Integer Factorization (30分)
#include <cstdio>#include <vector>#include <cmath>using namespace std;int n, k, p;vector<int> v, t;int m = -1;void DFS(int index, int nowk, int sum, int sumf){ if(sum==n && nowk==k){ if(sumf > m){ m = sum.
2021-01-25 16:35:28 119 1
原创 PAT A1097 Deduplication on a Linked List (25分)
#include <cstdio>#include <map>#include <cstdlib>using namespace std;struct Node{ int address, data, next; int flag;}node[100010];map<int,int> m;int main(){ int h, n; scanf("%d %d", &h, &n); int ad; for(i.
2021-01-24 17:00:58 114
原创 PAT B1025 反转链表 (25分)
#include <cstdio>#include <algorithm>using namespace std;struct Node{ int address; int data; int next; int order; Node(){ order = 100010; }}node[100010];bool cmp(Node n1, Node n2){ return n1.order < n2.order;}int main(){.
2021-01-24 16:16:43 71
原创 PAT A1052 Linked List Sorting (25分)
#include <cstdio>#include <algorithm>using namespace std;struct Node{ int address; int data; int next; int flag; Node(){ flag = 0; }}node[100010];bool cmp(Node n1, Node n2){ if(!(n1.flag==1 && n2.flag==1)){ return n1.
2021-01-24 15:08:51 66 1
原创 PAT A1032 Sharing (25分)
#include <cstdio>struct List{ char c; int next; bool flag; List(){ flag = false; }}L[100010];int main(){ int h1, h2, n; scanf("%d %d %d", &h1, &h2, &n); int ta, next, tc; for(int i=0; i<n; i++){ scanf("%d %c %d", ..
2021-01-23 17:31:13 70
原创 PAT A1056 Mice and Rice (25分)
#include <cstdio>#include <queue>using namespace std;queue<int> q;struct Mouse{ int w; int r;};int main(){ int n, g; scanf("%d %d", &n, &g); Mouse m[n]; for(int i=0; i<n; i++){ scanf("%d", &m[i].w); }.
2021-01-23 10:48:44 43
原创 PAT A1051 Pop Sequence (25分)
#include <cstdio>#include <stack>using namespace std;stack<int> s;int arr[1010];int main(){ int m, n, k; scanf("%d %d %d", &m, &n, &k); int temp; for(int i=0; i<k; i++){ int flag = 1; int c = 0; while(!.
2021-01-22 18:07:30 89
原创 问题 A: 简单计算器
#include <cstdio>#include <string>#include <iostream>#include <stack>#include <queue>#include <map>using namespace std;bool isop(char c){ if(c=='+' || c=='*' || c=='-' || c=='/') return true; return false;}.
2021-01-22 18:04:38 107 1
原创 PAT A1024 Palindromic Number (25分)
#include <cstdio>#include <cstring>struct bign{ int d[1010]; int len; bign(){ memset(d, 0, sizeof(d)); len = 0; }};bign rev(bign a){ bign b; b.len = a.len; for(int i=0; i<a.len; i++){ b.d[i] = a.d[a.len-i-1]; } return b.
2021-01-21 16:02:06 103 2
原创 PAT A1023 Have Fun with Numbers (20分)
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct bign{ int d[25]; int len; bign(){ memset(d, 0, sizeof(d)); len = 0; }};int main(){ char str[25]; scanf("%s", str); int len = strlen(s.
2021-01-21 15:29:10 88
原创 PAT B1017 A除以B (20分)
#include <cstdio>#include <cstring>struct bign{ int d[1010]; int len; bign(){ memset(d, 0, sizeof(d)); len = 0; }};bign change(char str[]){ int len = strlen(str); bign a; a.len = len; for(int i=0; i<len; i++){ a.d[i] = s.
2021-01-21 14:57:02 65
原创 PAT A1096 Consecutive Factors (20分)
#include <cstdio>#include <cmath>int main(){ int n; scanf("%d", &n); if(n==2){ printf("1\n2"); return 0; } if(n==3){ printf("1\n3"); return 0; } int sqr = (int)sqrt(1.0*n); int len; int tarr[100]; int arr[100]; in.
2021-01-19 18:19:36 172
原创 PAT A1059 Prime Factors (25分)
#include <cstdio>#include <cmath>typedef long long LL;bool isPrime(LL n){ if(n == 1) return false; LL sqr = (LL)sqrt(1.0*n); for(int i=2; i<=sqr; i++){ if(n % i == 0){ return false; } } return true;}struct Factor{ int x.
2021-01-19 11:23:19 212
原创 PAT A1015 Reversible Primes (20分)
#include <cstdio>#include <cmath>bool isPrime(int n){ if(n == 1) return false; int sqr = (int)sqrt(n*1.0); for(int i=2; i<=sqr; i++){ if(n % i == 0) return false; } return true; }int main(){ int n, d; int num; while(scanf("%.
2021-01-13 10:05:47 76
原创 PAT B1007 素数对猜想 (20分)
#include <cstdio>#include <cmath>#include <cstdlib>int main(){ int n; scanf("%d", &n); int table[n]; int num = 0; bool isPrime[n] = {}; for(int i=2; i<=n; i++){ if(!isPrime[i]){ table[num] = i; num++; for(.
2021-01-12 10:17:02 81
原创 PAT B1013 数素数 (20分)
#include <cstdio>#include <cmath>bool isPrime(int n){ int sqr = (int)sqrt(1.0*n); if(n == 1) return false; for(int i=2; i<=sqr; i++){ if(n % i == 0) return false; } return true;}int main(){ int a, b; scanf("%d %d", &a, &a.
2021-01-12 09:37:46 69
原创 PAT B1034 有理数四则运算 (20分)(测试点2、3错误注意加上命名空间)
#include <cstdio>#include <cstdlib>using namespace std;typedef long long LL;struct Fraction{ LL up; LL down;};int i = 1;LL gcd(LL a, LL b){ if(b == 0) return a; return gcd(b, a%b);}Fraction reduction(Fraction f){ if(f.down .
2021-01-11 14:14:20 606
原创 PAT A1081 Rational Sum (20分)
#include <cstdio>#include <cmath>#include <cstdlib>typedef long long LL;struct Fraction{ LL up; LL down;};int gcd(int a, int b){ if(b == 0) return a; return gcd(b,a%b);}Fraction reduction(Fraction f){ if(f.down < 0){.
2021-01-11 10:22:44 50
原创 PAT A1008 Elevator (20分)
#include <cstdio>int main(){ int n; scanf("%d", &n); int last = 0; int now; int sum = 0; for(int i=0; i<n; i++){ scanf("%d", &now); if(now > last){ sum += 6*(now-last) + 5; }else{ sum += 4*(last-now) + 5; } la.
2021-01-08 11:28:55 77
原创 PAT B1003 我要通过! (20分)
#include <cstdio>#include <iostream>#include <string>using namespace std;int main(){ int n; scanf("%d", &n); string str; int left, mid, right; int flag; for(int i=0; i<n; i++){ flag = 0; cin >> str; for(i.
2021-01-04 10:12:49 90
原创 PAT B1019 数字黑洞 (20分)
#include <cstdio>#include <algorithm>using namespace std;void toarr(int k, int arr[]){ for(int i=3; i>=0; i--){ arr[i] = k % 10; k /= 10; } }int toint(int arr[]){ int sum = arr[0]; for(int i=1; i<4; i++){ sum = sum*10 +.
2021-01-03 11:08:06 84
原创 PAT B1045 快速排序 (25分)
#include <cstdio>#include <algorithm>using namespace std;int main(){ int n; scanf("%d", &n); int arr[n]; for(int i=0; i<n; i++){ scanf("%d", &arr[i]); } int leftmax[n]; leftmax[0] = -1; for(int i=1; i<n; i++){.
2021-01-02 14:00:42 80
原创 PAT B1040 有几个PAT (25分)
#include <cstdio>#include <cstring>int main(){ char c[100010]; scanf("%s", c); int P[100010], T[100010]; int temp = 0; for(int i=0; i<strlen(c); i++){ if(c[i] == 'P'){ temp++; }else if(c[i] == 'A'){ P[i] = temp; } } .
2021-01-02 10:24:30 103
原创 PAT A1048 Find Coins (25分)(双指针算法)
#include <cstdio>#include <algorithm>using namespace std;int main(){ int n, m; scanf("%d %d", &n, &m); int arr[n]; for(int i=0; i<n; i++){ scanf("%d", &arr[i]); } sort(arr, arr+n); int i=0, j=n-1; while(i &l.
2021-01-02 09:32:51 72
原创 PAT A1029 Median (25分)
#include <cstdio>int main(){ int n1, n2; scanf("%d", &n1); long arr1[n1]; for(int i=0; i<n1; i++){ scanf("%ld", &arr1[i]); } scanf("%d", &n2); long arr2[n2]; for(int i=0; i<n2; i++){ scanf("%ld", &arr2[i]); }.
2021-01-01 11:40:39 70
原创 PAT B1035 插入与归并 (25分)
#include <cstdio>#include <algorithm>using namespace std;int flag3 = 0;int n;int arr[110];int arr2[110];int res[110];int main(){ scanf("%d", &n); for(int i=0; i<n; i++){ scanf("%d", &arr[i]); arr2[i] = arr[i];.
2021-01-01 11:06:36 62
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人