
PAT解题报告
永远的EMT
每天时刻保持超越自我的意识
展开
-
【PAT】1001. A+B Format
注意当结果为0的情况#include#includeusing namespace std;int main(){ int a,b; while(cin>>a>>b) { int c=fabs(a+b); int cnt=0; int aa=1; char str[10]; while(c){原创 2017-01-05 00:22:30 · 296 阅读 · 5 评论 -
【PAT】1088. Rational Arithmetic
#define LOCAL#include #include #include #include #include using namespace std;typedef long long ll;ll gcd(ll a,ll b){ return b==0?a:gcd(b,a%b);}struct Fraction{ ll up,down;};Fract原创 2017-02-05 22:42:42 · 275 阅读 · 0 评论 -
【PAT】1015. Reversible Primes
#define LOCAL#include #include #include #include #include using namespace std;typedef long long ll;int a[1000100];bool isprime(int x){ for(int i=2;i*i<=x;i++){ if(x%i==0) return原创 2017-02-06 00:28:22 · 312 阅读 · 0 评论 -
【PAT】1042. Shuffling Machine
本题关键:将字母映射成数字表示,之后用辅助数组即可完成操作#include#include#include #includeusing namespace std;const int N=54;char mp[5]={'S','H','C','D','J'};int start[N+1],rear[N+1],pos[N+1];int main(){ int k;原创 2017-01-15 17:19:22 · 379 阅读 · 0 评论 -
【PAT】1078. Hashing
#define LOCAL#include #include #include #include #include using namespace std;typedef long long ll;bool isprime(int x){ for(int i=2;i*i<=x;i++){ if(x%i==0) return false; }原创 2017-02-06 17:33:20 · 417 阅读 · 0 评论 -
【PAT】1096. Consecutive Factors
#define LOCAL#include #include #include #include #include #include using namespace std;typedef long long ll;bool isprime(int x){ for(int i=2;i*i<=x;i++){ if(x%i==0) return false原创 2017-02-06 18:26:28 · 229 阅读 · 0 评论 -
【PAT】1059. Prime Factors
#define LOCAL#include #include #include #include #include #include using namespace std;typedef long long ll;bool isprime(int x){ for(int i=2;i*i<=x;i++){ if(x%i==0) return false原创 2017-02-06 20:51:42 · 279 阅读 · 0 评论 -
【PAT】1046. Shortest Distance (20)
关键:需要输入时进行预处理,否则会超时#include#include#include #includeusing namespace std;const int MAXN=100005;int dis[MAXN],a[MAXN];int main(){ int n; cin>>n; int sum=0; for(int i=1;i<=n;i原创 2017-01-15 21:58:05 · 385 阅读 · 0 评论 -
【PAT】1065. A+B and C (64bit)
#include#include#include #includeusing namespace std;int a[100001];int main(){ int t; cin>>t; int cnt=1; while(t--){ long long a,b,c; scanf("%lld%lld%lld",&a,&原创 2017-01-15 23:00:17 · 308 阅读 · 0 评论 -
【PAT】1023. Have Fun with Numbers
#define LOCAL#include #include #include #include #include #include using namespace std;typedef long long ll;struct bign{ int d[1010]; int len; bign(){ memset(d,0,sizeof(d));原创 2017-02-07 10:52:28 · 186 阅读 · 0 评论 -
【PAT】1024. Palindromic Number
注意使用高精度#define LOCAL#include #include #include #include #include #include using namespace std;typedef long long ll;struct bign{ int d[1010]; int len; bign(){ memset(d,0,si原创 2017-02-07 12:14:37 · 255 阅读 · 0 评论 -
【PAT】1039. Course List for Student
#define LOCAL#include #include #include #include #include #include #include using namespace std;const int N = 40010;const int M=26*26*26*10+1;vector selectCourse[M];typedef long long ll;原创 2017-02-07 18:13:30 · 266 阅读 · 0 评论 -
【PAT】1002.A+B for Polynomials
#include#include#include #includeusing namespace std;float a[1001],b[1001],c[1001];int main(){ int k1,k2; cin>>k1; int cnt=0; for(int i=0;i<k1;i++){ int ep; floa原创 2017-01-12 00:53:02 · 288 阅读 · 0 评论 -
【PAT】1009. Product of Polynomials
#include#include#include #includeusing namespace std;struct Poly{ int exp; float cof;}poly[1001];float ans[2001];int main(){ int k; cin>>k; for(int i=0;i<k;i++){原创 2017-01-16 22:24:10 · 216 阅读 · 0 评论 -
【PAT】1063. Set Similarity
#define LOCAL#include #include #include #include #include #include #include #include using namespace std;const int N=51;set st[N];int main(){ #ifdef LOCAL freopen("data.in",原创 2017-02-08 00:47:53 · 281 阅读 · 0 评论 -
【PAT】1011. World Cup Betting
#include#include#include #includeusing namespace std;int main(){ double ans=1.0; char S[3]={'W','T','L'}; char pos[4]; //输入时直接处理 for(int i=0;i<3;i++){ double temp原创 2017-01-17 11:24:10 · 271 阅读 · 0 评论 -
【PAT】1018. Public Bike Management
考查点:DFS递归,Dijkstra求最短路径思路:这道题不能直接用Dijkstra来更新need和remain必须用DFS遍历所有最短路径才能更新,写Dijkstra记得判断vis[u]==false,路径用pre记录前驱节点,因为有多条最短路径,必须用Vector数组来保存,Dijkstra主要涉及的就是pre的更新,DFS每次递归到边界0处时候遍历temp路径计算need和remain,原创 2017-02-16 17:38:11 · 377 阅读 · 0 评论 -
【PAT】1006. Sign In and Sign Out
#include #include #include using namespace std;int main(){ int n; cin>>n; char e[16],l[16]; int hmin=24,mmin=60,smin=60; int hmax=0,mmax=0,smax=0; while(n--){原创 2017-01-17 15:23:27 · 286 阅读 · 0 评论 -
【PAT】1036. Boys vs Girls
#include #include #include using namespace std;struct person{ char id[15]; char name[15]; int grade; char sex;}high,low,temp;void init(){ high.grade=-1; low.grade=101;原创 2017-01-17 16:33:05 · 232 阅读 · 0 评论 -
【PAT】1031. Hello World for U
#include#include#include #include#include using namespace std;char str[82];int main(){ scanf("%s",str); int n=strlen(str); int ans=0,k=3; int n2; while(k<n){ if(3原创 2017-01-17 22:01:20 · 241 阅读 · 0 评论 -
【PAT】1060. Are They Equal
#define LOCAL#include #include #include #include #include #include #include #include using namespace std;int n;string deal(string s,int& e){ int k=0; while(s.length()>0&&s[0]=='0')原创 2017-02-08 22:41:01 · 226 阅读 · 0 评论 -
【PAT】1100. Mars Numbers
#define LOCAL#include #include #include #include #include #include #include #include #include using namespace std;string unitDigit[13]={ "tret", "jan", "feb", "mar", "apr", "may", "jun原创 2017-02-08 23:52:23 · 297 阅读 · 0 评论 -
【PAT】1019. General Palindromic Number
注意边界数据0的输出#include #include #include using namespace std;int main(){ int n,b; cin>>n>>b; int a[40]; int k=0; int ans=n; while(n){ a[k++]=n%b; n=n/b;原创 2017-01-18 11:16:31 · 220 阅读 · 0 评论 -
【PAT】1027. Colors in Mars
进制转化,通过开一个字符数组表示对应关系简化判断#include #include #include using namespace std;int main(){ char radix[13]={'0','1','2','3','4','5','6','7','8','9','A','B','C'}; int a,b,c; cin>>a>>b>>c;原创 2017-01-18 12:00:53 · 421 阅读 · 0 评论 -
【PAT】1058. A+B in Hogwarts
注意溢出,这里出现是计算结果产生溢出#include #include #include using namespace std;int main(){ long long g,s,k; scanf("%lld.%lld.%lld",&g,&s,&k); long long cost=17*29*g+29*s+k; scanf("%lld.%lld.原创 2017-01-18 12:16:02 · 243 阅读 · 0 评论 -
【PAT】1054. The Dominant Color
#define LOCAL#include #include #include #include #include #include #include #include #include using namespace std;int main(){ #ifdef LOCAL freopen("data.in","r",stdin);原创 2017-02-09 16:43:41 · 294 阅读 · 0 评论 -
【PAT】1071. Speech Patterns
#define LOCAL#include #include #include #include #include #include #include #include #include using namespace std;bool check(char c){ if(c>='A'&&c<='Z') return true; if(c>='0'&&c<=原创 2017-02-09 17:34:13 · 382 阅读 · 0 评论 -
【PAT】1022. Digital Library
关键:map和set结合使用#define LOCAL#include #include #include #include #include #include #include #include #include using namespace std;map > mpTitle,mpAuthor,mpKey,mpPub,mpYear;void query(map原创 2017-02-09 18:20:30 · 222 阅读 · 0 评论 -
【PAT】1051. Pop Sequence
#define LOCAL#include #include #include #include #include #include #include #include #include using namespace std;int st[10010];int a[1010];int main(){ #ifdef LOCAL freopen(原创 2017-02-09 21:23:46 · 324 阅读 · 0 评论 -
【PAT】1061. Dating
#include #include #include #include using namespace std;int main(){ char week[7][5]={"MON","TUE","WED","THU","FRI","SAT","SUN"}; int ans=0; char str1[70],str2[70],str3[70],str4[70];原创 2017-01-19 13:52:14 · 222 阅读 · 0 评论 -
【PAT】1073. Scientific Notation
#include #include #include #include using namespace std;int main(){ char str[10010]; gets(str); char ans[10010]; int len=strlen(str); if(str[0]=='-') cout<<'-'; ans[0]=s原创 2017-01-19 15:49:12 · 232 阅读 · 0 评论 -
【PAT】1056. Mice and Rice
#define LOCAL#include #include #include #include #include #include #include #include #include #include using namespace std;struct mouse{ int w; int r;}mouse[1010];int main(){原创 2017-02-09 23:31:21 · 276 阅读 · 0 评论 -
【PAT】1005. Spell It Right
#include #include #include #include using namespace std;char change[10][10]={ "zero","one","two","three","four","five","six", "seven","eight","nine"};int main(){ char str[110];原创 2017-01-19 16:50:09 · 336 阅读 · 0 评论 -
【PAT】1035. Password
#include #include #include #include using namespace std;struct note{ char usr[11]; char pwd[11];}mem[1001];int flag[1001];int main(){ int n; cin>>n; int cnt=0; int f=原创 2017-01-19 21:02:20 · 232 阅读 · 0 评论 -
【PAT】1077. Kuchiguse
关键:旋转字符串,转化为最长前缀#include #include #include #include using namespace std;int main(){ int n; cin>>n; char str[101][260]; int lenmin=260; getchar(); for(int i=0;i<n;i++)原创 2017-01-19 22:47:35 · 333 阅读 · 0 评论 -
【PAT】1082. Read Number in Chinese
关键:字符串问题,注意边界0的处理,各种特殊情况#include #include #include #include using namespace std;int main(){ char change[11][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu" }; char wei[5]原创 2017-01-20 00:25:46 · 494 阅读 · 0 评论 -
【PAT】1030. Travel Plan
考查点:Dijkstra#include #include #include #include #include #include #include #include #include #include #include #define FOR(i, x, y) for(int i = x; i <= y; i++)#define rFOR(i, x, y) for(原创 2017-02-19 20:12:54 · 287 阅读 · 0 评论 -
【PAT】1072. Gas Station
考查点:Dijkstra算法思路:第一次输入少了&,第二次本题是1到n+m,缺少了+m,还有id转化两次写错,第一次==写错成=,第二次忽视了数字为多位数的情况,浪费时间最多的是调用ds时应该从起点s+n而不是s+m,另外,本题最求最大的最近距离,变量应设为里dmax里面才是dmin#define LOCAL#include #include #include #include原创 2017-02-19 22:08:01 · 305 阅读 · 0 评论 -
【PAT】1025. PAT Ranking
#include #include #include #include using namespace std;struct Student{ char id[15]; int score; int local_num; int local_rank;}stu[30010];bool cmp(Student a,Student b){ if(原创 2017-01-20 16:18:05 · 290 阅读 · 0 评论 -
【PAT】1087. All Roads Lead to Rome
考查点:Dijkstra提交情况:输入处理没做好,结果调了半天。。。虽然没报错,是因为输入是字符串,所以最后接受的是空串,注意这里输入是n-1而不是n。。还有以后调试多输出中间结果,比较快。本题思路直接套dj算法,在维护几个数组增加判断情况即可#define LOCAL#include #include #include #include #include #include原创 2017-02-19 23:50:54 · 706 阅读 · 0 评论