- 博客(40)
- 收藏
- 关注
原创 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 399
原创 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 341
原创 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 393
原创 PTA甲级-1086
栈的入栈出栈过程可以唯一描绘一棵二叉树;入栈顺序是先序遍历顺序,出栈顺序是中序遍历顺序;然后根据先序遍历序列和后序遍历序列求出后序遍历序列(该过程可用栈来存结果)。#include <iostream>#include <stack>#include <vector>#include <stdio.h>using namespa...
2018-09-01 16:34:09 410
原创 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 401
原创 浙大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 271
原创 浙大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 487
原创 浙大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 497
原创 浙大PAT甲级-1018
段错误一般是由于你分配的数组或结构体数目不够,当然也有其他的一些原因。题设的要求是修正最短路径上的所有点,实际上必须严格遵循访问顺序修改每个点的权值(eg:要依次修改权值分别为3,10的两个点,必须send2back5而非简单地back3),亦即到达目标点sp后的回程是不能修改的。(以上摘抄的)#include <iostream>#include <vector>#i...
2018-05-04 17:01:06 668
原创 浙大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 784
原创 浙大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 254
原创 浙大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 533
原创 浙大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 404
原创 浙大PAT甲级-1061
字符串处理关键是理解题意:(1)找出前两个字符串中第一个相同的大写字母(注意是逐个比较,即对应的位置相同),范围是‘A’ ~ ‘G’。(2)找出前两个字符串中第二个相同的大写字母或者数字,范围是’A‘~'N' 或者 '0' ~ '9'。(3)找出后两个字符串中第一个相同的字母(区不区别大小写好像都行),记录下其出现的位置。#include #include #inclu
2017-08-23 22:10:34 469
原创 浙大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 336
原创 浙大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 404
原创 浙大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 328
原创 浙大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 467
原创 浙大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 356
原创 浙大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 357
原创 浙大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 397
原创 浙大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 305
原创 浙大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 291
原创 浙大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 304
原创 浙大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 509
原创 浙大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 401
原创 浙大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 344
原创 浙大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 355
原创 浙大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 301
原创 浙大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 421
原创 浙大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 366
原创 浙大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 304
原创 浙大PAT甲级-1003
第一次着手解决这类题,感觉思想很简单,但却无从下手,主要参考这篇博客(http://blog.csdn.net/iaccepted/article/details/21451949)写的值得学习的地方:-图用一个二维数组存储-dfs函数的大概模式(判断是否到末节点,剪枝,递归调用......)#include #include using namespace std;cons
2017-06-01 21:45:56 687
原创 浙大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 578
原创 浙大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 455
原创 第二章 递归与分治策略(排列的字典序问题)
一. 递归 1.概念 直接或间接地调用自身的算法。用函数自身给出定义的函数称为递归函数。 2.说明 (1)每个递归函数都必须有非递归定义的初始值,否则,递归函数就无法计算。 (2)递归式的主要表达式是用较小自变量的函数值来表示较大自变量的函数值。 3°.一种特殊的递归函数:双递归函数(一个函数及他的一个变量由函数自身定义
2017-04-22 17:36:34 2568 1
原创 第一章 算法概述(字典序问题)
这里列了五个方面的内容,应该不算是对算法的概述,只能说是学习算法你一定要知道的东西。一. 算法的概念 算法是指解决问题的一种方法或一个过程。算法是由若干条指令组成的有穷序列。 算法具有以下四个性质: (1)输入; (2)输出; (3)确定性;
2017-04-16 15:49:55 1215
原创 杭电acm-1005
杭电1005题题目:Number SequenceProblem DescriptionA number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you
2017-02-13 14:08:26 435
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人