- 博客(122)
- 收藏
- 关注
原创 PTA-习题2.5 两个有序链表序列的合并(15 分)
List Merge(List L1,List L2){ List r,S; S = (List)malloc(sizeof(struct Node)); S->Next = NULL; r = S; List M = L1->Next; List N= L2->Next; while(M&&N){ if(M->Data...
2018-08-08 20:11:31
3296
原创 PTA-6-10 二分查找(20 分)
犯了一个错误:忽略了mid要不断2分的,mid = start+end,写在了循环外面。Position BinarySearch(List L,ElementType X){ if(L ==NULL) return NotFound; int start = 1,end = L->Last; int mid; while(start<=end) { ...
2018-07-27 16:56:39
8241
原创 PTA L1-039
L1-039. 古风排版时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后...
2018-03-25 17:39:34
305
原创 PAT L1-013
#include<iostream>#include<algorithm>using namespace std;int main(){ int n; cin>>n; long long sum=0; for(int i=1;i<=n;i++) { long long int count=1; ...
2018-03-10 16:53:21
243
原创 PAT L1-012
#include<iostream>#include<algorithm>using namespace std;int main(){ int n; cin>>n; long long sum=1; for(int i=0;i<n;i++) { sum*=2; } printf("2^%d =...
2018-03-10 16:48:34
227
原创 PAT L1-010
#include<iostream>#include<algorithm>using namespace std;int main(){ int a[3]; cin>>a[0]>>a[1]>>a[2]; sort(a,a+3); printf("%d->%d->%d\n",a[0],
2018-03-10 16:43:46
233
原创 PAT L1-007
#include<iostream>#include<string.h>using namespace std;int main(){ char s[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba"
2018-03-10 16:38:32
168
原创 PAT L1-005
结构体是个好东西#include<iostream>#include<string.h>using namespace std;struct student{ long long number; int pretest; int test;}Stu[1000];int main(){ int n; cin>>n; for(int i=0...
2018-03-09 17:05:43
220
原创 PAT L1-004
#include<iostream>#include<string.h>using namespace std;int main(){ int F; cin>>F; int c=0; c=5*(F-32); c=c*1.0/9; printf("Celsius = %d\n",c); return 0;}
2018-03-09 09:54:36
200
原创 PAT L1-003
#include<iostream>#include<string.h>using namespace std;int main(){ char s[1000]; cin>>s; int lengh=strlen(s); int count[10]; memset(count,0,sizeof(count)); for(int i=0;i&...
2018-03-09 09:45:13
166
原创 PAT L1-002
#include<iostream>using namespace std;int main(){ int n; char charlator; cin>>n>>charlator; int count=1; int restof=0; int k=1; for(int i=1;;i++) { if(n>=2*(2*i+1)+c...
2018-03-09 09:27:14
238
原创 PTA 03-树1 树的同构(25 分)
#include#define Maxsize 10using namespace std;struct TreeNode{ int left; int right; char index;}T1[Maxsize],T2[Maxsize];int isomorphic(int R1,int R2){ if((R1==-1)&&(R2==-1)) return 1;
2017-11-02 20:38:37
461
原创 PTA 03-树2 List Leaves(25 分)
先是找到根节点在哪,然后层序遍历;#include#define MaxTree 10#define Tree char #include#includeusing namespace std;struct TreeNode{ int index; Tree Left; Tree Right; int leftnumber; int rightnumber;
2017-11-02 18:55:30
691
转载 STL queue用法
2、queuequeue 模板类的定义在头文件中。与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。定义queue 对象的示例代码如下:queue q1;queue q2;queue 的基本操作有:入队,如例:q.push(x); 将x 接到队列的末端。
2017-11-02 18:22:09
224
原创 PTA 02-线性结构2 一元多项式的乘法与加法运算
02-线性结构2 一元多项式的乘法与加法运算(20 分)设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结
2017-09-20 00:11:45
354
原创 6-11 求自定类型元素序列的中位数(25 分)
开始用冒泡算法,最后一个测试点过不去用快速排序,最后一个测试点过不去,数据太多数相同;数据特殊导致时间复杂度退化。用希尔排序,acvoid shell_sort(ElementType A[],int N);ElementType Median(ElementType A[],int N){ if(N==1) return A[0]; shell_sort(A,N)
2017-09-09 17:31:40
4821
原创 阶乘计算升级版
这题数字到后面很大,不能用普通的方法。用数组进行大整数的乘法。手工算法。int mutiply(int N);void Print_Factorial(int N){ double sum=1; int s; if(N<0) { printf("Invalid input\n"); return; } if(N==0) { pri
2017-09-09 15:41:58
365
转载 PAT 乙级 1034
这个题还是给大神把:传送门:http://blog.youkuaiyun.com/plank_root/article/details/51330891#include typedef struct frac_{long n, d, s;} FC;// 求最大公约数的函数long gcd(long a, long b) {return b == 0 ? a : gcd(b, a % b
2017-09-09 10:02:08
521
原创 PAT 乙级 1033
用数组我的程序运行超时,所以用string,要注意的是几个条件我在代码中标出来了。#includeusing namespace std;int main(){ string s1; string s2; getline(cin,s1); getline(cin,s2); if(s1.length()==0) { cout<<s2; return 0;
2017-09-08 21:44:47
325
原创 PAT 乙级 1032
不难#includeusing namespace std;struct nood{ int a,b;};bool cmp(int a,int b){ return a>b;}int main(){ nood c[100000]; int n; cin>>n; int g,h; int sum[100000]={0}; for(int i=0;i<n;i
2017-09-08 19:35:38
236
原创 PAT 乙级 1031
最近写代码老不在状态,这种题都要花很多时间#includeusing namespace std;int main(){ int n; cin>>n; int m=n; string s; int k=0; char c[11]={'1','0','X','9','8','7','6','5','4','3','2'}; while(m--) { int s
2017-09-08 16:30:48
219
原创 PAT 乙级 1030
简化第二层循环的次数就行了,还有两数相乘范围超过int#include#include#define maxn 100005using namespace std;double a[maxn];int main(){ int n;double p; cin>>n>>p; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n);
2017-09-08 15:46:07
197
原创 PAT 乙级 1029
把小写改成大写就好办多了#includeusing namespace std;int main(){ string s1,s2; cin>>s1>>s2; char c[200]; int flag; int k=0; for(int i=0;i<s1.length();i++) { flag=0; if(s1[i]>='a'&&s1[i]<='z')
2017-09-07 20:23:44
311
原创 PAT 乙级 1028
一开始我是用string字符串做的,但只得到15分,最后是运算超时。贴一下代码:#include#define maxn 100005 using namespace std;struct nood{ string name; string days; int num; };int main(){ int n; nood c[maxn]; cin>>n; //s
2017-09-06 00:26:43
278
原创 PAT 乙级 1027
#includeusing namespace std;int main(){ int n; char c; cin>>n>>c; int sum=0; int pr=0; int j; if(n>=7) { for(int i=3;i<=n/2;i+=2) { sum+=i*2; if(sum<=n-1) {
2017-09-05 20:51:58
317
转载 PAT 乙级 1025
大神的代码#include #include using namespace std;int main() { int first, k, n, temp; cin >> first >> n >> k; int data[100005], next[100005], list[100005]; for (int i = 0; i < n; i++
2017-09-05 11:17:10
410
原创 PAT 乙级 1026
这题一开始我是在最后使原数加上0.5,再四舍五入就行了,但结果没全过。后来考虑在一开始就四舍五入,防止精度缺失。ac了!#includeusing namespace std;int main(){ int a,b; cin>>a>>b; int times=(b-a)*1.0/100+0.5; int h,m, s; h=times/3600; times-=h
2017-09-03 21:26:58
246
原创 PAT 乙级 1024
我先说我第一次做为什么会错,我把题意理解错了,总以为指数最多99;到最后有最后两个一分的测试样例没过。#includeusing namespace std;int main(){ string s; cin>>s; if(s[0]=='-') cout<<"-"; int site; for(int i=1;i<s.length();i++) { if(
2017-09-03 20:32:17
212
原创 PAT 乙级 2023
#includeusing namespace std;int main(){ int a[10]; for(int i=0;i<10;i++) cin>>a[i]; for(int i=1;i<10;i++) { if(a[i]!=0) { cout<<i; a[i]--; break; } } for(int i=0;i<10;i++)
2017-09-01 21:39:14
397
原创 PAT 乙级 1022
最近写pat总是有一点错误,还是没有大局观。不细心这回把0这种请况给漏了·!#includeusing namespace std;char c[2000];int i=0;void trans(long long x,long long y){ while(x) { c[i++]=char(x%y+'0'); x/=y; }}int main()
2017-09-01 21:29:26
189
原创 PAT 乙级 1021
#includeusing namespace std;int main(){ string s; cin>>s; int c[1000]={0}; for(int i=0;i<s.length();i++) { c[s[i]-'0']++; } for(int i=0;i<10;i++) { if(c[i]>0) printf("%d:%d\n",i
2017-09-01 21:08:17
244
原创 PAT 乙级 1020
这一题我有一个地方过不了,感觉是整数相除精度缺失,我把俩个类型改成double就交ac了。hdu 的fatmouse这一题跟着类似。#include#includeusing namespace std;struct moon{ double kc; double sj; double average; };bool cmp(moon a, moon b){ return
2017-09-01 20:57:23
374
原创 PAT 乙级 1019
当且仅当差为6174才不满足循环条件;#include#includeusing namespace std;bool cmp(int a,int b){ return a>b;}int main(){ int a[4]; int n; cin>>n; a[0]=n/1000; a[1]=n/100%10; a[2]=n/10%10; a[3]=n%10; i
2017-08-31 19:12:19
324
原创 PAT 乙级 1018
特别注意的是在一方哪种情况下都没赢时,输出B#include#include#includeusing namespace std;int main(){ int n; cin>>n; int m=n; char a,b; int a1=0,a2=0,a3=0; int g[100]={0}; int h[100]={0}; while(n--) {
2017-08-31 18:20:40
281
原创 PAT 乙级 1017
#include#includeusing namespace std;int main(){ char a[1010]; int b; scanf("%s",a); scanf("%d",&b); //cout<<b<<endl; char c[1010]; int len=strlen(a); int k=0; int j=0;; for(int i=0;i<le
2017-08-30 21:44:23
327
原创 PAT 乙级 1016
#includeusing namespace std;int main(){ string a,b; int Da,Db; int m1=1,m2=1; long long Pa=0,Pb=0; cin>>a>>Da>>b>>Db; for(int i=0;i<a.length();i++) { if(a[i]-'0'==Da) { Pa+=Da*m1;
2017-08-22 21:54:30
195
原创 PAT 乙级 1015
这题数量较大不能用cin cout(对于我的这种方法)。要用scanf printf。只是用到了结构体,其他根据题目就可以了。记得交题格式是c++;#include#include#define maxn 100010using namespace std;struct st{ int number; int d,c,score;}stu[maxn];st c
2017-08-22 21:43:18
198
原创 PAT 乙级 1014
第一个计算星期的,我把问题复杂化,以为大写字母是A到Z,结果到G就可以了。这题的难点就是分清大些写字符条件以及数字。#includeusing namespace std;int main(){ string s[4]; for(int i=0;i<4;i++) cin>>s[i]; int len1=s[0].length(); int len2=s[1].leng
2017-08-20 11:53:09
206
原创 PAT 乙级 1013
这题我用打表的方法,经过几次wa之后,把数字终于调试好了;#include#includeusing namespace std;int a[90005];int main(){ int k=1; int flag; for(int i=2;i<=120000;i++) { flag=0; for(int j=2;j<=sqrt(i);j++) {
2017-08-20 10:25:50
162
原创 PAT 乙级 1012
就是一项一项的处理就好了#includeusing namespace std;int main(){ int n; cin>>n; int m; int a[1005]; a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=0; int k=0; int flag=1; while(n--) { cin>>m; if(m%5==0&&m%2=
2017-08-20 10:01:44
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人