PTA 520 钻石争霸赛 2022
7-1 520表白
原题
算法标签 模拟
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
cout<<n<<"! "<<520<<"!";
return 0;
}
7-2 分糖豆
原题
算法标签 模拟
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n,m,k;
cin>>n>>m>>k;
if(n*k==m){
cout<<"zheng hao mei ren "<<k<<"!";
}
else if(n*k-m<0){
cout<<"hai sheng "<<abs(n*k-m)<<"!";
}
else{
//cout<<"hai cha "<<abs(n*k-m)<<"!";
cout<<"hai cha "<<n*k-m<<"!";
}
return 0;
}
7-3 约会App
原题
算法标签 模拟
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int a, b ,c ,d, e1;
cin>>a>>b>>c>>d>>e1;
int n;
cin>>n;
while(n--){
int e,f,g;
cin>>e>>f>>g;
if(a!=e&&f>=b&&f<=c&&g>=d&&g<=e1){
cout<<e<<" "<<f<<" "<<g<<"\n";
}
}
return 0;
}
7-4 关于奇数的等式
原题
算法标签 模拟
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
bool f(int x, int y, int z,int n){
if(x*y*z*3==(x*y+y*z+x*z)*n&&x%2&&y%2&&z%2){
return true;
}
return false;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n,m;
cin>>n>>m;
bool flag=false;
for(int i=0;i<=m;++i){
for(int j=i+1;j<=m;++j){
for(int k=j+1;k<=m;++k){
if(f(i,j,k,n)){
flag=true;
cout<<i<<" "<<j<<" "<<k;
break;
}
}
if(flag){
break;
}
}
if(flag){
break;
}
}
if(!flag){
cout<<"No solution in (3, "<<m<<"].\n";
}
return 0;
}
7-5 我侬数
原题
算法标签 模拟
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 505;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
unordered_map<int,int> mp,tmp;
string a,b;
cin>>a>>b;
for(int i=0;i<a.size();++i){
mp[a[i]-'0']++;
}
for(int i=0;i<b.size();++i){
mp[b[i]-'0']++;
}
for(int i=0;i<mp.size();++i){
tmp[i]=mp[i];
}
string c,d;
while(cin>>c>>d&&c!="0"&&d!="0"){
int flag=false;
int num1=0;
int num2=0;
// 去除前导零
for(int i=0;i<c.size();++i){
if(c[i]!='0'){
num1=i;
break;
}
}
// 若都为零, 最后一个零需要记录
if(num1==c.size()-1){
mp[0]--;
}
// 数字出现次数是否一致
for(int i=num1;i<c.size();++i){
int a1=mp[c[i]-'0']--;
if(a1<0){
flag=true;
}
}
for(int i=0;i<c.size();++i){
if(d[i]!='0'){
num2=i;
break;
}
}
if(num2==d.size()-1){
mp[0]--;
}
for(int i=num2;i<d.size();++i){
int b1=mp[d[i]-'0']--;
if(b1<0){
flag=true;
}
}
for(int i=0;i<mp.size();++i){
if(mp[i]){
flag=true;
}
}
if(flag){
cout<<"No"<<"\n";
}
else{
cout<<"Yes"<<"\n";
}
// 重新赋值
for(int i=0;i<mp.size();++i){
mp[i]=tmp[i];
}
}
return 0;
}
7-6 非诚勿扰
原题
算法标签 模拟
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 10005;
const double e = 2.718;
int a[N];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
for(int i=0;i<n;++i){
cin>>a[i];
}
int cute=0, cuteid=0;
for(int i=0;i<n/e;++i){
if(a[i]>cute){
cute=a[i];
cuteid=i;
}
}
bool flag=false;
int mx=0,mxid=0, t=0, tid=0;
for(int i=0;i<n;++i){
if(a[i]>cute&&!flag){
flag=true;
t=a[i];
tid=i;
}
if(a[i]>=cute){
mx=a[i];
mxid=i;
}
}
if(tid)cout<<tid + 1<<" "<<mxid + 1<<"\n";
else{
cout<<tid<<" "<<mxid + 1<<"\n";
}
return 0;
}
7-7 新式六合彩
原题
算法标签 模拟
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1005;
int a[N][N];
vector<int> x, y;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n,m;
cin>>n>>m;
for(int i=0;i<n;++i){
for(int j=0;j<m;++j){
cin>>a[i][j];
}
}
int r, c, num;
cin>>r>>c>>num;
int mn=0x3f3f3f3f;
for(int j=0;j<m;++j){
if(a[r-1][j]!=-1){
if(abs(a[r-1][j]-num)< mn){
mn = abs(a[r-1][j]-num);
}
}
}
for(int i=0;i<n;++i){
if(a[i][c-1]!=-1){
if(abs(a[i][c-1]-num)<mn){
mn = abs(a[i][c-1]-num);
}
}
}
for(int j=0;j<n;++j){
if(abs(a[r-1][j]-num)==mn){
x.push_back(r-1);
y.push_back(j);
}
}
for(int i=0;i<m;++i){
if(abs(a[i][c-1]-num)==mn){
x.push_back(i);
y.push_back(c-1);
}
}
for(int i=0;i<x.size();++i){
cout<<"("<<x[i]+1<<":"<<y[i]+1<<")"<<"\n";
}
return 0;
}
7-8 521序列
原题
算法标签 模拟
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 100005;
int a[N];
vector<int> vec;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
for(int i=0;i<n;++i){
cin>>a[i];
}
for(int i=0;i<n;++i){
int b=a[i];
int c=a[i]/2;
int d=a[i]/5;
if(c*2==a[i]){
vec.push_back(c);
}
if(d*5==a[i]){
vec.push_back(d);
}
}
sort(vec.begin(), vec.end());
vec.erase(unique(vec.begin(), vec.end()), vec.end());
reverse(vec.begin(), vec.end());
for(auto vv:vec){
cout<<vv<<" ";
}
return 0;
}
呜呜呜,真正意义上并没有难题, 几乎都是模拟, 但是只有一个小时,想拿高分并不容易。
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈