浙大PAT甲级练习题
zbyue_
学生一枚。
展开
-
浙大PAT甲级-1001
简单水题,直接贴代码(c++):#include #include using namespace std;int main(int argc, char *argv[]){ int a,b,c; int x[7]; while(cin>>a>>b){ c=a+b; int i; for(i=0;i<7;i++){ x[i]=(int)c/pow(10,(6-原创 2017-05-29 21:03:14 · 443 阅读 · 0 评论 -
浙大PAT甲级-1006
比较简单关键点:-vector的用法(可参考http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html)#include #include #include using namespace std;int main(){ int m, i, firstin, lastout; cin>>m;原创 2017-06-28 10:47:49 · 408 阅读 · 0 评论 -
浙大PAT甲级-1007
最大子段和问题原创 2017-06-28 12:42:34 · 349 阅读 · 0 评论 -
浙大PAT甲级-1028
排序题这道题不难,不过学到了不少实用性东西:-sort(vec.begin(),vec.end(),comparsion);-strcmp(const *char a,const *char b);(相当于a-b);-结构体;-printf("%06d%s",...,..).#include #include #include #include #include原创 2017-07-10 10:08:26 · 350 阅读 · 0 评论 -
浙大PAT甲级-1061
字符串处理关键是理解题意:(1)找出前两个字符串中第一个相同的大写字母(注意是逐个比较,即对应的位置相同),范围是‘A’ ~ ‘G’。(2)找出前两个字符串中第二个相同的大写字母或者数字,范围是’A‘~'N' 或者 '0' ~ '9'。(3)找出后两个字符串中第一个相同的字母(区不区别大小写好像都行),记录下其出现的位置。#include #include #inclu原创 2017-08-23 22:10:34 · 456 阅读 · 0 评论 -
浙大PAT甲级-1048
思路:(1)先将所有硬币排序(sort())。(2)将集合值从小到大赋值v1,寻找v2;注意用二分搜索找v2,否则会超时。#include #include #include using namespace std;int N,M;vector coin;int main(){ int i; cin>>N>>M; for(i=0;i<N;i++原创 2017-08-24 13:32:57 · 389 阅读 · 0 评论 -
浙大PAT甲级-1017
银行队列:(却没用到队列)#include <iostream>#include <string>#include <algorithm>#include <vector>#include <stdlib.h>#include <stdio.h>using namespace std;int n, k;vect...原创 2018-04-03 17:49:28 · 503 阅读 · 0 评论 -
浙大PAT甲级-1027
简单没人看的(内部错误很可能是编译器选错了)#include <iostream>using namespace std;void func(int a){ int b = a/13; int c = a%13; if(b<10) cout<<b; else if(b==10) cout<&...原创 2018-04-06 17:51:13 · 243 阅读 · 0 评论 -
浙大PAT甲级-1016
Phone Bills1.更改文件输入输出方式:freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);******//中间代码正常cin,coutfclose(stdin);fclose(stdout);2.vector删除某一项:删除v[i]:v.erase(v.begin()+i);【注】:删除某项后其后面的项会自动向前...原创 2018-04-23 10:40:09 · 768 阅读 · 0 评论 -
浙大PAT甲级-1018
段错误一般是由于你分配的数组或结构体数目不够,当然也有其他的一些原因。题设的要求是修正最短路径上的所有点,实际上必须严格遵循访问顺序修改每个点的权值(eg:要依次修改权值分别为3,10的两个点,必须send2back5而非简单地back3),亦即到达目标点sp后的回程是不能修改的。(以上摘抄的)#include <iostream>#include <vector>#i...原创 2018-05-04 17:01:06 · 656 阅读 · 0 评论 -
浙大PAT甲级-1021
还是看了凌大佬的博客才全部ac的(https://blog.csdn.net/iaccepted/article/details/20454519)#include <iostream>#include <vector>#include <stdio.h>#include <algorithm>using namespace std;in...原创 2018-05-05 23:27:07 · 489 阅读 · 0 评论 -
浙大PAT甲级-1022
关键点:(1)cin输入并没有将换行符输入所以后面如果紧接着getline(cin,str)需先输入完换行符(2)ID打印注意前面补零(%07d)(否则后面两个测试点过不去)#include <iostream>#include <vector>#include <stdio.h>#include <string>#include <a...原创 2018-05-06 23:39:55 · 466 阅读 · 0 评论 -
浙大PAT甲级-1023
比较简单#include <iostream>#include <vector>#include <algorithm>#include <string>using namespace std;int main(){ int i; vector<int> n,n2; string c; cin...原创 2018-05-07 11:17:27 · 264 阅读 · 0 评论 -
PTA甲级-1056
队列模拟#include <iostream>#include <vector>#include <queue>#include <algorithm>#include <stdio.h>using namespace std;int num;int group;struct Mouse{ int wei...原创 2018-08-31 15:55:10 · 373 阅读 · 0 评论 -
PTA甲级-1086
栈的入栈出栈过程可以唯一描绘一棵二叉树;入栈顺序是先序遍历顺序,出栈顺序是中序遍历顺序;然后根据先序遍历序列和后序遍历序列求出后序遍历序列(该过程可用栈来存结果)。#include <iostream>#include <stack>#include <vector>#include <stdio.h>using namespa...原创 2018-09-01 16:34:09 · 393 阅读 · 0 评论 -
PTA甲级-1091
广度优先遍历(bfs)#include <iostream>#include <stdio.h>#include <queue>using namespace std;int M,N,L,T;int m[1287][129][61];bool visit[1287][129][61]={0};int ans;struct axe{ ...原创 2018-09-01 16:38:59 · 359 阅读 · 0 评论 -
PTA甲级-1102
树的存储和层次中序遍历#include <iostream>#include <vector>#include <queue>#include <stdio.h>using namespace std;int num;int last;struct Node{ int data; bool root; N...原创 2018-09-02 16:44:53 · 323 阅读 · 0 评论 -
浙大PAT甲级-1020
二叉树的后缀,中缀和层次表示已知后缀,中缀,求其层次解决方法:递归#include #include using namespace std;int n;vector level[31];int num[31]={0};int post[30]={0}, in[30]={0};void pre(int post1,int post2,int in1,int in2,原创 2017-07-05 17:21:03 · 347 阅读 · 0 评论 -
浙大PAT甲级-1019
回文数 简单题#include #includeusing namespace std;int main(){ int n,b,i,cnt=0; cin>>n>>b; vector nb; i=n; if(i==0){ cnt=1; nb.push_back(0); } while(i>0){原创 2017-07-04 19:02:18 · 386 阅读 · 0 评论 -
浙大PAT甲级-1002
这道题是大一的时候就做过的,当时刚学运算符重载。现在我用的是链表来做的,也算是复习一下快忘光的数据结构吧。#include #includeusing namespace std;//节点(多项式的项)struct listNode{ int exp; double coe; listNode *link; listNode(){} listNode(int e, double原创 2017-05-29 21:11:10 · 564 阅读 · 0 评论 -
浙大PAT甲级-1003
第一次着手解决这类题,感觉思想很简单,但却无从下手,主要参考这篇博客(http://blog.csdn.net/iaccepted/article/details/21451949)写的值得学习的地方:-图用一个二维数组存储-dfs函数的大概模式(判断是否到末节点,剪枝,递归调用......)#include #include using namespace std;cons原创 2017-06-01 21:45:56 · 676 阅读 · 0 评论 -
浙大PAT甲级-1004
代码有点乱,自己都懒得再看了。关键点:-用二维数组存储树的节点广度遍历,思路应该比较简单#include using namespace std;int tree[100][100];int visit[100];void init(int n){ for(int i=1; i<=n; i++) { visit[i]=0; f原创 2017-06-03 00:05:14 · 286 阅读 · 0 评论 -
浙大PAT甲级-1008
小学生算术题#include using namespace std;int main(){ int n, i, time=0; int a=0, b; cin>>n; i=n; while(i--){ cin>>b; if(b>a){ time+=(b-a)*6; }else原创 2017-06-28 16:23:15 · 299 阅读 · 0 评论 -
浙大PAT甲级-1005
水题。关键点:-string处理(string是个数组,length函数,EOF结束...)#include #include using namespace std;void print(int n){ switch(n){ case 0:cout<<"zero"; break; case 1:cout<<"one";原创 2017-06-03 22:29:24 · 358 阅读 · 0 评论 -
浙大PAT甲级-1009
多项式乘法关键点:-用二维数组存多项式-合并指数相同的项-插入排序调整项的顺序#include #include using namespace std;int main(){ double a[10][2], b[10][2], ab[100][2]; int n, m, i, cnt=0; cin>>n; for(i=0;i<n;i++原创 2017-06-29 11:18:54 · 341 阅读 · 0 评论 -
浙大PAT甲级-1029
寻找两条序列的中位数一开始直接用库里的sort好像超时最后改为并归排序(复杂度只有n)#include #include #include using namespace std;int n1,n2;int main(){ int i; long x; cin>>n1; vector seqa; for(i=0;i<n1;i++)原创 2017-07-10 23:00:27 · 455 阅读 · 0 评论 -
浙大PAT甲级-1010
Radix这道题能完全ac真的很难我是参考这篇(http://blog.csdn.net/matrix_reloaded/article/details/35880933)慢慢调出来的,他说的注意概括的比较好,我不做赘述,就强调一点(不是二分搜索):3.算法剪枝(3)对应的函数就是cmp()。这道题也让我认识到点改进算法的意义了。#include #include #inclu原创 2017-06-30 23:54:42 · 333 阅读 · 0 评论 -
浙大PAT甲级-1011
小学生算术题#include #include using namespace std;void print(int i){ if(i==0) cout<<"W"; else if(i==1) cout<<"T"; else cout<<"L";}int main(){ double f[3],s[3原创 2017-07-01 12:03:55 · 391 阅读 · 0 评论 -
浙大PAT甲级-1030
图的搜索(与1003类似)-dfs#include #include using namespace std;int n,m,s,d,cnt=0;int Dist[500][500]={0};int Cost[500][500];int mdist=INT_MAX, mcost=INT_MAX;int path[500];int mpath[500];bool visi原创 2017-07-11 11:53:43 · 319 阅读 · 0 评论 -
浙大PAT甲级-1031
打印图案题#include #include using namespace std;void printspace(int n){ for(int i=0;i<n;i++) cout<<" ";}int main(){ string s; int n1,n2,n3,N; cin>>s; N=s.length();原创 2017-07-11 13:08:22 · 393 阅读 · 0 评论 -
浙大PAT甲级-1032
找公共后缀关键点:-map的使用#include #include #include #include using namespace std;int main(){ map w; int w1,w2,n,i; char c; cin>>w1>>w2>>n; i=n; while(i--){ int a,b;原创 2017-07-11 16:35:50 · 327 阅读 · 0 评论 -
浙大PAT甲级-1015
prime:素数;1不是素数也不是合数。#include #include using namespace std;int num;bool isPrime(int a){ if(a==1) return false; for(int i=2;i<a;i++) if(a%i==0) return false;原创 2017-07-03 20:11:02 · 291 阅读 · 0 评论 -
浙大PAT甲级-1012
这题没什么意思#include #include using namespace std;int main(){ vector id, idc; vector C, M, E, A, ranks; int n,m,i; cin>>n>>m; i=n; while(i--){ string ids; int原创 2017-07-01 20:28:58 · 501 阅读 · 0 评论 -
浙大PAT甲级-1014
这道题的量还是蛮大的没用到什么技巧性东西#include using namespace std;int n,m,k,q;int timec[1001]={0};//每个customer的业务时间int query[1001]={0};int starttime[1001]={0};//每个customer开始业务的时间int endtime[1001]={0};//每个c原创 2017-07-03 23:50:44 · 284 阅读 · 0 评论 -
浙大PAT甲级-1013
网上说这是在考查并查集的相关算法而我是用dfs暴力解决的(差点超时)int isConnect(){ int repair=0; for(int i=1;i<=n;i++){ if(i!=c&&connect[i]==0) repair++; dfs(i); } return repair-1;}--原创 2017-07-04 12:39:42 · 290 阅读 · 0 评论 -
PTA甲级-1107
并查集#include <iostream>#include <vector>#include <set>#include <stdio.h>#include <algorithm>using namespace std;int num;int cluster[1001]= {0};int ans[1001]= {0...原创 2018-09-03 17:00:53 · 386 阅读 · 0 评论