- 博客(26)
- 收藏
- 关注
原创 PAT A1069
PAT A1069 考察整数每一位存储到数组 排序后重建整数 #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int N, max = -1; scanf("%d", &N); vector <int> a, b, ans; a.resize(N); b.resize(N);
2021-03-08 14:33:11
78
原创 PAT A1101
PAT A1101 在数据输入时就可以得到每一元素左边最大值; 倒序遍历数组得到每一元素右边最小值。 下方代码超时。。。 #include<iostream> #include<vector> #include<cstdio> #include<algorithm> using namespace std; bool findmin(vector<int> a,int n){ if(n==0) return true; if(*max_ele
2021-03-08 13:56:00
85
原创 PAT A1048
PAT A1048 two pointers #include<iostream> #include<cstdio> #include<vector> #include<algorithm> using namespace std; int n1,n2; vector<int> a; int main(){ int b; scanf("%d %d",&n1,&n2); for(int i=0;i<n1;i++){
2021-03-08 11:33:59
80
原创 PAT A1029
PAT A1029 无脑排序输出,不超时 #include<iostream> #include<cstdio> #include<vector> #include<algorithm> using namespace std; int n1,n2; vector<int> a; int main(){ int b; scanf("%d",&n1); for(int i=0;i<n1;i++){ scanf("%d",&a
2021-03-08 11:06:22
89
原创 PAT A1089
PAT A1089 考察插入排序和归并排序 插入排序完整执行 每一步都与中间序列对比,判断是哪种排序方式。 #include<iostream> #include<cstdio> #include<vector> #include<math.h> #include<algorithm> using namespace std; //返回插入排序的下一步 int n; int isinsert(vector<int> &a,v
2021-03-08 10:44:50
106
原创 PAT A1044
PAT A1044 解题思路: 数组sum[i]:a[1]+a[2]+…+a[i];严格单调增加。 所以本题就变为寻找sum[j]-sum[i]等于定值或略大于定值时i,j的值,然后输出i,j。 upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。 lower_bound( begin,end,num):从数组的begin位置
2021-03-07 17:24:15
125
原创 PAT A1031
PAT A1031 #include<iostream> #include<cstdio> using namespace std; int main(){ string a; cin>>a; int n=a.length(); int n1,n2,n3; n1=n/2; //left n2=n/2; //right n3=(n%2==0)?2:3; //bottom while(n3<n1){ n1--; n2
2021-03-06 14:42:46
78
原创 PAT A1042
PAT A1042 题目倒是也不难 就是找bug太辛苦了。。。数据贼多。。。 注意sort(&a[1],&a[55],cmp) 排序范围是左闭右开区间。 核心逻辑: bool cmp(data a,data b){ return a.rank<b.rank; } for(int j=0;j<n;j++){ sort(&a[1],&a[55],cmp); for(int i=1;i<=54;i++){ a[i].rank=r[i]; } }
2021-03-06 10:56:37
84
原创 PAT A1043
PAT A1043 题意要看懂,镜像树与原树的先后序遍历有区别 镜像树先后序遍历均先遍历右子树。 考点:建树、插入、先后序遍历; #include<vector> #include<cstdio> #include<iostream> using namespace std; int data[1100]; struct node{ int d; node* left; node* right; }; void insert(node* &root,
2021-03-05 11:13:34
79
原创 PAT 甲级1060
PAT A1060 函数形参实参问题要注意。 0000 0000.00 对于设及0的问题要特判,这应该是oj最后一个点。 核心逻辑代码如下。 #include<iostream> #include<string> using namespace std; string deal(string a,int& e){ int k=0; while(a[0]=='0' && a.length()>0){ a.erase(a.begin()); }
2021-03-04 10:53:31
117
1
原创 PAT甲级1015
PAT甲级1015 很简单的一道题,只需要注意0,1,2的问题就可以了,读入数据由于是读到负数结束所以可以采用while循环,两个进制转换函数,一个判断是否是素数的函数就可以解决问题,范围int类型足够。 但是,注意细节!!!!!!!!!!!!!!尤其放在考试的时候!!!!!!!!我就是少了一个等号,而没有读入0,而找了很久的bug。。。。。。。。。。 代码没有借鉴的意义,很繁琐,待我第二遍刷题库...
2019-10-19 23:31:47
194
原创 PAT甲级1012
PAT甲级1012 这是一道让我想放弃的题。。。。。。 因为没有好好读题 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 算法不难就是很恶心,很复杂,需要很多排序。。。。 #include<iostream> using...
2019-10-18 20:38:19
151
原创 PAT甲级1011
PAT甲级1011 #include<iostream> #include<stdio.h> using namespace std; double findmax(double a,double b,double c,int &n){ double m; if(a>b){ m=a; n=0; }else{ m=b; n=1; } i...
2019-10-14 11:26:38
83
原创 PAT甲级1010
PAT甲级1010 #include<iostream> #include<string> #include<math.h> using namespace std; long long ten(string n,long long r){ long long x=0; for(int i=0;i<n.length();i++){ if(n[i]...
2019-10-11 16:26:27
91
原创 PAT甲级1009
PAT甲级1009 #include<iostream> #include<stdio.h> using namespace std; struct po{ public: int a; double b; }; int main(){ int n1,n2; double s[2001]={0}; po p1[1000],p2[1000]; cin>>...
2019-10-05 11:15:20
191
原创 PAT甲级1008
PAT甲级1008 #include<iostream> using namespace std; int main(){ int n; int a[101]={0}; int sum=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ if(...
2019-10-04 22:53:14
78
原创 PAT甲级1007
PAT甲级1007 #include<iostream> using namespace std; int main(){ int n; int a[100000]={0}; int i,j,k,lg=0; int min=-1; int sum=0; int start=0,end=0; cin>>n; for(i=0;i<n;i++){ cin...
2019-10-03 23:02:48
80
原创 PAT甲级1006
PAT甲级1006 #include<iostream> #include<stdio.h> #include<string> using namespace std; struct people{ public: string id; string in; string out; }; int main(){ string max="23:59:59...
2019-10-02 17:04:49
87
原创 PAT甲级1005
PAT甲级1005 #include<iostream> #include<stdio.h> #include<string> using namespace std; int main(){ int s[1000]={0}; string m; cin>>m; int n=0; int sum=0; if(m[0]=='0'){ ...
2019-10-02 16:01:39
142
原创 PAT甲级1002
PAT甲级1002题 不得不说坑是真的多。。。 题目要求看似很简单,给出两个多项式,每一行第一个数字是非零项个数(项数),然后紧接每一项的幂和系数,要求进行简单的多项式合并。重点来了!!! 结果多项式要按幂从大到小排列,这个可能很多人会看出来,因为样例也是按幂从大到小排列。如果观察到这个规律,那算法可以用这样的: while(i<n1 && j<n2){ if(s...
2019-08-19 16:21:01
299
1
原创 PAT甲级1001
PAT 甲级1001c++ #include<iostream> #include<math.h> using namespace std; int main(){ int a,b,c,i=0; int d[100]; cin>>a; cin>>b; c=a+b; if(c<0){ cout<<'-'; c=...
2019-08-15 13:36:02
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅