PAT甲级
Q_000
这个作者很懒,什么都没留下…
展开
-
PAT甲级 1075 PAT Judge
情况不少需要好好分析#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,k,m;int per_rank[5];typedef struct student{ int id;...原创 2019-11-06 20:56:55 · 169 阅读 · 0 评论 -
PAT甲级 1025 PAT Ranking
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef struct nodee{ char a[20]; int grade; int ln; int lr;...原创 2019-11-02 09:55:32 · 120 阅读 · 0 评论 -
PAT甲级 1012 The Best Rank
需要注意的问题是并列第二都是第二名,所以单纯的排序时,并列第二所在位置是第二和第三,所以还需要处理。#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;#define INF 0x3f3f3f3fcha...原创 2019-10-17 16:51:56 · 113 阅读 · 0 评论 -
PAT甲级 1030 Travel Plan
算法是dijkstra,可以不用DFS,在计算的时候同步更新边的cost和weight,然后将最短路存在vector里面就可以了,相对比较简单#include <iostream>#include <cstdio>#include <vector>using namespace std;#define INF 0x3f3f3f3fint loadw...原创 2019-10-10 00:11:07 · 149 阅读 · 0 评论 -
PAT甲级1018 Public Bike Management
算法是用Dijkstra+DFS的算法求解,通过Dijkstra算法求出所有的最短路径,然后再用DFS求出所有最短路径中的所要带的车辆最少和带回的车辆最少的路径。首先定义所需要的变量:int loadw[505][505];//边权int nodew[505];//点权int loadsumw[505];//边权和vector<int>pre[505];//前置点vecto...原创 2019-10-07 11:42:54 · 136 阅读 · 0 评论 -
PAT甲级1003 Emergency
本质上是图的最短路径的问题:图的最短路径题型就是给定一个无向图,有点权,边权,你在其中某一点,到另一点的最小边权和,以及这条路上的最大点权和算法是Dijkstra算法。首先我们定义所需要的内容:int n, m;//点数,边数int c1, c2;//起始位置int nodew[505];//点权int loadw[505][505];//邻接矩阵,边权int loadsumw[...原创 2019-10-05 21:09:52 · 139 阅读 · 0 评论 -
PAT甲级1034 Head of a Gang
解法是参考的《算法笔记》,在逐渐学习stl中#include <iostream>#include <cstdio>#include <map>#include <string>using namespace std;const int maxn = 2010;map<int,string>numTostr;map<...原创 2019-09-23 00:16:17 · 138 阅读 · 1 评论 -
PAT甲级 1042 Shuffling Machine
#include<iostream>#include<algorithm>#include<cstring>using namespace std;struct node{ char k = 0; int num = 0; int mark = 0;};struct node l[54];int a[54];bool c...原创 2019-08-23 09:59:02 · 123 阅读 · 0 评论 -
PAT甲级 1046 Shortest Distance
#include <iostream>#include <cstring>using namespace std;int a[100005];int b[100005];int main(){ memset(a, 0, sizeof(a)); memset(b, 0, sizeof(b)); int n; cin >>...原创 2019-08-23 10:41:25 · 137 阅读 · 0 评论 -
PAT甲级 1021 Deepest Root
这道题的解法是参考一本算法书给出的,先用并查集找寻连通分量的个数,个数不为一则输出结果,个数为一的话就按照这样的思路:先任意选择一个结点,从该结点开始遍历整棵树,获取能达到的最深的顶点,记录为集合A。然后从集合A中任意一个结点出发遍历整棵树,获取能达到的最深的顶点,记录为集合B。可以证明集合A与集合B的并集即为所求的使树高最大的根节点,具体过程可以自己查阅。#include <iostre...原创 2019-08-24 19:32:52 · 168 阅读 · 0 评论 -
PAT甲级 1013 Battle Over Cities
图方面的知识一致学的不太好,看了一下其他人写的代码,有种神清气爽的感觉#include<iostream>#include <cstring>#include <vector>using namespace std;vector<int>g[1005];int mark;int v[1005];void dfs(int n){ ...原创 2019-08-24 13:54:12 · 137 阅读 · 0 评论 -
PAT甲级 1002 A+B for Polynomials
#include <iostream>#include <cstdio>using namespace std;typedef struct nodee{ int n = 0; double a = 0; nodee *next = NULL;} node;int main(){ int m, n; cin >...原创 2019-08-19 19:21:53 · 94 阅读 · 0 评论 -
PAT甲级 1001 A+B Format
#include <iostream>using namespace std;int main(){ int a; int b; cin >> a >> b; int c = a + b; if (c <= 0) { if (c >= -999) cout...原创 2019-08-19 17:06:44 · 102 阅读 · 0 评论