PTA乙级随意刷题

不写题意
(此文章是随意写的,可能会很乱且不是最好的方法)

1004

#include <bits/stdc++.h>
using namespace std;
struct rec{
    string a;
    string b;
    int c;
}edge[100100];
bool cmp(rec a,rec b){
    return a.c<b.c;
}
int main(){
    int t;
    cin>>t;
    for(int i=0;i<t;i++){
        cin>>edge[i].a>>edge[i].b>>edge[i].c;
    }
    sort(edge,edge+t,cmp);
    cout << edge[t-1].a<<" "<<edge[t-1].b<<endl;
    cout << edge[0].a<<" "<<edge[0].b<<endl;
    return 0;
}

1005(角谷猜想)

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,temp;
    cin>>n;
    int a[1000]={0};
    for(int i=0;i<n;i++){
        cin>>temp;
        a[temp]=1;
    }
    for(int i=1;i<=100;i++){
        if(a[i]){
            int temp=i;
            while(temp>1){
                if(temp%2==0) temp/=2;
                else temp=((3*temp)+1)/2;
                
                if(temp<=100)a[temp]=0;
            }
        }
    }
    int ans[1000]={0},pos=0;
    for(int i=100;i>=2;i--){
        if(a[i]!=0)ans[pos++]=i;
    }
    for(int i=0;i<pos;i++){
        cout <<ans[i];
        if(i !=pos-1)cout <<" ";
    }
    cout <<endl;
    return 0;
}

1006

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a,b,c;
    a=n/100;
    b=n%100/10;
    c=n%10;
    for(int i=0;i<a;i++)cout <<"B";
    for(int i=0;i<b;i++)cout <<"S";
    for(int i=1;i<=c;i++)cout <<i;
    cout <<endl;
}

1007(线性筛法)

#include <bits/stdc++.h>
using namespace std;
int primes[100100]={0},cnt=0;
bool st[100100]={0};
void get_primes(int n){
    for(int i=2;i<=n;i++){
        if(!st[i])primes[cnt++]=i;
        for(int j=0;primes[j]<=n/i;j++){
            st[primes[j]*i]=true;
            if(i%primes[j]==0)break;
        }
    }
}
int main(){
    int n;
    cin>>n;
    get_primes(n);
    int sum=0;
    for(int i=1;i<cnt;i++){
        if(primes[i]-primes[i-1]==2)sum++;
    }
    cout << sum<<endl;
}

1008

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    int a[100100];
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    if(n==m){
        for(int i=0;i<n;i++){
            cout <<a[i];
            
            if(i!=n-1)cout <<" ";
        }
        cout <<endl;
        return 0;
    }
    m%=n;
    for(int i=n-m;i<n;i++){
        cout << a[i]<<" ";
    }
    for(int i=0;i<n-m;i++){
        cout <<a[i];
        if(i!=n-m-1)cout <<" ";
    }
    cout <<endl;
}

1009

#include <bits/stdc++.h>
using namespace std;
int main(){
    string str;
    getline(cin,str);
    for(int i=str.length();i>=0;i--){
        if(str[i]==' '){
            for(int j=i+1;;j++){
                if(str[j]=='\0'||str[j]==' ')break;
                cout<<str[j];
            }
            cout <<" ";
        }
    }
    for(int i=0;;i++){
        if(str[i]==' '||str[i]=='\0')break;
        cout<<str[i];
    }
    cout <<endl;
}

1011

#include <bits/stdc++.h>
using namespace std;
int o=1;
int slove(){
    long long a,b,c;
    cin>>a>>b>>c;
    if(a+b>c)cout <<"Case #"<<o++<<": true"<<endl;
    else cout <<"Case #"<<o++<<": false"<<endl;
}
int main(){
    int t;
    cin>>t;
    while(t--)slove();
    return 0;
}

1012(乱写的)

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    scanf("%d",&n);
    int a=0,b=0,c=0,e=0;
    double d=0;
    int flag=1,ds=0;
    int flag2=0;
    int flag3=0;
    int flag4=0;
    for(int i=0;i<n;i++){
        int temp;scanf("%d",&temp);
        if(temp%5==0&&temp%2==0)a+=temp;
        else if(temp%5==1){
            flag4=1;
            b+=(flag*temp);
            flag*=-1;
        }
        else if(temp%5==2)c++;
        else if(temp%5==3)flag2=1,d+=temp,ds++;
        else if(temp%5==4)flag3=1,e=max(e,temp);
    }
    
    
    if(a) printf("%d " ,a);
    else printf("N ");
    
    if(flag4) printf("%d " ,b);
    else printf("N ");
    
    if(c) printf("%d " ,c);
    else printf("N ");

    if(flag2) printf("%.1lf " ,d/=ds);
    else printf("N ");
    
    if(flag3) printf("%d\n" ,e);
    else printf("N\n");
   return 0;
}

10


10


10


10


10


10


10


10


1019

#include <bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){
    return a>b;
}
int main(){
    int n;cin>>n;
    int a[4];
    while(true){
        int sum1,sum2,sum3;
        a[0]=n/1000;
        a[1]=n%1000/100;
        a[2]=n%100/10;
        a[3]=n%10;
        sort(a,a+4,cmp);
        sum1=a[0]*1000+a[1]*100+a[2]*10+a[3];
        cout <<a[0]<<a[1]<<a[2]<<a[3]<<" - ";
        sort(a,a+4);
        sum2=a[0]*1000+a[1]*100+a[2]*10+a[3];
        cout <<a[0]<<a[1]<<a[2]<<a[3]<<" = ";
        sum3=sum1-sum2;
        int x,y,z,t;
        x=sum3/1000;
        y=sum3%1000/100;
        z=sum3%100/10;
        t=sum3%10;
        cout<<x<<y<<z<<t<<endl;
        if(sum3==0||sum3==6174)break;
        n=sum3;
    }
}
```# 10
```cpp

10


1021

#include <bits/stdc++.h>
using namespace std;
int hash_[100]={0};
int main(){
    string str;cin>>str;
    for(int i=0;i<str.length();i++)hash_[str[i]-'0']++;
    for(int i=0;i<=9;i++)if(hash_[i])cout <<i<<":"<<hash_[i]<<endl;
    return 0;
}

10


1023

#include <bits/stdc++.h>
using namespace std;
int hash_[100]={0};
int main(){
    for(int i=0;i<10;i++)cin>>hash_[i];
    for(int i=1;i<=9;i++)
        if(hash_[i]){
            cout<<i;
            hash_[i]--;
            break;
        }
    for(int i=0;i<=9;i++)
        if(hash_[i]){
            for(int j=0;j<hash_[i];j++)cout<<i;
        }
    cout<<endl;
    return 0;
}

1031

#include <bits/stdc++.h>
using namespace std;
int flag=1;
string check="10X98765432";
int poo[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
string s[200]={""};
int pos=0;
void slove(){
    int sum=0;
    string str;
    cin>>str;
    for(int i=0;i<17;i++){
        sum+=poo[i]*(str[i]-'0');
        if(str[i]<'0'||str[i]>'9'){
            flag=0;
            s[pos++]=str;
            return ;
        }
    }
    if(check[sum%11]!=str[17]){
        s[pos++]=str;
        flag=0;
    }
}
int main(){
    int t;
    cin>>t;
    while(t--)slove();
    if(flag)cout <<"All passed"<<endl;
    else{
        for(int i=0;i<pos;i++){
            cout <<s[i];
            if(i!=pos-1)cout<<endl;
        }
    }
}

1032

#include<bits/stdc++.h>
using namespace std;
int a[100100]={0};
int main(){
    int t;
    cin>>t;
    for(int i=0;i<t;i++){
        int n,m;
        cin>>n>>m;
        a[n]+=m;
    }
    int max=-1,pos=1;
    for(int i=1;i<100100;i++){
        if(max<a[i]){
            pos=i;
            max=a[i];
        }
    }
    cout <<pos <<" "<<max<<endl;
    return 0;
}

1081

注意会有输入空行的情况出现。

#include <bits/stdc++.h>
using namespace std;
void slove(){
    int flag1=0,flag2=0;
    string str;
    getline(cin,str);
    if(str.length()<6){
        cout <<"Your password is tai duan le."<<endl;
        return ;
    }
    for(int i=0;i<str.length();i++){
        if(str[i]>='0'&&str[i]<='9'){
            flag1=1;
        }
        else if(str[i]>='a'&&str[i]<='z'){
            flag2=1;
        }
        else if(str[i]>='A'&&str[i]<='Z'){
            flag2=1;
        }
        else if(str[i]=='.'){
            
        }
        else{
            cout <<"Your password is tai luan le."<<endl;
            return ;
        }
    }
    if(flag1==0){
        cout << "Your password needs shu zi."<<endl;
        return ;
    }
    if(flag2==0){
        cout <<"Your password needs zi mu."<<endl;
        return ;
    }
    if(flag1&&flag2){
        cout <<"Your password is wan mei."<<endl;
    }
}
int main(){
    int t;
    cin>>t;getchar();
    while(t--)slove();
    return 0;
}

1082

#include <bits/stdc++.h>
using namespace std;
struct rec{
    string id;
    double x,y,ans;
}edge[100100];
int cmp(rec a,rec b){return a.ans<b.ans;}
int main(){
    int n;cin>>n;
    for(int i=0;i<n;i++){
        cin>>edge[i].id>>edge[i].x>>edge[i].y;
        edge[i].ans=sqrt(edge[i].x*edge[i].x + edge[i].y*edge[i].y);
    }
    sort(edge,edge+n,cmp);
    cout <<edge[0].id<<" "<<edge[n-1].id;
    return 0;
}

1083

#include <bits/stdc++.h>
using namespace std;
int hash_[100100]={0};
int main(){
    int n,temp;cin>>n;
    for(int i=1;i<=n;i++){
        cin>>temp;
        if(temp>=i)hash_[temp-i]++;
        else hash_[i-temp]++;
    }
    for(int i=100010;i>=0;i--)
        if(hash_[i]>1)cout <<i<<" "<<hash_[i]<<endl;
    return 0;
}

1091

#include <bits/stdc++.h>
using namespace std;
int main(){
    long long a;
    int n;
    cin>>n;
    while(n--){
        cin>>a;
        int sum=0;
        long long temp=a;
        while(temp){
            sum++;
            temp/=10;
        }
        int poww=1;
        for(int i=0;i<sum;i++){
            poww*=10;
        }
        int flag=1;
        for(int i=0;i<10;i++){
            if((i*a*a)%poww==a){
                cout <<i<<" "<<i*a*a<<endl;
                flag=0;
                break;
            }
        }
        if(flag)cout <<"No"<<endl;
    }
    return 0;
}

1992

#include <bits/stdc++.h>
using namespace std;
long long sum[1010]={0};
int main(){
    int n,m,max1=0,max2=0;
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
            int temp;
            cin>>temp;
            sum[j]+=temp;
            if(sum[j]>max1)max1=sum[j];
        }
    }
    cout <<max1<<endl;
    for(int i=1;i<=n;i++){
        if(max2<sum[i])max2=sum[i];
    }
    int flag=1;
    for(int i=1;i<=n;i++){
        if(sum[i]==max2){
            if(!flag)cout <<" ";
            cout << i;
            flag=0;
        }
    }
    cout <<endl;
    return 0;
}

1093

#include <bits/stdc++.h>
using namespace std;
int check[100100]={0};
int main(){
    string a,b;
    getline(cin,a);
    getline(cin,b);
    for(int i=0;i<a.length();i++){
        if(!check[a[i]]){
            check[a[i]]=1;
            cout <<a[i];
        }
    }
    for(int i=0;i<b.length();i++){
        if(!check[b[i]]){
            check[b[i]]=1;
            cout <<b[i];
        }
    }
    cout <<endl;
}

1094

#include <bits/stdc++.h>
using namespace std;
bool isprimer(int n){
    if(n<2)return false;
    for(int i=2;i<n/i;i++){
        if(n%i==0)return false;
    }
    return true;
}
int main(){
    int n,m;
    string str,s;
    cin>>n>>m>>str;
	for(int i=0;i<=n-m;i++){
		s=str.substr(i,m);
		int temp=stoi(s);
		if(isprimer(temp)){
			cout<<s;
			return 0;
		}
	}
	cout<<"404";
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值