
PTA 天梯
CCCC天梯
percation
快乐coding,coding快乐~
展开
-
【PAT (Advanced Level) Practice】1006 Sign In and Sign Out
穿越隧道原创 2022-07-08 16:43:41 · 258 阅读 · 0 评论 -
【PAT (Advanced Level) Practice】1005 Spell It Right
穿越隧道原创 2022-07-08 16:24:48 · 209 阅读 · 0 评论 -
【PTA】1008 数组元素循环右移问题 (20分)
穿越隧道#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int a[N],b[N];int n,m;void inverse(int a[], int st, int ed){ for(int i = st,j = 0; j < ((ed-st)/2); i++,j++){ int t = a[i]; a[i] = a[ed - j - 1];原创 2022-05-10 22:04:48 · 204 阅读 · 0 评论 -
【PTA】1007 素数对猜想
穿越隧道题意:求两个素数(质数)之间的差值是否为2,若是,则ans++.且,最大的素数不能超过输入的NFloating point exception错误出现场合:求素数。错误原因:%0,导致出现这个错误。具体原理:因将cnt=1,而j从0开始,primes[0] = 0, 在if条件判断中i%primes[0] 开始报错#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int cnt原创 2022-05-07 22:51:33 · 242 阅读 · 0 评论 -
【PTA】1003 Emergency
穿越隧道AC版#include <bits/stdc++.h>using namespace std;const int N = 1e3 + 10, M = N*N;typedef pair<int,int> pii;int h[N],e[M],ne[M],w[M],idx;void add(int a, int b, int c){ e[idx] = b; w[idx] = c; ne[idx] = h[a]; h[a] = idx++;}int dis原创 2022-05-05 21:24:24 · 310 阅读 · 0 评论 -
【PTA】1002 A+B for Polynomials
穿越隧道15scores失分原因:1.没有使用printf来保留一位小数,而是直接使用了cout2.格式错误,行末无空格,或许选择采用空格+数字,会比数字+空格的方式更好#include <bits/stdc++.h>#define x first#define y secondusing namespace std;const int N = 1e5 + 10;typedef pair<int,double> pii;pii a[N],b[N],ans[原创 2022-05-04 15:55:04 · 341 阅读 · 0 评论 -
【PAT】1001 A+B Format
穿越隧道因数据范围小,所以不需要用到高精度。通过vector和字符串来将a+b的结果,以英文格式输出#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int a,b;int main(){ cin >> a >> b; int c = a + b; vector<int> cc; if(c < 0){ c.原创 2022-05-04 14:56:46 · 133 阅读 · 0 评论 -
【2022天梯赛】L1-8 静静的推荐 & L2-1 插松枝 & L2-2 老板的作息表
L2-1 插松枝 Score 25栈+队列+vector+模拟#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;queue<int> q;stack<int> hez;vector<int> ans[N];int main(){ int n,m,k; cin >> n >> m >> k; for(int i = 0原创 2022-04-27 14:47:18 · 1405 阅读 · 1 评论 -
【天梯赛】L2-040 哲哲打游戏 (25 point(s))(模拟)
穿越隧道用vector来模拟图模拟题意,阅读能力有待提高,题意读了很久。#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;vector<int> p[N];int n,m;int now = 1;//当前所在位置int record[N];//记录档案int main(){ cin >> n >> m; for(int i = 1; i <=原创 2022-04-21 11:11:12 · 2225 阅读 · 0 评论 -
【天梯赛】 L2-028 秀恩爱分得快 (25 point(s))***(STL|排序)
穿越隧道大佬版参考了大佬的思路,又是被自己菜到的一天思路太妙了,大佬们的STL基础也超好。#include <bits/stdc++.h>using namespace std;const int N = 1e3 + 10;int n,m;bool gender[N];//prevent timeout and out of space;int read(){ int input = 0, flag = 0; char a = getchar(); while((a原创 2022-04-20 22:30:25 · 264 阅读 · 0 评论 -
【天梯赛】L2-024 部落 (25 point(s))(并查集)
穿越隧道并查集的模板的微微变型。#include <bits/stdc++.h>using namespace std;const int N = 1e4 + 10;int n,m;int p[N];int find(int x){ if(x != p[x]){ p[x] = find(p[x]); } return p[x];}map<int,int> mp;int ans;int main(){ cin >> n; for(i原创 2022-04-20 20:42:09 · 393 阅读 · 1 评论 -
【天梯赛】L2-023 图着色问题 (25 point(s))
穿越隧道23分bfs判断相邻的两个结点颜色是否相同,若相同,则No;并查集来判断v个点中,有多少个联通块。对每个连通块进行bfs.#include <bits/stdc++.h>using namespace std;const int N = 5e5 + 10;//开1e3,则最后一个测试点段错误 int h[N],e[N],ne[N],idx;int v,m,k;void add(int a, int b){ e[idx] = b, ne[idx] = h[a],原创 2022-04-19 16:21:03 · 202 阅读 · 3 评论 -
【天梯赛】L2-022 重排链表 (25 point(s))**(模拟)
L2-022 重排链表 (25 point(s))野生版(12分)可能是因为按照值来进行排序,然后进行交叉输出。可能它的样例是按照地址?#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int n,addre;//int a[N];struct node{ int da; string add; string ne;}a[N];bool cmp(node aa, node bb){原创 2022-04-19 15:08:21 · 428 阅读 · 1 评论 -
【2021年天梯赛】吉老师的回归 |包装机 |病毒溯源 |清点代码库 |还原文件
7-9 包装机 (25 point(s))栈和队列的模拟题#include <bits/stdc++.h>using namespace std;const int N = 5e2 + 10;int a[24];string str[N];map<int,int> mp;stack<char> st;queue<char> q[N];queue<char> ans;int main(){ int n,m,s; cin原创 2022-04-19 13:50:39 · 510 阅读 · 0 评论 -
【天梯赛】 L2-020 功夫传人 (25 point(s))(bfs)
穿越隧道思路来源于:大佬博客计算得道者(k=0)的所有功力总合。图的广度遍历,算出每个结点的功力值。最后,计算答案。#include <bits/stdc++.h>using namespace std;const int N = 5e5 + 10;typedef long long ll;int h[N],e[N],ne[N],w[N],idx; void add(int a, int b){ e[idx] = b, ne[idx] = h[a], h[a] = i原创 2022-04-18 17:03:30 · 203 阅读 · 0 评论 -
【天梯赛】L2-019 悄悄关注 (25 point(s))
穿越隧道map的应用#include <bits/stdc++.h>using namespace std;const int N = 5e4 + 10;//若只开5e3,最后一个样例段错误。只是关注的人,还有悄悄关注的人的id<=1e4map<string,int> mp,mmp; string ans[N];int main(){ int n; scanf("%d",&n); for(int i = 0; i < n; i++){原创 2022-04-18 15:58:19 · 375 阅读 · 2 评论 -
【天梯赛】L2-016 愿天下有情人都是失散多年的兄妹 (25 point(s))(DFS)
穿越隧道开始,想的是并查集。若是并查集的话,则有两个根节点,很复杂。看了大佬们的博客后,首先对子女和父母建立图(建立的图为有向图),然后用dfs分别对 情侣两个人进行搜索搜索他们的祖先,记录是否访问,若在搜索过程中,发现祖先已经被访问,则标记flag=1,若不存在,则返回 空。#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int n;char sex[N];int h[N],ne[N原创 2022-04-18 15:41:37 · 297 阅读 · 0 评论 -
【天梯赛】L2-009 抢红包 (25 point(s))
穿越隧道读题+排序读题:发 以分为单位的红包,输出以元为单位的红包。排序:三个属性的排序方式不同。#include <bits/stdc++.h>using namespace std;const int N = 1e4 + 10;//int a[N];struct peo{ int num;//抢到的红包数量 double sum;//抢到的红包金额,以分为单位,需要输出元。 int id;}a[N];vector<int> c;int n;原创 2022-04-17 22:17:45 · 356 阅读 · 0 评论 -
【PAT】1005 继续(3n+1)猜想 (25 point(s))
穿越隧道沿用之前的概念,n为奇数则 n=(3*n+1)/2,若n为偶数则 n = n/2;然后,记录是否被访问过。#include <bits/stdc++.h>using namespace std;const int N = 1e3 + 10;typedef long long ll;int n;int a[N];map<int,int> mp;void chk(int x){ while(x != 1){ if(x % 2 == 1){ x原创 2022-04-17 20:21:55 · 174 阅读 · 0 评论 -
【PAT】1003 我要通过 (20 point(s))*(模拟|规律)
穿越隧道自己思路:看起来像极了编译原理的自动机,试图用自动机解决。后来,看了大佬博客,发现自己想复杂了。第一个条件:字符串只能有PAT三个字符,若出现其他字符,则false.第二个条件,在xPATx中,x和x中的A的数量要一致。第三个条件,可以在第二个条件中扩展。隐含条件,只能有一个P和一个T,至少一个A.核心:P前面的A的数量A[0]*PT之间A的数量A[1] == T后面A的数量A[2]#include <bits/stdc++.h>using namespace原创 2022-04-17 20:09:13 · 154 阅读 · 0 评论 -
【天梯赛】L2-004 这是二叉搜索树吗? (25 point(s))***(数据结构)
穿越隧道考查数据结构:前中后序遍历以及树的知识。思路来源于大佬博客需要巩固数据结构知识,又是被自己菜哭的一天。。#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int n;int a[N];vector<int> back;//后序遍历结果void pre(int l, int r, bool ism){ if(l > r) return ; int lt = r原创 2022-04-16 19:03:31 · 851 阅读 · 0 评论 -
【天梯赛】L2-029 特立独行的幸福 (25 point(s))
穿越隧道方法一开始,没有使用vis数组来对区间中出现的数字,进行标记导致只能得22分#include <bits/stdc++.h>using namespace std;typedef pair<int,int> pii;const int N = 1e4 + 10;bool st[N];bool vis[N];int ans;int k;map<int,int> mp;bool is_prime(int x){ for(int i = 2原创 2022-04-12 16:24:44 · 139 阅读 · 0 评论 -
【天梯赛】7-10 冰岛人 (25 point(s))*(公共祖先)
穿越隧道模仿大佬(简洁版)#include <bits/stdc++.h>using namespace std;struct people{ char sex; string fa;};map<string,people> mp;bool chk(string a, string b){ int i = 1,j = 0; for(string A = a; !A.empty(); A=mp[A].fa, i++){ j = 1; for(string原创 2022-04-12 11:14:03 · 579 阅读 · 0 评论 -
【天梯赛】7-9 分而治之 (25 point(s))***
穿越隧道核心:为判断两个结点是否还存在路径,若存在,则方案失败。否则,反之。没想清楚,又是被自己菜哭Q~Q#include <iostream>#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int st[N],ed[N];//记录起点和终点 int zl[N];int flag = 1;int n,m;int k;int main(){ cin >>原创 2022-03-27 20:05:46 · 220 阅读 · 0 评论 -
【天梯赛】L2-039 清点代码库** (25 point(s))
用string来存的话,至少我是只过了样例,答案显示多种错误。下面使用vector的形式来存储,比string的方法码量小,最重要的是过了。泪目#include <bits/stdc++.h>using namespace std;const int N = 1e4 + 10;map<vector<int>,int> mp;int n,m;struct node{ int cnt; vector<int> nu;}a[N];boo.原创 2022-03-22 00:23:23 · 290 阅读 · 0 评论 -
【天梯赛】L2-027 名人堂与代金券 (25 point(s))**
穿越隧道case1和case4,错误于排名,之前的排名i的上限是小于k,导致1,4样例一直过不去。蒟蒻一枚,被自己菜哭。#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int n,g,k;struct node{// char zh[50]; string zh; int idx; int score;}a[N];int djj;int cnt2,cnt5;//bool cmp原创 2022-03-21 23:28:32 · 218 阅读 · 0 评论 -
【天梯赛】L2-005 集合相似度 (25 point(s))*(阅读题)
穿越隧道#include <bits/stdc++.h>using namespace std;const int N = 1e3 + 10;set<int> s[N];int n,q;int main(){ cin >> n; for(int i = 1; i <= n; i++){ int num,nm; cin >> num; for(int j = 0; j < num; j++){原创 2022-03-21 16:21:22 · 123 阅读 · 0 评论 -
【天梯赛】L2-003 月饼 (25 point(s))*
穿越隧道求每种月饼的每顿价格,对其进行排序。注意需要double型的数组不论吨数还是售价。#include <bits/stdc++.h>using namespace std;const int N = 1e3 + 10;double k[N];int n,d;double ty[N];//double double sale[N];//double数组决定了第三个样例 struct node{ double k; int idx;//元素种类所对应的下原创 2022-03-21 15:53:10 · 209 阅读 · 0 评论 -
【acwing】154. 滑动窗口***
穿越隧道滑动窗口采用的是单调性,类似单调栈。需反复复习***#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int a[N];//所有元素int n,k;int q[N];//存储目前窗口中最值元素的下标int main(){ cin >> n >> k; for(int i = 0; i < n; i++){ cin >原创 2022-03-14 16:46:46 · 227 阅读 · 0 评论 -
【基础编程题目集】7-7 12-24小时制 (15 point(s))*
穿越隧道读题需仔细#include <bits/stdc++.h>using namespace std;const int N = 1e3 + 10;int op1,op2;int main(){ char c = ':'; scanf("%d%c%d",&op1,&c,&op2); int flag = 0; if(op1 > 12){ printf("%d:%d PM",op1-12,op2); }原创 2022-03-14 15:21:52 · 174 阅读 · 0 评论 -
【基础编程题目集】6-13 折半查找 (15 point(s))
穿越隧道所得:若结构体中A套用结构体B时,结构体A中存在:数据类型 *a 或 数据类型 a[],说明其为数组若想访问结构体B的中元素,则结构体A.a[i].key;int Search_Bin(SSTable T, KeyType k){ int l = 0, r = T.length - 1; while(l <= r){ int mid = (l + r) / 2; if(k == T.R[mid].key){//坑点:访问结构体中原创 2022-03-14 11:37:28 · 412 阅读 · 0 评论 -
【基础编程题目集】6-10 阶乘计算升级版 (20 point(s))*(大整数乘法)
穿越隧道思路数组模拟大整数乘法int a[110000];void Print_Factorial ( const int N ){ int u = N; if(u < 0){ printf("Invalid input\n"); } else if(u == 0){ puts("1"); } else{ int idx = 0; a[idx++] = 1; fo原创 2022-03-14 10:19:58 · 130 阅读 · 0 评论 -
【基础编程题目集】6-6 求单链表结点的阶乘和 (15 point(s))
穿越隧道复习链表int FactorialSum( List L ){ List h = L; int sum = 0; while(L != NULL){ int num = 1; for(int i = 1; i <= L->Data; i++){ num *= i; } sum += num; L=L->Next; } return原创 2022-03-13 21:30:50 · 540 阅读 · 0 评论 -
【天梯赛】L1-080 乘法口诀数列 (20 point(s))
反思:多读题,多读几遍题不然,掉进坑里#include <bits/stdc++.h>using namespace std;const int N = 1e3 + 10;typedef long long ll;int ans;int n;int a[N];vector<int> c,b;int main(){ cin >> a[0] >> a[1] >> n; c.push_back(a[0]); c.push_.原创 2022-03-13 17:28:02 · 556 阅读 · 0 评论 -
***L1-043 阅览室 (20 point(s))
新面孔:fill(a,a + N, b)//a为数组起始开头,N为数组的长度,b为修改a-a+N那段区间的值。#include <bits/stdc++.h>using namespace std;const int N = 1010;int n;int idx;char op;int hh,mm;int ti[N];int main(){ cin >> n; for(int i = 1; i <= n; i++){ memset(ti,-1,si原创 2021-04-22 21:44:05 · 74 阅读 · 0 评论 -
L2-033 简单计算器 (25 point(s))
/**@author: percation*#time:2021.04.22*/#include <bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; stack<int> st; stack<char> op; int num; char c; for(int i = 0; i < n; i++){ cin >> num; st.p原创 2021-04-22 14:04:52 · 194 阅读 · 0 评论 -
*L2-035 完全二叉树的层序遍历 (25 point(s))
/**@author: percation*#time:2021.04.22*/#include <bits/stdc++.h>using namespace std;const int N = 39;int tree[N];int n;void build(int x){ if(n < x) return ; build(x << 1); build(x << 1 | 1); cin >> tree[x];//后序遍历放后原创 2021-04-22 11:38:28 · 162 阅读 · 0 评论 -
*L1-054 福到了 (15 point(s))
/**@author: percation*#time:2021.04.22*/#include <bits/stdc++.h>using namespace std;const int N = 1000;char a[N][N];int main(){ char c; int n; cin >> c >> n; getchar();//坑点 for(int i = 1; i <= n; i++){ for(int j = 1; j &原创 2021-04-22 11:20:24 · 76 阅读 · 0 评论 -
L1-058 6翻了 (15 point(s))
/**@author: percation*#time:2021.04.21*/#include <bits/stdc++.h>using namespace std;string t = "";int main(){ string s; getline(cin,s); int len = s.size(); int cnt = 0; int i = 0; while(i != len){ while(s[i] != '6'){ t += s[i++];原创 2021-04-21 21:54:17 · 71 阅读 · 0 评论 -
L1-069 胎压监测 (15 point(s))
/**@author: percation*#time:2021.04.21*/#include <bits/stdc++.h>using namespace std;int a[10];int main(){ int a1,a2,a3,a4,loww,yuzhi; cin >> a1 >> a2 >> a3 >> a4 >> loww >> yuzhi; a[0] = a1; a[1] = a2;原创 2021-04-21 21:40:37 · 261 阅读 · 0 评论