PAT(乙级)2022年夏季考试题解

7-1 又是一道 A+B

15分

原题

算法标签

模拟 哈希

代码

#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 10005;
int f[N][N];
int a[N], b[N];
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();return s*w;
}
void put(int x) {if(x<0) putchar('-'),x=-x;if(x>=10) put(x/10);putchar(x%10^48);
}
unordered_map<string, int> ump={{"1011111", 0}, {"0000011", 1}, {"1110110", 2},{"1110011", 3},{"0101011", 4},{"1111001", 5},{"1111101", 6},{"1000011", 7},{"1111111", 8},{"1111011", 9},
};
vector<string> get(string str){vector<string> res;string word;for (auto c: str){if (c == ' '){res.push_back(word);word = "";}else word += c;}res.push_back(word);return res;
}
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);string s, s1;getline(cin, s);getline(cin, s1);vector<string> get00=get(s);vector<string> get10=get(s1);int a=0, b=0;rep(i, 0, get00.size()){a=a*10+ump[get00[i]];}rep(i, 0, get10.size()){b=b*10+ump[get10[i]];}printf("%lld", (a+b));return 0;
}

7-2 健身达人

分数 20

原题


算法标签

模拟 STL

代码

#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 10005;
int f[N][N];
int a[N], b[N],c[N],d[N];
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();return s*w;
}
void put(int x) {if(x<0) putchar('-'),x=-x;if(x>=10) put(x/10);putchar(x%10^48);
}
vector<vector<int>> vs;
vector<int> v;
vector<int> v1;
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n=read();rep(i, 0, n){rep(j, 0, 8){f[i][j]=read();}}// i列rep(i, 1, 8){int max=0;rep(j, 0, n){if(f[j][i]>max){max=f[j][i];}}rep(j, 0, n){if(f[j][i]==max&&max){v.push_back(f[j][0]);}}vs.push_back(v);v.erase(v.begin(), v.end());}int max1=0, max2=0;rep(i, 0, n){rep(j, 1, 8){if(f[i][j])d[i]++;c[i]+=f[i][j];}if(max1<c[i]&&d[i]>=3){max1=c[i];}}rep(i, 0, n){if(c[i]==max1&&d[i]>=3){v1.push_back(f[i][0]);}}int cnt=0;for(auto a:vs){printf("Star %lld\n", ++cnt);if(a.size())for(auto b:a){printf("%06lld\n", b);}else{printf("NONE\n");}}puts("Star of the week");for(auto a:v1){printf("%06lld\n", a);}return 0;
}

7-3 阶乘方程

分数 20

原题

算法标签

模拟 数学

代码

#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 10005;
int f[N][N];
int a[N], b[N],c[N],d[N];
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();return s*w;
}
void put(int x) {if(x<0) putchar('-'),x=-x;if(x>=10) put(x/10);putchar(x%10^48);
}
int mul(int a,int b){int ans=1;rep(i, a+1, b+1){ans*=i;if(ans>0x3f3f3f3f){return -1;}}return ans;
}
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n=read();while(n--){int a=read(), b=read(), c=read(), d=read();if(mul(c, d)==mul(a, b)&&mul(a, b)!=-1){puts("YES");}else{puts("NO");}}return 0;
}

7-4 今天是周几

分数 20

原题

算法标签

模拟 哈希

代码

#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 10005;
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();return s*w;
}
void put(int x) {if(x<0) putchar('-'),x=-x;if(x>=10) put(x/10);putchar(x%10^48);
}
int ff(int a,int b, int c, int d, int e, int f, int dd){int cnt=0;int x, y, z;if(dd==0){x=a;y=(a+1)%7;z=(a+2)%7;}else if(dd==1){x=(b-1+7)%7;y=b;z=(b+1)%7;}else if(dd==2){y=(c-1+7)%7;x=(c-2+7)%7;z=c;}if(d==x){cnt+=1;}if(e==y){cnt+=2;}if(f==z){cnt+=4;}return cnt;
}
unordered_map<int,string> ump={{0, "Sunday"}, {1, "Monday"}, {2, "Tuesday"},{3, "Wednesday"},{4, "Thursday"},{5, "Friday"},{6, "Saturday"},
};
unordered_map<int,string> um={{0, "yesterday"}, {1, "today"}, {2, "tomorrow"},
};
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int a=read(),b=read(), c=read();int d=read(),e=read(), f=read();int t;rep(i, 0, 3){int aa=ff(a, b, c, d, e, f, i);if(aa==1){int t=(d+1)%7;cout<<ump[t]<<"\n";cout<<um[i]<<"\n";cout<<"yesterday"<<"\n";break;}else if(aa==2){int t=(e)%7;cout<<ump[t]<<"\n";cout<<um[i]<<"\n";cout<<"today"<<"\n";break;}else if(aa==4){int t=(f-1+7)%7;cout<<ump[t]<<"\n";cout<<um[i]<<"\n";cout<<"tomorrow"<<"\n";break;}}return 0;
}

7-5 LRU缓存

分数 25

原题

算法标签

模拟

代码

#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 20005;
int st[N];
inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();return s*w;
}
void put(int x) {if(x<0) putchar('-'),x=-x;if(x>=10) put(x/10);putchar(x%10^48);
}
signed main(){int n=read(), m=read();vector<int> a(m + 1);vector<int> ans;rep(i, 1, m+1){a[i]=read();}int cnt = 0;for (int i = 1, j = 1; i <= m; ++i){if (st[a[i]] == 0)cnt += 1;st[a[i]] += 1;if (cnt > n){while (j < i){st[a[j]] -= 1;if (st[a[j]] == 0){ans.push_back(a[j]);j++;cnt -= 1;break;}j++;}}}rep(i, 0, ans.size()){cout << ans[i] << " "[i == ans.size() - 1];}
}

战绩

原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈

PAT(乙级)2022年夏季考试相关推荐

  1. PAT(乙级)2022年夏季考试 C语言AC代码

    考试的时候最后一题没能AC,尝试重新做一下. 7-1 又是一道 A+B 分数 15 本题仍然是给出两个正整数 A 和 B,请你输出 A+B 的值. 只不过,A 和 B 是用发光二极管(LED)来显示的 ...

  2. PAT乙级资料集-2022.04.06

    pat乙级代码 pat乙级代码_wen_zhi的博客-CSDN博客 PAT乙级试题整理(二)--牛客网20分真题整理 PAT乙级试题整理(二)--牛客网20分真题整理_Dirichlet_zju的博客 ...

  3. pat 乙级 1041 考试座位号(C++)

    题目 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要 ...

  4. 【2019年秋PAT乙级考试】回顾 +题解+思路2019-9-8

    刚上大二第一次考乙级,数据结构学了链表.95道题刷完了...考试的确是答得快了,但是分数还是~~~~~ 四道题四十分钟左右做完提交都是一遍过(平常刷题,交20 30次~~~才能补完全部测试点卡的漏洞. ...

  5. PAT乙级-1041 考试座位号 (15分)

    点击链接PAT乙级-AC全解汇总 题目: 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示 ...

  6. PAT乙级考试经验分享

    对于刚过去2016年冬季PAT乙级考试给大家分享下一下经验: 1 报名就不用多说了,准备好官网上该准备的材料,选择离学校最近的考点最好.特别是自我介绍那一块尤其重要,毕竟那是关乎就业,个人建议写满10 ...

  7. 【最新合集】PAT乙级最优题解(题解+解析+代码)

    以下每道题均是笔者多方对比后, 思考整理得到的最优代码,欢迎交流! pat乙级题解目录 编号 标题 题解 分类 1001 害死人不偿命的(3n+1)猜想 (15分) 9行代码AC 水 1002 写出这 ...

  8. PAT 乙级(Basic Level) 题解汇总(持续更新)(C++)

    前言 为了准备3月份的CCF CSP认证,以及提升自己的编程能力和数据结构与算法基础,目前我坚持每天刷pat乙级题库,然后记录在CSDN.一则,希望夯实我做过的题和学到的东西:二则,希望对和我一样的小 ...

  9. pat 乙级 1008 数组元素循环右移问题(C++)

    题目 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A​0 A​1 ⋯A​N−1)变换为(A​N−M​​ ⋯​AN−​​ ...

最新文章

  1. Firewall防火墙应用案例
  2. Python中的ThreadLocal变量
  3. Flutter入门:Hero共享元素
  4. python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
  5. Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方。
  6. udp组播的应用场景
  7. phphstudy运行不了网站_传统企业网站运营分析:这些弊端你了解吗
  8. 全国计算机二级access题库百度云,【计算机】全国计算机二级ACCESS上机题库(附带答案).pdf...
  9. java flash_存在漏洞的Java及Flash版本使用者众多
  10. 一键安装服务器系统,一键安装服务器系统
  11. SQL Server 2008安装图解教程
  12. 【java】PageHelper.startPage
  13. Elasticsearch 入门到精通-Elasticsearch创建索引
  14. 数据结构c语言版陈越,数据结构 陈越
  15. Spyder学习笔记1-Jack Xu
  16. android app后台收不到消息,不打开智能关怀App收不到手表发的消息
  17. Thread.currentThread()方法、进程、线程、多线程相关总结(二)
  18. Java 使用JavaMail通过Gmail发送电子邮件
  19. TIM定时器_CNT_ARR_PSC_CRR
  20. ts中类的public、private

热门文章

  1. php服务器环境配置
  2. 对于配置JAVA_HOME
  3. 解决git clone时报SSL错误
  4. Java编写 输入一个字符串,请编写一个函数统计连续相同字符及其数量。例如,输入“aabbbbcccAB”,返回“a2b4c3 A1 B1”及5;
  5. Java面试基础知识III
  6. ModalForm的使用
  7. 【Undertale-传说之下】-中文补丁汉化steam
  8. Y05 - 024、数据的应用①:四则运算、运算优先级
  9. 让你的 CDN 费用省 50% 以上!图片瘦身的正确姿势
  10. 用MySQL模拟消息队列