当前位置:网站首页>PAT(乙级)2022年夏季考试
PAT(乙级)2022年夏季考试
2022-07-06 05:58:00 【T_Y_F666】
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];
}
}
战绩
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- Sequoiadb Lake warehouse integrated distributed database, June 2022 issue
- 【无标题】
- 入侵检测领域数据集总结
- Grant Yu, build a web page you want from 0
- First knowledge database
- Amazon Engineer: eight important experiences I learned in my career
- 单元测试的意义
- Query the standard text code corresponding to a work center (s) in the production order
- 实践分享:如何安全快速地从 Centos迁移到openEuler
- Leetcode 701 insertion operation in binary search tree -- recursive method and iterative method
猜你喜欢
【论文阅读】NFlowJS:基于鲁棒学习的合成负数据密集异常检测
Report on market depth analysis and future trend prediction of China's arsenic trioxide industry from 2022 to 2028
Processes and threads
First knowledge database
[Jiudu OJ 08] simple search x
Construction of yolox based on paste framework
Mysql database master-slave cluster construction
功能安全之故障(fault),错误(error),失效(failure)
Jushan database appears again in the gold fair to jointly build a new era of digital economy
实践分享:如何安全快速地从 Centos迁移到openEuler
随机推荐
Li Chuang EDA learning notes 12: common PCB board layout constraint principles
(5) Explanation of yolo-v3 core source code (3)
About PHP startup, mongodb cannot find the specified module
wib3.0 跨越,在跨越(ง •̀_•́)ง
Go language -- language constants
Download, install and use NVM of node, and related use of node and NRM
功能安全之故障(fault),错误(error),失效(failure)
Arrays and collections
Clock in during winter vacation
多线程应用的测试与调试
The usage and difference between strlen and sizeof
【无标题】
[SQL Server fast track] - authentication and establishment and management of user accounts
【论文阅读】NFlowJS:基于鲁棒学习的合成负数据密集异常检测
Web服务连接器:Servlet
Dynamic programming -- knapsack problem
Winter 2021 pat class B problem solution (C language)
[Jiudu OJ 07] folding basket
High quality coding tool clion
AUTOSAR from getting started to becoming proficient (10) - embedded S19 file analysis