
PAT
飞翔的Genj1
这个作者很懒,什么都没留下…
展开
-
PAT-A1057 Stack-分块思想
#include<cstdio>#include<cstring>#include<stack>using namespace std;const int maxn = 100010;const int sqrN = 316; //sqrt(100001),表示块内元素个数 stack<int> st; //栈 int block[sqrN]; //记录每一块中存在的元素个数 int table[maxn]; //hash数组,记录元素当前存在原创 2021-08-11 14:37:53 · 171 阅读 · 0 评论 -
PAT-A1003 Emergency-Bellman-Ford算法
#include<cstdio>#include<cstring>#include<vector>#include<set>#include<algorithm>using namespace std;const int MAXV = 510;const int INF = 0x3fffffff;struct Node{ int v, dis; //v为邻接边的目标顶点,dis为邻接边的边权 Node(int _v, in原创 2021-07-22 17:26:59 · 131 阅读 · 0 评论 -
PAT-A1030 Travel Plan(Dijkstra)
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXV = 510; //最大顶点数 const int INF = 1000000000; //无穷大//n为顶点数,m为边数,st为起点,ed为终点//G为距离矩阵,cost为花费矩阵 //d[]记录最短距离,c[]记录最小花费 int n, m, st, ed, G[MAXV][MA原创 2021-07-16 14:56:04 · 94 阅读 · 0 评论 -
PAT-A1003 Emergency-Dijkstra算法
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXV = 510; //最大顶点数 const int INF = 1000000000; //无穷大 //n为顶点数,m为边数,st为起点,ed为终点//G为邻接矩阵,weight为点权 int n, m, st, ed, G[MAXV][MAXV], weight[MAXV];//原创 2021-07-15 14:51:14 · 147 阅读 · 0 评论 -
PAT-A1076 Forwards on Weibo 图BFS
#include<cstdio>#include<cstring>#include<vector>#include<queue>using namespace std;const int MAXV = 1010;struct Node{ int id; //结点编号 int layer; //结点层号 };vector<Node> Adj[MAXV]; //邻接表 bool inq[MAXV] = {false}原创 2021-07-13 15:55:16 · 87 阅读 · 0 评论 -
PAT-A1034 Head of a Gang
#include<iostream>#include<string>#include<map>using namespace std;const int maxn = 2010; //总人数 map<int, string> intToString; //编号->姓名 map<string, int> stringToInt; //姓名->编号 map<string, int> Gang; //head-&原创 2021-07-10 16:37:07 · 75 阅读 · 0 评论 -
PAT-A1043 Is It a Binary Search Tree
#include<cstdio>#include<vector>using namespace std;struct node{ int data; node *left, *right;}; void insert(node* &root, int data){ if(root == NULL){ root = new node; root->data = data; root->left = root->right = N原创 2021-07-07 17:03:46 · 68 阅读 · 0 评论 -
PAT-A1053 Path of Equal Weight
#include<cstdio> #include<vector>#include<algorithm>using namespace std;const int MAXN = 110;struct node{ int weight; vector<int> child;} Node[MAXN];bool cmp(int a, int b){ return Node[a].weight > Node[b].weight;}i原创 2021-07-07 16:51:40 · 69 阅读 · 0 评论 -
PAT-A1020 TreeTraversals
#include<cstdio>#include<cstring>#include<queue>#include<algorithm>using namespace std;const int maxn = 50;struct node{ int data; node* lchild; node* rchild; };int pre[maxn], in[maxn], post[maxn];int n;node* create(原创 2021-07-06 15:31:52 · 60 阅读 · 0 评论 -
PAT-A1052 Linked List Sorting 静态链表
#include<cstdio>#include<algorithm>using namespace std;const int maxn = 100005;struct Node{ int address, data, next; bool flag;}node[maxn];bool cmp(Node a, Node b){ if(a.flag == false || b.flag == false) return a.flag > b.flag;原创 2021-06-23 11:28:22 · 94 阅读 · 0 评论 -
PAT-A1032 Sharing 静态链表
#include<cstdio>#include<cstring>const int maxn = 100010;struct NODE{ char data; int next; bool flag;}node[maxn];int main(){ for(int i = 0; i < maxn; i++) node[i].flag = false; int s1, s2, n; scanf("%d%d%d", &s1, &s2,原创 2021-06-23 11:27:28 · 82 阅读 · 0 评论 -
PAT-A1060 N位小数的科学计数法是否相等
#include<iostream>#include<string>using namespace std;int n; //有效位数 string deal(string s, int& e){ int k = 0; //s的下标 while(s.length() > 0 && s[0] == '0'){ s.erase(s.begin()); //去掉s的前导零 } if(s[0] == '.'){ //去掉前导零原创 2021-06-18 16:53:20 · 103 阅读 · 0 评论 -
PAT-A1059 质因数
#include<cstdio>#include<math.h>const int maxn=100010;bool is_prime(int n) { if(n == 1) return false; int sqr = (int)sqrt(1.0*n); for(int i=2;i<=sqr;++i){ if(n%i==0) return false; } return true;}int prime[maxn],pNum=0;void Find_原创 2021-03-02 13:23:22 · 75 阅读 · 0 评论 -
PAT-B1013 数素数
#include<stdio.h> const int maxn=1000001;int prime[maxn],pNum=0;bool p[maxn]={0};//iÎªËØÊý£¬p[i]Ϊfalse void Find_Prime(int n){ for(int i=2;i<maxn;++i){ if(p[i]==false){ prime[pNum++]=i;//°ÑËØÊý´æµ½primeÊý×é if(pNum>=n) break;原创 2021-02-05 19:47:28 · 153 阅读 · 0 评论 -
PAT-A1069 数字黑洞
#include<cstdio>#include<algorithm>using namespace std;bool cmp(int a,int b){ return a>b;}void to_array(int n,int num[]){ for(int i=0;i<4;++i){ num[i]=n%10; n/=10; }}int to_number(int num[]){ int sum=0; for(int i=0;i&l原创 2021-02-05 13:14:39 · 144 阅读 · 0 评论 -
PAT-A1093/B1040 有几个PAT
#include<stdio.h>#include<cstring>const int MAXN = 100010;const int MOD = 1000000007;char str[MAXN];int leftNumP[MAXN] = { 0 };int main() { scanf("%s", str); int len = strlen(str); for (int i = 0; i < len; ++i) { if (i > 0) le原创 2021-02-04 16:51:17 · 75 阅读 · 0 评论 -
PAT-B1020 月饼
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。#include<cstdio>#include<algorithm>using namespace std;struct mooncake{ double store; double sell; double price;} cake[1010];bool cmp(mooncake a,moon原创 2021-01-02 09:36:44 · 132 阅读 · 0 评论 -
PAT-A1025 PAT Ranking
输入n个考场,考场人数,考生账号与分数输出将所有考生按分数从高到底排序,并输出准考证号、排名、考场号、考场内排名#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct Student{ char id[15]; int score; int location_number; int local_rank;} stu[30010];bool c原创 2021-01-01 20:40:34 · 68 阅读 · 0 评论 -
PAT-B1009 说反话
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。#include<cstdio>int main(){ int num=0; char ans[90][90]; while(scanf("%s",ans[num]) != EOF) ++num; for(int i=num-1;i>=0;i--){ printf("%s",ans[i]); if(i>0) printf(" "); } return 0;}...原创 2020-12-30 20:35:57 · 93 阅读 · 0 评论 -
PAT-B1022 D进制的A+B
输入两个非负 10 进制整数 A 和 B (≤2^30 - 1),输出 A+B 的 D (1<D≤10)进制数。#include<cstdio>int main(){ int a,b,d; scanf("%d%d%d", &a,&b,&d); int sum=a+b; int ans[31],num=0; do { ans[num++]=sum%d; sum/=d; } while(sum!=0); for(int i=num-1;i&原创 2020-12-30 20:18:25 · 72 阅读 · 0 评论 -
PAT-B1036 跟奥巴马一起编程
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)。#原创 2020-12-30 14:42:36 · 109 阅读 · 0 评论 -
PAT-B1032 挖掘机技术哪家强
输入在第 1 行给出不超过 10^5的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。#include<cstdio>const int maxn=100000;int school[maxn] = {0};int main(){ int n,schID,score; scanf("%d", &n); for(int i=0;i<n;++i){原创 2020-12-30 13:58:12 · 99 阅读 · 0 评论 -
PAT-B1001 卡拉兹(Callatz)猜想
https://pintia.cn/problem-sets/994805260223102976/problems/994805325918486528卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。 这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想。 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n, 简单地数一下,需要原创 2020-12-30 13:44:15 · 356 阅读 · 0 评论 -
PAT-A1068 Find More Coins
PAT-1068 Find More Coins代码01背包问题01背包问题详解链接: 01背包.在本题中考虑物品重量=价值代码#include<iostream>#include<vector>#include<algorithm>using namespace std; int dp[10100], w[10100]; //dp为背包大小为i时的价值和,w为每个物品的重量bool choice[110][10100]; //choice[j][i]原创 2020-09-02 11:52:15 · 153 阅读 · 0 评论