哈尔滨华德学院天梯赛选拔赛【完结】

104 阅读4分钟

善良的xmy

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    cout<<"xmy zui shan liang.";
    return 0;
}

wenju丢失身份证

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    int a,b,c,aa,bb,cc;
    scanf("%d:%d:%d - %d:%d:%d",&a,&b,&c,&aa,&bb,&cc);
    cout<<-1*(a*3600+b*60+c-aa*3600-bb*60-cc)<<endl;
    return 0;
}

温巨在装萌新

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    string s; cin>>s;
    int temp=s.find("1134728508");
    if(temp==0&&s[10]==':') puts("Yes");
    else puts("No");
    return 0;
}

白神遥的忧伤

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    int t; cin>>t;
    while(t--)
    {
        long long int n,m; cin>>n>>m;
        if(n==5&&m==8) cout<<35<<'\n';
        else if(n==8&&m==5) cout<<35<<'\n';
        else cout<<n*m<<endl;
    }
    return 0;
}

负债的东爱璃Lovely

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
long long int a[N],n,m;
int main(void)
{
    cin>>n>>m;
    for(int i=0;i<n;i++) 
    {
        cin>>a[i];
        if(a[i]) m-=12;
    }
    cout<<max(0ll,m*2);
    return 0;
}

清楚姐姐机器人化

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    int n; cin>>n;
    int cnt1=0,cnt2=0;
    while(n--)
    {
        string s; cin>>s;
        int temp=s.find("2881933495");
        if(temp==0&&s[10]==':')
        {
            if(s.find("competition")!=-1) cnt1++;
            else cnt2++;
        }
    }
    cout<<cnt1-cnt2;
    return 0;
}

在考研的卷王

#include<bits/stdc++.h>
using namespace std;
const int N=550;
int a[N],n,x;
int main(void)
{
    cin>>n;
    for(int i=0;i<n;i++) scanf("%d",&x),a[x]++;
    for(int i=0;i<=500;i++)
        if(a[i]) printf("%d %d\n",i,a[i]);
    return 0;
}

想不到出什么的xmy,出了个极简版本机器人

#include<bits/stdc++.h>
using namespace std;
map<string,string>mp;
int n,m;
int main(void)
{
    cin>>n>>m;
    while(n--)
    {
        string a,b; cin>>a>>b;
        mp[a]=b,mp[b]=a;
    }
    while(m--)
    {
        string a; cin>>a;
        if(mp.count(a)) cout<<mp[a]<<'\n';
        else puts("jlstxdy");
    }
    return 0;
}

质数筛

#include<bits/stdc++.h>
using namespace std;
int n,k;
int main(void)
{
    cin>>n>>k;
    while(k--)
    {
        int x; cin>>x;
        int flag=1;
        if(x==1) flag=0;
        for(int i=2;i<=sqrt(x);i++)
            if(x%i==0) flag=0;
        if(flag&&x<=n) puts("yes");
        else puts("no");
    }
    return 0;
}

质数筛II

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
vector<LL>ve,ans;
LL n;
void init()
{
    for(int i=2;i<=1e5*2;i++)
    {
        int flag=1;
        for(int j=2;j<=sqrt(i);j++)
            if(i%j==0) flag=0;
        if(flag) ve.push_back(i);
    }
    for(int i=0;i<ve.size();i++)
         ans.push_back(ve[i]*ve[i]);
    int flag=0;

    sort(ans.begin(),ans.end());
    for(int i=0;i<ans.size();i++)
        if(ans[i]<=n) 
            cout<<ans[i]<<'\n',flag=1;

    if(!flag) cout<<-1;
}
int main(void)
{
    cin>>n;
    init();
    return 0;
}

小雪买巧克力

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
int main(void)
{
    int n; cin>>n;
    int ans=0,p1=0,p2=0,p3=0;
    for(int i=0;i<=1000;i++)
    {
        LL sum=i*28;
        if(sum>n) break; 
        for(int j=0;j<=1000;j++)
        {
            LL sum=i*28+j*25;
            if(sum>n) break;
            for(int z=0;z<=1000;z++)
            {
                LL sum=i*28+j*25+z*20;
                if(sum>n) break;
                LL temp1=i*70+j*50+z*30;
                if(temp1>ans) ans=temp1,p1=i,p2=j,p3=z;
            }
        }
    }
    printf("85%%:%d\n",p1);
    printf("75%%:%d\n",p2);
    printf("65%%:%d\n",p3);
    return 0;
}

阶乘之前缀和

#include<bits/stdc++.h>
using namespace std;
const int N=20;
const int M=1e4+10;
typedef long long int LL;
LL f[N],a[M],n,m;
vector<int> add(vector<int> A,LL b)
{
    vector<int>B;
    string ss=to_string(b);
    for(int i=ss.size()-1;i>=0;i--) B.push_back(ss[i]-'0');
    vector<int>C;
    int t=0;
    for(int i=0;i<A.size()||i<B.size();i++)
    {
        if(i<A.size()) t+=A[i];
        if(i<B.size()) t+=B[i];
        C.push_back(t%10);
        t=t/10;
    }
    if(t) C.push_back(1);
    return C;
}
int main(void)
{
    cin>>n>>m;
    f[0]=1;
    for(int i=1;i<=15;i++) f[i]=f[i-1]*i;
    for(int i=1;i<=n;i++) cin>>a[i];
    vector<int>ans; ans.push_back(0);
    while(m--)
    {
        int l,r; cin>>l>>r;
        for(int i=l;i<=r;i++)  ans=add(ans,f[a[i]]);
    }
    for(int i=ans.size()-1;i>=0;i--) cout<<ans[i];
    return 0;
}

高精度小数求和

#include<bits/stdc++.h>
using namespace std;
vector<int>A,B,C,D,ans;
int flag=0;
vector<int> add(vector<int> A,vector<int> B)
{
    vector<int>C;
    int t=0;
    for(int i=0;i<A.size()||i<B.size();i++)
    {
        if(i<A.size()) t+=A[i];
        if(i<B.size()) t+=B[i];
        C.push_back(t%10);
        t=t/10;
    }
    if(t) C.push_back(1);
    return C;
}
vector<int> add1(vector<int> A,vector<int> B)
{
    vector<int>C;
    int t=0;
    for(int i=0;i<A.size()||i<B.size();i++)
    {
        if(i<A.size()) t+=A[i];
        if(i<B.size()) t+=B[i];
        C.push_back(t%10);
        t=t/10;
    }
    reverse(C.begin(),C.end());
    while(C.size()>1&&C.back()==0) C.pop_back();
    reverse(C.begin(),C.end());
    if(t) flag=1;
    return C;
}
int main(void)
{
    string a,b; cin>>a>>b;
    int p1=a.find('.');
    int p2=b.find('.');
    while( (a.size()-p1)<(b.size()-p2) ) a=a+"0";
    while( (a.size()-p1)>(b.size()-p2)) b=b+"0";
    
    for(int i=p1-1;i>=0;i--) A.push_back(a[i]-'0');
    for(int i=p2-1;i>=0;i--) B.push_back(b[i]-'0');
    
    for(int i=a.size()-1;i>p1;i--) C.push_back(a[i]-'0');
    for(int i=b.size()-1;i>p2;i--) D.push_back(b[i]-'0');
    
    vector<int>ans1;
    ans1=add1(C,D);
    
    ans.push_back(0);
    ans=add(A,B);
    if(flag)
    {
        vector<int>ve; ve.push_back(1);
        ans=add(ans,ve);
    }
    for(int i=ans.size()-1;i>=0;i--) cout<<ans[i];
    cout<<'.';
    for(int i=ans1.size()-1;i>=0;i--) cout<<ans1[i];
    return 0;
}