![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pta
Python ml
这个作者很懒,什么都没留下…
展开
-
PAT 1007 素数对猜想 20
素数筛原创 2022-06-05 23:50:18 · 47 阅读 · 0 评论 -
PAT 1008 数组元素循环右移问题
deque原创 2022-06-05 16:53:13 · 118 阅读 · 0 评论 -
PAT 1005 继续(3n+1)猜想
dict原创 2022-06-05 10:02:57 · 82 阅读 · 0 评论 -
PAT 1055 The World‘s Richest (25 分)
#include <iostream>#include <algorithm>#include <vector>#include <cstring>using namespace std;struct node { char name[10]; int age, money;};int cmp1(node a, node b) { if(a.money != b.money) return a.money原创 2022-03-08 20:49:58 · 86 阅读 · 0 评论 -
PAT 1047 Student List for Course (25 分)
#include <iostream>#include <string.h>#include <algorithm>#include <vector>using namespace std;int main() { int n,k,c,temp; cin>>n>>k; vector<vector<string>> course(k+1); string name;原创 2022-03-08 17:25:37 · 72 阅读 · 0 评论 -
PAT 1008 Elevator (20 分)
#include <iostream>using namespace std;int main() { int n,last=0,temp,time=0; cin>>n; for(int i=0;i<n;++i){ cin>>temp; if(temp>last) time+=(temp-last)*6+5; else time+=(last-temp)*4+5; l原创 2022-03-08 16:28:10 · 87 阅读 · 0 评论 -
PAT 1017 Queueing at Bank (25 分)
#include <iostream>#include <queue>#include <algorithm>using namespace std;struct people{ int come,time; people(int ss,int tt):come(ss),time(tt){}};bool cmp1(people a,people b){ return a.come<b.come;}int main() {原创 2022-03-08 16:23:32 · 146 阅读 · 0 评论 -
PAT 1068 Find More Coins (30 分)
使用的硬币数量最少#include <iostream>#include <vector>#include <algorithm>using namespace std;int main() { int n,m; cin>>n>>m; vector<int>coin(n+1); for(int i=1;i<=n;++i) scanf("%d",&coin[i]);原创 2022-03-07 16:39:30 · 457 阅读 · 0 评论 -
PAT 1045 Favorite Color Stripe (30 分) 动态规划
#include <iostream>#include <vector>#include <map>using namespace std;struct node{ int data; int index; //遍历到喜欢颜色的下标 int maxlen; //遍历到当前元素时的最大长度 node(int d,int i,int len):data(d),index(i),maxlen(len)原创 2022-03-06 21:36:32 · 333 阅读 · 0 评论 -
PAT 1009 Product of Polynomials (25 分)
#include <iostream>using namespace std;int main() { int n1, n2, a, cnt = 0; scanf("%d", &n1); double b, arr[1001] = {0.0}, ans[2001] = {0.0}; for(int i = 0; i < n1; i++) { scanf("%d %lf", &a, &b); arr[原创 2022-03-05 12:16:59 · 204 阅读 · 0 评论 -
PAT 1007 Maximum Subsequence Sum (25 分) 动态规划
#include <iostream>#include <vector>using namespace std;struct node{ int data; int start; int sum;};int main() { int n; scanf("%d",&n); vector<node>dp(n); //dp[i].sum表示以i结尾的连续序列和最大值,start表示原创 2022-03-05 11:28:56 · 198 阅读 · 0 评论 -
PAT 1002 写出这个数 (20 分)
#include <iostream>using namespace std;string pinYin(char c){ if(c=='0') return "ling"; if(c=='1') return "yi"; if(c=='2') return "er"; if(c=='3') return "san"; if(c=='4') return "si"; if(c=='5') return "wu"; if(c=='6') ret原创 2022-03-01 16:05:52 · 110 阅读 · 0 评论 -
前序、中序遍历转后序遍历
#include <iostream>using namespace std;struct TreeNode{ char data; TreeNode*leftChild; TreeNode*rightChild; TreeNode(char c):data(c),leftChild(nullptr),rightChild(nullptr){}; //构造函数};TreeNode*Build(string preOrder,string inOrder)原创 2022-02-26 10:16:26 · 1003 阅读 · 0 评论 -
PAT 1093 Count PAT‘s (25 分) 逻辑题
#include <iostream>using namespace std;int main() { string s; cin>>s; int len=s.length(),countP=0,countT=0,res=0; for(int i=0;i<len;i++) if(s[i]=='T') countT++; for(int i=0;i<len;i++){ if(s[i]=='P') c原创 2022-02-23 16:37:26 · 49 阅读 · 0 评论 -
PAT 1060 Are They Equal (25 分) 字符串处理(21分)
#include <iostream>using namespace std;int n;string convert(string s){ int index,i=0,j=0,cnt=0,len=s.length(); while((s[i]=='0'||s[i]=='.')&&i<len) i++; //第一个非0数为s[i],若是0则i=len while(s[cnt]!='.'&&cn原创 2022-02-23 11:59:56 · 166 阅读 · 0 评论 -
PAT 1010 Radix (25 分) 二分法、进制转换
#include <iostream>#include <cctype>#include <algorithm>#include <cmath>using namespace std;long long convert(string n, long long radix) { //把radix进制下的n转换为10进制数据 long long sum=0; for(int i=n.length()-1;i>=0;i--){原创 2022-02-19 20:23:22 · 57 阅读 · 0 评论 -
PAT 1006 Sign In and Sign Out (25 分) 字符串的比较
#include <iostream>#include <string.h>using namespace std;int main() { int m; cin>>m; char inmin[10]="24",outmax[10]="-1"; char idtemp[20],in[10],out[10],unlock[20],lock[20]; for(int i=0;i<m;i++){ cin>原创 2022-02-19 16:43:04 · 240 阅读 · 0 评论 -
PAT 1005 Spell It Right (20 分) 字符串处理(important)
#include <iostream>using namespace std;int main() { string s; cin>>s; string arr[10]={"zero","one","two","three","four","five","six","seven","eight","nine"}; //string 数组 int sum=0; for(int i=0;i<s.length();i++)原创 2022-02-19 14:06:10 · 160 阅读 · 0 评论 -
PAT 1086 Tree Traversals Again (25 分) 栈、树前序+后序转中序
#include <iostream>#include <vector>#include <stack>using namespace std;vector<int> pre, in, post,value;void postorder(int root,int start,int end){ //root表示根节点在前序序列的位置 if(start>end)return; int i=start; while(i&原创 2022-02-19 10:53:25 · 312 阅读 · 0 评论 -
PAT 1051 Pop Sequence (25 分) 栈模拟
#include <iostream>#include <vector>#include <stack>using namespace std;int main() { int m,n,k; scanf("%d%d%d",&m,&n,&k); for(int i=0;i<k;i++){ bool flag=false; vector<int> a(n+1);原创 2022-02-18 16:04:34 · 148 阅读 · 0 评论 -
PAT 1073 Scientific Notation (20 分) (18分未完)
#include <iostream>#include <vector>#include <algorithm>using namespace std;int main() { string s,v,t; //v主体,t指数 cin>>s; if(s[0]=='-')cout<<s[0]; int flag=1; for(int i=1;i<s.length();i++){原创 2022-02-18 12:11:40 · 60 阅读 · 0 评论 -
PAT 1050 String Subtraction (20 分) string.find
#include <iostream>using namespace std;int main() { string s1,s2; getline(cin,s1); getline(cin,s2); for(int i=0;i<s1.length();i++){ if(s2.find(s1[i])==string::npos) printf("%c",s1[i]); } return 0;}原创 2022-02-18 11:18:15 · 78 阅读 · 0 评论 -
PAT 1083 List Grades (25 分)
#include <iostream>#include <vector>#include <algorithm>using namespace std;struct stu{ char name[11],ID[11]; int grade;};bool cmp(stu a,stu b){ return a.grade>b.grade; //因为每个学⽣的成绩都不同,所以按照下降排列即可,return a.grade >原创 2022-02-18 11:10:52 · 132 阅读 · 0 评论 -
PAT 1129 Recommendation System (25 分) SET 运算符重载
#include <iostream>#include <set>using namespace std;struct node{ int val,cnt; bool operator<(const node&a)const{ return(cnt!=a.cnt)?cnt>a.cnt:val<a.val; }};int book[50001];int main() { int n,k,num;原创 2022-02-17 23:54:08 · 152 阅读 · 0 评论 -
PAT 1064 Complete Binary Search Tree (30 分) 建完全二叉树+中序插入+bfs层序遍历(自己写)
#include <iostream>#include <vector>#include <algorithm>#include <queue>using namespace std;struct node{ int val; node*left,*right;};int n,cnt=0;vector<int> a;void inorder(node*root){ if(root==NULL||cnt>原创 2022-02-17 20:16:02 · 283 阅读 · 0 评论 -
PAT 1054 The Dominant Color (20 分)
408最优解 空间复杂度O(1)#include <iostream>using namespace std;int main() { long long temp,major=-1; int m,n,cnt=0; cin>>m>>n; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>temp;原创 2022-02-16 11:29:04 · 239 阅读 · 0 评论 -
PAT 1021. Deepest Root (25分) 图的遍历,DFS,计算连通分量的个数
1021. Deepest Root (25分)#include <iostream>#include <vector>#include <algorithm>#include <set>using namespace std;int maxheight=0;vector<vector<int>>v;vector<bool>visit;set<int>s;vector<int>te原创 2022-02-16 10:54:55 · 97 阅读 · 0 评论 -
PAT 1024 Palindromic Number (25 分) 大整数相加
1024 Palindromic Number(25 分)#include <iostream>#include <algorithm>using namespace std;void add(string &t){ string temp=t; reverse(temp.begin(),temp.end()); int carry=0; for(int i=t.length()-1;i>=0;i--){ t[i]原创 2022-02-16 09:40:03 · 68 阅读 · 0 评论 -
PAT 1121 Damn Single (25 分) SET
#include <iostream>#include <vector>#include <set>#include <map>using namespace std;int main() { int n,m,temp,cnt=0; cin>>n; map<int,int>mapp; for(int i=0;i<n;i++){ int a,b; cin&g原创 2022-02-15 20:40:46 · 97 阅读 · 0 评论 -
PAT 1065 A+B and C (64bit) (20 分) (16分)
因为A、B的⼤⼩为[-2^63, 2^63],⽤long long 存储A和B的值,以及他们相加的值sum:如果A > 0, B < 0 或者 A < 0, B > 0,sum是不可能溢出的如果A > 0, B > 0,sum可能会溢出,sum范围理应为(0, 2^64 – 2],溢出得到的结果应该是[-2^63, -2]是个负数,所以sum < 0时候说明溢出了如果A < 0, B < 0,sum可能会溢出,同理,sum溢出后结果是⼤于0的,所原创 2022-02-15 20:14:23 · 43 阅读 · 0 评论 -
PAT 1030 Travel Plan (30 分) Dijksta+DFS求cost最小
#include <iostream>#include <vector>#include <algorithm>using namespace std;int n,m,s,d;int e[510][510],dis[510],cost[510][510];vector<int>pre[510];bool visit[510];const int inf = 99999999;vector<int> path, temppath;原创 2022-02-15 08:10:13 · 167 阅读 · 0 评论 -
PAT 1059 Prime Factors (25 分) 素数表 数学问题
#include <iostream>#include <vector>#include <algorithm>using namespace std;vector<int>prime(50000,1);int main() { for(int i=2;i*i<50000;i++) for(int j=2;j*i<50000;j++) prime[j*i]=0;原创 2022-02-14 12:01:12 · 168 阅读 · 0 评论 -
PAT 1084 Broken Keyboard (20 分)string.find
#include <iostream>using namespace std;int main() { string s1,s2,ans; cin>>s1>>s2; for(int i=0;i<s1.length();i++) if(s2.find(s1[i])==string::npos&&ans.find(toupper(s1[i]))==string::npos) ans原创 2022-02-13 22:12:55 · 58 阅读 · 0 评论 -
PAT 1046 Shortest Distance (20 分)模拟
#include <iostream>#include <vector>using namespace std;int main() { int n,m,sum=0,start,end; cin>>n; vector<int>a(n),dis(n+1); for(int i=1;i<n;i++){ scanf("%d",&a[i]); dis[i+1]=dis[i]+a[原创 2022-02-13 21:53:20 · 63 阅读 · 0 评论 -
PAT 1015 Reversible Primes (20 分) 素数 d进制
#include <iostream>using namespace std;bool isprime(int a){ if(a==1)return false; for(int i=2;i*i<=a;i++) if(a%i==0)return false; return true;}int main() { int n,d; while (scanf("%d",&n)!=EOF){ if(n&l原创 2022-02-13 17:53:34 · 159 阅读 · 0 评论 -
PAT 1097 Deduplication on a Linked List (25 分) 链表
#include <iostream>#include <vector>#include <set>using namespace std;struct node{ int address,val;};int Data[100005],Next[100005];int main() { int first,n,temp; cin>>first>>n; vector<node>a(n),a原创 2022-02-13 14:35:19 · 234 阅读 · 0 评论 -
1081 Rational Sum (20 分) 分数相加通分
#include <iostream>#include <vector>#include <algorithm>using namespace std;long long gcd(long long a,long long b){ return b==0?abs(a):gcd(b,a%b);}int main() { long long n,a,b,suma = 0, sumb = 1, gcdvalue; cin>>原创 2022-02-13 12:19:54 · 162 阅读 · 0 评论 -
PAT 1085 Perfect Sequence (25 分) 完美数列
#include <iostream>#include <vector>#include <algorithm>using namespace std;int main() { int n,maxnum=0; long long p; cin>>n>>p; vector<int>a(n); for(int i=0;i<n;i++){ scanf("%d",&am原创 2022-02-13 11:20:41 · 75 阅读 · 0 评论 -
PAT 1078 Hashing (25 分) ⼆次⽅探查法
#include <iostream>#include <vector>#include <cmath>using namespace std;int tsize, n, hashTable[10100];bool isprime(int a){ if(a==1)return false; for(int i=2;i*i<=a;i++){ if(a%i==0) return false; } return t原创 2022-02-13 10:25:38 · 129 阅读 · 0 评论 -
PAT 1103 Integer Factorization (30 分) DFS+剪枝(important)
#include <iostream>#include <vector>#include <cmath>using namespace std;int n,k,p,maxFacSum=-1;vector<int> v, ans, tempAns; //tempAns为当前深度优先遍历⽽来的序列void init(){ int temp=0,index=1; while(temp<=n){ v.push_ba原创 2022-02-12 21:10:41 · 364 阅读 · 0 评论