PAT
Douglas_LT
这个作者很懒,什么都没留下…
展开
-
PAT甲级1093 Count PAT‘s (25分)
注意取余的位置#pragma warning(disable :4996)#include<iostream>#include<cstdlib>#include<cstdio>#include <stdio.h>#include <string.h>#include<string> const int MOD = 1000000007;const int MAXN = 100010;using namespace s原创 2020-11-19 22:54:18 · 136 阅读 · 0 评论 -
PAT甲级1020 Tree Traversals (25分)
#pragma warning(disable:4996)#include<stdio.h>#include<queue>using namespace std;struct node{ int data; node *leftchild; node *rightchild;};int post[35], in[35];int n;node *create(int postL,int postR,int inL,int inR){ if (postL原创 2020-11-04 22:43:15 · 129 阅读 · 0 评论 -
PAT甲级1034 Head of a Gang (30分)
#pragma warning(disable:4996)#include<stdio.h>#include<algorithm>#include<math.h>#include<map>#include<iostream>using namespace std;const int maxn = 2010;const int INF = 1000000000;map<int, string >intTostring原创 2020-11-04 10:58:51 · 105 阅读 · 0 评论 -
PAT甲级1059 Prime Factors (25分) 图
#pragma warning(disable:4996)#include<stdio.h>#include<iostream>#include<algorithm>#include<math.h>using namespace std;const int maxn = 100010;bool is_prim(int n){ if (n == 1) return false; int sqr = (int)sqrt(1.0*n);原创 2020-10-25 11:39:57 · 138 阅读 · 0 评论 -
PAT乙级1012 数字分类 (20分)
#pragma warning(disable:4996)#include<stdio.h>#include<cstring>#include<algorithm>#include<iostream>using namespace std;bool cmp(int a, int b){ return a < b;}int main(){ int n; scanf("%d", &n); int a5[1010];原创 2020-10-24 12:52:45 · 128 阅读 · 0 评论 -
PAT甲级1028 List Sorting (25分)
#pragma warning(disable:4996)#include<stdio.h>#include<cstring>#include<algorithm>#include<iostream>using namespace std;struct information{ char id[10]; char name[10]; int grade;}info[100010];int C;bool cmp(struct in原创 2020-09-09 23:32:59 · 126 阅读 · 0 评论 -
PAT甲级1025 PAT Ranking (25分)
#pragma warning(disable:4996)#include<stdio.h>#include<cstring>#include<algorithm>#include<iostream>using namespace std;struct information{ char id[15]; int location_number; int score; int local_rank; int final_rank;}原创 2020-09-06 11:02:02 · 120 阅读 · 0 评论 -
PAT甲级1016 Phone Bills (25分) 只拿到了15分
在时间差额和费用的计算上有些问题,既繁琐还容易出错,可以参考柳婼PAT1016,也算是为以后类似的计算提供了一种通法#pragma warning(disable:4996)#include<stdio.h>#include<cstring>#include<algorithm>#include<iostream>using namespace std;struct information{ char name[22]; int MM,原创 2020-09-04 09:43:39 · 221 阅读 · 0 评论 -
PAT甲级1012 The Best Rank (25分)
#pragma warning(disable:4996)#include<stdio.h>#include<string>#include<algorithm>#include<iostream>using namespace std;struct studentinfo{ int id; int grade[4];}student[2010];int now;bool cmp(struct studentinfo a, str原创 2020-09-02 16:44:42 · 130 阅读 · 0 评论 -
PAT甲级1062/乙级1015 德才论 (25分)
抓住了8月份的尾巴✨#pragma warning(disable:4996)#include<stdio.h>#include<string>#include<algorithm>#include<iostream>using namespace std;struct studentinfo { int id; int de; int cai; int sum; int figure;}student[100010];bool原创 2020-08-31 23:09:08 · 131 阅读 · 0 评论 -
1068 Find More Coins (30分) 01背包问题变形(扣7分)
错误点:1.两处内存超限2.一处答案错误#pragma warning(disable:4996)#include<stdio.h>#include<string>#include<algorithm>#include<iostream>using namespace std;struct info{ int weight; int value;}package[10010];int dp[10010][10010];int f原创 2020-07-24 17:30:09 · 138 阅读 · 0 评论 -
PAT1040 Longest Symmetric String (25分) 最长回文子串
#pragma warning(disable:4996)#include<stdio.h>#include<string>#include<algorithm>using namespace std;int dp[1010][1010];int strlen(char s[]){ int i = 0; while (s[i] != '\0') i++; return i;}int main(){ char s[1010]; int原创 2020-07-22 15:23:49 · 127 阅读 · 0 评论 -
PAT甲级1045 Favorite Color Stripe (30分) 动态规划
稍稍变形的最长公共子序列#pragma warning(disable:4996)#include<stdio.h>#include<string>#include<algorithm>using namespace std;int dp[10010][10010];int main(){ int a[10010], b[10010]; int n, m, l; scanf("%d", &n); scanf("%d", &m);原创 2020-07-22 10:37:54 · 135 阅读 · 0 评论 -
PAT甲级1082 Read Number in Chinese (25分)
PAT平台不支持gets、gets_s函数#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>#include<cmath>using namespace std;int strlen(string a){ int n = 0; while (a[n] != '\0') n++; return n;}void revers原创 2020-07-15 14:12:22 · 187 阅读 · 0 评论 -
PAT甲级1077 Kuchiguse (20分)
注意:1.读入带空格的字符串scanf("%[^\n]")2.while循环要设置好循环终止条件,否则会死循环或者数组下标访问溢出#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>#include<cmath>using namespace std;int strlen(string a){ int n = 0; while (原创 2020-07-15 10:13:40 · 142 阅读 · 0 评论 -
PAT甲级1005 Spell It Right (20分)
#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>#include<cmath>using namespace std;int strlen(string a){ int n = 0; while (a[n] != '\0') n++; return n;}int main(){ string str; str.re原创 2020-07-14 13:12:09 · 131 阅读 · 0 评论 -
PAT甲级1001 A+B Format (20分)
#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>#include<cmath>using namespace std;int strlen(string a){ int n = 0; while (a[n] != '\0') n++; return n;}int main(){ int a, b; scanf("%原创 2020-07-13 19:25:35 · 185 阅读 · 0 评论 -
PAT乙级1048 数字加密 (20分)
1.下手敲代码之前一定要先规划好思路,否则改起来很困难2.注意string类型作为参数是值传递,作为引用传递的格式:std::string&#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>#include<cmath>using namespace std;int strlen(string a){ int n = 0;原创 2020-07-13 18:20:30 · 184 阅读 · 0 评论 -
PAT甲级1024/乙级1024 科学计数法 (20分)
注意:string类型resize之后用length()函数求出的长度就是resize时指定的长度#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>#include<cmath>using namespace std;int strlen(string a){ int n = 0; while (a[n] != '\0') n+原创 2020-07-12 22:36:01 · 300 阅读 · 0 评论 -
PAT甲级1061/乙级1014 福尔摩斯的约会 (20分)
#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>using namespace std;int main(){ string week[7] = { "MON","TUE","WED","THU","FRI","SAT","SUN" }; string str1, str11, str2, str22; str1.resize(70), str原创 2020-07-12 17:47:16 · 178 阅读 · 0 评论 -
PAT乙级1009 说反话 (20分)
#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>using namespace std;int main(){ string temp, str[85]; temp.resize(80); int n = 0; while (scanf("%s", &temp[0]) != EOF) { str[n] = temp; n++原创 2020-07-08 17:50:39 · 181 阅读 · 0 评论 -
PAT乙级1031 查验身份证 (15分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ int n; scanf("%d", &n); int weight[17] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 }; char match[11] = { '1','0','x原创 2020-07-07 21:56:47 · 171 阅读 · 0 评论 -
PAT乙级1021 个位数统计 (15分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ char str[1010]; int count[10] = { 0 }; scanf("%s", str); int len = strlen(str); for (int i = 0; i < len; i++)原创 2020-07-07 21:08:49 · 124 阅读 · 0 评论 -
PAT乙级1006 换个格式输出整数 (15分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ int n; scanf("%d", &n); int num=0,ans[5]; do { ans[num] = n % 10; num++; n = n / 10; } while (n != 0);原创 2020-07-07 18:30:13 · 195 阅读 · 0 评论 -
PAT甲级1058 A+B in Hogwarts (20分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ long long g1, s1, k1, g2, s2, k2; scanf("%lld.%lld.%lld %lld.%lld.%lld", &g1, &s1, &k1, &g2, &s2,原创 2020-07-07 15:13:08 · 161 阅读 · 0 评论 -
PAT甲级1027 Colors in Mars (20分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ char ch[13]; for (int i = 0; i < 10; i++) ch[i] = i + '0'; ch[10] = 'A', ch[11] = 'B', ch[12] = 'C'; int r, g,原创 2020-07-07 14:47:39 · 134 阅读 · 0 评论 -
PAT甲级1019 General Palindromic Number (20分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ int n, b; scanf("%d %d", &n, &b); int num = 0, a[40]; do { a[num] = n % b; n = n / b; num++; } while原创 2020-07-06 20:07:27 · 146 阅读 · 0 评论 -
PAT乙级1037 在霍格沃茨找零钱 (20分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ int g1, s1, k1, g2, s2, k2; scanf("%d.%d.%d %d.%d.%d", &g1, &s1, &k1, &g2, &s2, &k2); int su原创 2020-07-06 17:53:52 · 150 阅读 · 0 评论 -
PAT乙级1022 D进制的A+B (20分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ int a, b, d; scanf("%d %d %d", &a, &b, &d); int sum = a+b,num=0; int ans[31]; do { ans[num] = sum %原创 2020-07-06 16:39:21 · 133 阅读 · 0 评论 -
PAT甲级1031 Hello World for U (20分)
#pragma warning(disable:4996)#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ char ch[80]; scanf("%s", ch); int n = strlen(ch); int part = (n - 2) / 3; int left = (n - 2) % 3; for (int i = 0;原创 2020-07-05 18:26:29 · 137 阅读 · 0 评论 -
PAT乙级1027 打印沙漏 (20分)
#pragma warning(disable:4996)#include<iostream>#include<cmath>#include<cstdio>using namespace std;int main(){ int sum; char ch; scanf("%d %c", &sum, &ch); int n = pow((sum + 1) / 2, 0.5); for (int i = n; i >= 1; i--原创 2020-07-05 13:27:36 · 176 阅读 · 0 评论 -
PAT乙级1036 跟奥巴马一起编程 (15分)
#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>using namespace std;int main(){ int n; char ch; scanf("%d %c", &n, &ch); for (int i = 1; i <= n; i++) printf("%c", ch); printf("\n");原创 2020-07-04 20:21:02 · 204 阅读 · 0 评论 -
PAT甲级1006 Sign In and Sign Out (25分)
compare函数写的不错#pragma warning(disable:4996)#include<iostream>#include<string>#include<cstdio>using namespace std;struct info { char id[20]; int hh, mm, ss;}temp,ans1,ans2;bool compare(info p1, info p2){ if (p1.hh != p2.hh)原创 2020-07-04 16:08:22 · 141 阅读 · 0 评论 -
PAT甲级1011 World Cup Betting (20分)
#pragma warning(disable:4996)#include<iostream>#include<string>using namespace std;int main(){ float s[3]; char ch[3]; int max = 0; for (int i = 0; i < 3; i++) { float W, T, L; scanf("%f %f %f", &W, &T, &L); if (原创 2020-07-03 18:24:40 · 112 阅读 · 0 评论 -
PAT乙级1032 挖掘机技术哪家强 (20分)
#pragma warning(disable:4996)#include<iostream>using namespace std;int main(){ int n,maxid,maxsocre=0; int socre[100010] = { 0 }; scanf("%d", &n); for (int i = 0; i < n; i++) { int tempid, tempsocre; scanf("%d %d", &tempid, &原创 2020-06-29 17:49:58 · 133 阅读 · 0 评论 -
PAT乙级 1028 人口普查 (20分)
用scanf接收string的输入和用printf输出string需要特别注意,格式如下#include <stdio.h>#include <string>using namespace std;int main(){ string a; a.resize(100); scanf("%s", &a[0]); printf("%s",a.c_str()); return 0;}下面是本题的解答:#pragma warning(disable:49原创 2020-06-27 16:58:57 · 206 阅读 · 0 评论 -
PAT乙级1041 考试座位号 (15分)
这道题查错半天才找到错在哪:long long类型数据在scanf、printf对应的格式符是“ lld ”。#pragma warning(disable:4996)#include<iostream>using namespace std;struct student { long long id; int seat; int test;}Student[1010];int main(){ int n; scanf("%d", &n); for (in原创 2020-06-26 23:03:39 · 320 阅读 · 1 评论 -
PAT甲级1002 A+B for Polynomials (25分)
注意格式,#pragma warning(disable:4996)#include<iostream>using namespace std;int main(){ int n1; scanf("%d", &n1); double ex[1010] = { 0 }; int n = 0, temp1 = 0; double temp2 = 0; while (n < n1) { scanf("%d%lf", &temp1, &temp原创 2020-06-26 17:26:57 · 103 阅读 · 0 评论 -
PAT乙级1010 一元多项式求导 (25分)
注意特殊情况:如果求导之后没有任何非零项,需要输出0 0#pragma warning(disable:4996)#include<iostream>using namespace std;int main(){ int n = 0, k, e; int a[1010], b[1010]; while (scanf("%d%d", &k, &e) != EOF) { if (e != 0) { a[n] = k * e; b[n] = e -原创 2020-06-25 15:43:09 · 166 阅读 · 0 评论 -
PAT甲级1065 A+B and C (64bit) (20分)
哈哈没想到竟然用到了计算机组成原理的知识#pragma warning(disable:4996)#include<iostream>#include<stdio.h>#include<string>using namespace std;int main(){ int n; scanf("%d", &n); for (int i = 0; i < n; i++) { long long a, b, c; scanf("%ll原创 2020-05-31 23:52:34 · 382 阅读 · 0 评论