同上一篇博客;
贪心题目我已经刷了将近30道了,由于那几天考驾照就没写,以后有空的时候补过来吧,都在codeblock里
pat的题也刷了点,acwing 的题也刷了点,基本都攒下了。以后也会慢慢补过来的
这几天都在备战四级,上午司机下午算法,有点忙不过来就一直没写博客,今天打完比赛就想趁热写一下吧,正好昨天也做了22年夏的甲级考试
来说说pat甲级:
第一次做pat甲级考试真题感受,一共4道题须在3个小时内做完,我感觉这真的是时间很充裕了
同时四道题的难度可能也是逐级拉开的,通常甲级前两道题是可以A出来的,对于高手们来讲满分直接轻轻松松,但是或许我甲级题库刷的还不少很多并且很多算法和数据结构有点手生了,就比如二叉树和图论的一些算法就不太会写了。。。。。甚至第三道题建立邻接表的时候我都在想邻接表是怎么写来着???
所以说第一次做就只做了前两道
在经过和队友的讨论和算法构思上把第三道自己不会的题目也是顺利切了,最后一道题是考的完全多叉树的遍历,由于树的知识点还没有开始全面复习就只能等刷完list之后在补了
题目大意:两小儿争辩日期,A小儿和B小儿分别说了三个日期:y(昨天),td(今天),tom(明天,哟,这不快明天了吗),并且这两个小儿说的话每人只有一句真话,确认今天的同时输出today并且输出那两句话为真并且输出他们是y or td or tom;
题目思路:他们两个人每人只有一句话为真,所以我们只要是标记他们的话与1~7的匹配,如果他们匹配次数都是1,就说明他们的话不仅连了起来并且那两句话是真话,
打的string表在标记后输出就可以了;
1 #include<bits/stdc++.h>//2022 pat 甲级1 2 using namespace std; 3 #define int long long 4 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); 5 int a,b,c; 6 int d,e,f; 7 int yes[10]={6,0,1,2,3,4,5}; 8 int fut[10]={1,2,3,4,5,6,0}; 9 string day[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; 10 int cur1; 11 int cur2; 12 int flag1; 13 int flag2; 14 string t[7]={"yesterday","today","tomorrow"}; 15 signed main() 16 { 17 IOS; 18 cin>>a>>b>>c>>d>>e>>f; 19 for(int i=0;i<7;i++) 20 { 21 int cur1=0,cur2=0; 22 int flag1=0,flag2=0; 23 if(a==yes[i]) 24 { 25 cur1++; 26 flag1=0; 27 } 28 if(b==i) 29 { 30 cur1++; 31 flag1=1; 32 } 33 if(c==fut[i]) 34 { 35 cur1++; 36 flag1=2; 37 } 38 if(d==yes[i]) 39 { 40 cur2++; 41 flag2=0; 42 } 43 if(e==i) 44 { 45 cur2++; 46 flag2=1; 47 } 48 if(f==fut[i]) 49 { 50 cur2++; 51 flag2=2; 52 } 53 if(cur1==1&&cur2==1) 54 { 55 cout<<day[i]<<endl; 56 cout<<t[flag1]<<endl; 57 cout<<t[flag2]; 58 return 0; 59 } 60 } 61 return 0; 62 }
08-07 01:36