
PAT和GPLT
学编程的蒟蒻
追求简短、逻辑清晰的代码
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
520 钻石争霸赛 2022(满分)
前言单身狗不就来刷刷题咯,今年比较简单文章目录前言7-1 520表白7-2 分糖豆7-3 约会App7-4 关于奇数的等式7-5 我侬数7-6 非诚勿扰7-7 新式六合彩7-8 521序列7-1 520表白在 520 这个日子里,拼题 A 请你实现一个小功能,帮助用户向自己喜欢的数字表白。输入格式:输入在一行中给出一个不超过 1000 的正整数 N,是用户最喜欢的一个数字。输出格式:在一行中按以下格式输出对 N 的表白:N! 520!输入样例:233输出样例:233! 520!原创 2022-05-21 00:24:41 · 470 阅读 · 0 评论 -
PTA-复数四则运算 (15 分)(最简写法)
PTA-复数四则运算 (15 分)像这种四则运算模拟,这样写最简单清晰了。#include <iostream>#include <cmath>#include <cstring>using namespace std;void f(double x, double y, int t) { if(t == 1){ if(y < 0) printf("(%.1lf%.1lfi)", x, y); else printf("(%.1lf+%.1lf原创 2022-04-05 10:27:16 · 1175 阅读 · 0 评论 -
案例7-1.5 与零交换 (25 分)
案例7-1.5 与零交换 (25 分)组合数学的圈问题,不懂的仔细模拟一下代码。#include<cstdio>#include<cmath>#include<cstring>#include<iostream>using namespace std;const int N=1e5+10;int a[N],vis[N],ret;void dfs(int x){ if(vis[x]) return; ret++; vis[x]=1;原创 2021-05-31 21:44:21 · 372 阅读 · 0 评论 -
基础实验7-2.3 德才论 (25 分)
基础实验7-2.3 德才论 (25 分)结构体排序#include<iostream>#include<cstdio>#include<algorithm>#include<string> using namespace std;struct p{ int a,b,c,f1,f2,f3; string s;}t[101000];bool cmp(p x,p y){ if(x.f1>y.f1) return 1; else i原创 2021-05-29 00:10:49 · 316 阅读 · 0 评论 -
基础实验7-2.2 插入排序还是堆排序 (25 分)
基础实验7-2.2 插入排序还是堆排序 (25 分)这题插入排序大家应该很好理解,就是堆排序可能不熟悉。根据这题的要求,是先进行堆排序建立个大根堆,然后每次取出最大值放在末尾,每次更新堆。#include<iostream>#include<cstdio>#include<algorithm>#include<string> using namespace std;int a[200],b[200],t[200];int f1=0,f2=0,n原创 2021-05-28 22:26:42 · 728 阅读 · 0 评论 -
进阶实验5-3.2 新浪微博热门话题 (30 分)
进阶实验5-3.2 新浪微博热门话题 (30 分)这题首先得看懂题目,最需要注意的就是每个单词之间要有空格,也就是题目说的分词。这里我还是喜欢用map,map大法好啊,我们每次存入单词的时候把其他的字符转化成一个空格一起存入就好了,然后用map计数。PS:首尾的空格记得去掉。#include<iostream>#include<string>#include<map>#include<set>using namespace std;map<原创 2021-05-23 17:02:38 · 203 阅读 · 0 评论 -
基础实验8-1.1 单身狗 (25 分)
基础实验8-1.1 单身狗 (25 分)#include<iostream>#include<set>using namespace std;int a[100000];set<int> s;int main(){ int n,m,x,y; set<int>::iterator it; cin>>n; for(int i=0;i<n;++i) { cin>>x>>y; a[x]=y;原创 2021-04-13 15:44:43 · 191 阅读 · 0 评论 -
基础实验7-2.4 PAT排名汇总 (25 分)
基础实验7-2.4 PAT排名汇总 (25 分)结构体排序#include<iostream>#include<cstdio>#include<string>#include<algorithm>using namespace std;struct student{ string a; int b,c,d;}s[200000];bool cmp1(struct student x,struct student y){ if(x.b&g原创 2021-04-13 15:44:32 · 515 阅读 · 0 评论 -
基础实验7-2.1 魔法优惠券 (25 分)
基础实验7-2.1 魔法优惠券 (25 分)#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>using namespace std;int a[1000010],b[1000010];int main(){ int n,m,z1=0,f1=0,z2=0,f2=0; cin>>n; for(i原创 2021-04-13 15:44:18 · 315 阅读 · 0 评论 -
基础实验6-2.6 最短工期 (25 分)
基础实验6-2.6 最短工期 (25 分)拓扑排序,AOE网#include<stdio.h>#include<string.h>const int N=1010;const int inf=0x3f3f3f;int map[N][N];int in[N]; int early[N];int ret=0; int n,m,ans=0;void t1() { for(int k=0;k<n;++k) { for(int原创 2021-04-13 15:44:04 · 495 阅读 · 0 评论 -
基础实验6-2.5 城市间紧急救援 (25 分)
基础实验6-2.5 城市间紧急救援 (25 分)多重判断的dijkstra#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int inf=0x3f3f3f3f; int map[550][550],vis[550],dis[550],path[550],cnt[550],sum[550],aa[550];int n,m,s,d;void dfs(in原创 2021-04-13 15:43:48 · 171 阅读 · 0 评论 -
案例6-1.7 公路村村通 (30 分)
案例6-1.7 公路村村通 (30 分)简单的最小生成树板子#include<iostream>#include<cstring>using namespace std;const int inf=0x3f3f3f3f;const int maxn=1010;int map[maxn][maxn];int vis[maxn],dis[maxn];int n,m;int prim(){ memset(dis,inf,sizeof(dis)); int sum=原创 2021-04-12 17:18:33 · 266 阅读 · 0 评论 -
进阶实验5-3.1 航空公司VIP客户查询 (25 分)
进阶实验5-3.1 航空公司VIP客户查询 (25 分)利用map容器,很简单#include<iostream>#include<cstdio>#include<string>#include<map>#include<set>using namespace std;map<string,int> m;char a[500];int main(){ int n,k; scanf("%d%d",&n,&原创 2021-04-12 16:54:21 · 328 阅读 · 0 评论 -
基础实验5-2.3 QQ帐户的申请与登陆 (25 分)
基础实验5-2.3 QQ帐户的申请与登陆 (25 分)#include<iostream>#include<string>#include<cstdio>#include<set>#include<map>using namespace std;set<string> s;map<string,string> m;int main(){ int n; cin>>n; while(n--)原创 2021-04-12 16:53:35 · 150 阅读 · 0 评论 -
基础实验5-2.2 电话聊天狂人 (25 分)
基础实验5-2.2 电话聊天狂人 (25 分)#include<iostream>#include<map>#include<string>#include<cstdio>#define ios ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);using namespace std;map<string,int> m;int main(){ ios int n; ci原创 2021-04-12 16:52:45 · 194 阅读 · 0 评论 -
进阶实验4-3.5 哈夫曼编码 (30 分)
进阶实验4-3.5 哈夫曼编码 (30 分)这是学了哈夫曼编码后立马写的,当时写出来感觉很不错哈哈哈#include<iostream>#include<string>#include<algorithm>using namespace std;const int inf=0x3f3f3f3f;int n,m;string s1[100];struct node { int w; int p; int l;原创 2021-04-12 16:51:54 · 546 阅读 · 0 评论 -
进阶实验4-3.2 Windows消息队列 (25 分)
进阶实验4-3.2 Windows消息队列 (25 分)#include<iostream>#include<cstring>#include<cstdio>#include<queue>using namespace std;char s[100100][20];char a[20],b[20];int main(){ priority_queue<int,vector<int>,greater<int> &原创 2021-04-12 16:49:52 · 173 阅读 · 0 评论 -
基础实验4-2.8 部落 (25 分)
基础实验4-2.8 部落 (25 分)简单并查集#include<iostream>#include<set>using namespace std;set<int> s;int fa[10050];int find(int x){ if(fa[x]==x) return x; else return fa[x]=find(fa[x]); } int main(){ int n,q; cin>>n; int x,y,k,原创 2021-04-12 16:48:28 · 239 阅读 · 0 评论 -
基础实验4-2.7 修理牧场 (25 分)
基础实验4-2.7 修理牧场 (25 分)这题其实是利用了哈夫曼的思想,每次选出最小的两个数,构造一棵哈夫曼树即可。这里我用了STL中的优先队列,代码少,也好理解,STL是真的强大#include<iostream>#include<queue>using namespace std;int main(){ priority_queue<int,vector<int>,greater<int> > q; int n,x; cin&原创 2021-04-12 16:45:36 · 244 阅读 · 0 评论 -
案例4-1.7 文件传输 (25 分)
案例4-1.7 文件传输 (25 分)简单的并查集#include<iostream>#include<set>using namespace std;int fa[10010];set<int> s;int find(int x){ if(fa[x]==x) return x; else return fa[x]=find(fa[x]);}int main(){ int n,x,y; char c; cin>>n;原创 2021-04-12 16:38:27 · 205 阅读 · 0 评论 -
案例4-1.6 树种统计 (25 分)
案例4-1.6 树种统计 (25 分)简答题,利用map#include<iostream>#include<map>#include<string>#include<cstdio>using namespace std;map<string,int> m;int main(){ int n,i; cin>>n; string a; i=n; cin.get(); while(i--){ getline原创 2021-04-12 16:35:41 · 378 阅读 · 0 评论 -
L3-011 直捣黄龙 (30 分)(dijkstra+map)
L3-011 直捣黄龙 (30 分) (dijkstra+map)这几天写了一些复杂的最短路的题,发现这些题都是有规律的,掌握了这些规律,任何一道最短路的题将不在话下 -基本思路这题变化就在于每个点不是数是一个字符串,既然这样我们转化为数就好啦。这里我想到了map容器,我们将这些据点的值从0-n-1编号,作为map[i],那么它的下标就是所对应的字符串了。然后进行dijkstra的时候先判断最短的路径,然后是节点数,再就是歼敌数了,这些都可以按照套路来了,把这个多重判断记下来其它题也就so easy了原创 2021-03-24 12:58:31 · 428 阅读 · 0 评论 -
L3-002 特殊堆栈 (30分)
L3-002 特殊堆栈 (30分)这题的难点就在于不仅要维护一个堆还要进行排序找中值,排序找中值大家应该很熟悉了,可以用快排,如果是有序的话就可以用二分。 这里我们令第m大的数为中值,这题我们可以用桶排序的思想,用数组的下标,数组的值初始化为0,下标出现了就加1。但这样找中值比较麻烦,每次需要进行求和找出数为m所在的数组下标,这样做肯定超时,这时就需要优化。我们可以用树状数组来进行优化,树状数组一般是求一个区间的和,我们就可以利用它,用这个区间的和来表示数的个数,树状数组sum(i)的值就可以表示1~i区原创 2021-01-24 19:25:30 · 165 阅读 · 0 评论 -
L1-054 福到了(利用reverse解法)(15 分)
L1-054 福到了(15 分)L1-054 福到了 (15分)“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。输入格式:输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。输出格式:输出倒置的网格,如样原创 2020-10-29 00:26:28 · 750 阅读 · 0 评论