2021年度训练联盟热身训练赛第二场

本文档包含三段代码:A部分使用C++实现输入整数并输出其最接近的2的幂;B部分用C++实现字符串处理,将字符串映射到另一个字符串并输出;C部分使用Python检查回文数并找到满足条件的数字。涉及到的主要概念包括位运算、字符串处理和回文判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A:

#include<iostream>

#include<math.h>

using namespace std;

int main() {

    int n;

    cin>>n;

    while(n--) {

        int x;

        cin>>x;

        cout<<"Input value: "<<x<<endl;

        int i=0;

        while(pow(2,i)<x)

            i++;

        cout<<pow(2,i)<<endl;

        cout<<endl;

    }

    return 0;

}

B:

#include<iostream>

#include<string>

#include<map>

#include<set>

#include<vector>

using namespace std;

int main() {

    int n;

    cin >> n;

    map<string, string> m;

    set<string> s;

    while (n--) {

        string s1, s2;

        cin >> s1;

        s.insert(s1);

        getchar();

        getline(cin,s2);

        s2.erase(s2.length(),1);

        m[s1] = s2;

    }

    cin >> n;

    n++;

    int t;

    t=n-1;

    while (n--) {

        string ss, a;

        getline(cin, ss);

        vector<string> v;

        int j = 0;

        for (int i = 0; i < ss.length(); i++) {

            if (ss[i] == ' ') {

                v.push_back(ss.substr(j, i - j));

                j = i + 1;

            }

        }

        v.push_back(ss.substr(j, ss.length() - j ));

        for (int i = 0; i < v.size(); i++) {

            if (s.find(v[i]) != s.end()) {

                cout << m[v[i]];

            }

            else {

                cout << v[i];

            }

            if (i != v.size() - 1) {

                cout << " ";

            }

            else {

                if (n!=t)

                cout << endl;

            }

        }

    }

    return 0;

}

C(python):

import math

def isHuiWen(s):

    le = len(s)

    for i in range(int(le/2+1)):

        if s[i] != s[le-i-1]:

            return False

    return True

cnt = int(input())

fe = 0

for i in range(cnt):

    n = int(input())

    fe = math.ceil(n*0.2)

    while not isHuiWen(str(n+fe)):

        fe += 1

    print("Input cost: "+str(n))

    print(fe, n+fe)

    print()

D:

#include<iostream>

#include<string>

#include<vector>

#include<algorithm>

#include<map>

using namespace std;

struct team{

    string dm;

    int jq=0;

    int dq=0;

    int jf=0;

    int jsq=0;

    int w=0,l=0,d=0;

};

bool cmp(team &a,team &b) {

    if(a.jf!=b.jf) return a.jf>b.jf;

    if(a.jsq!=b.jsq) return a.jsq>b.jsq;

    if(a.jq!=b.jq) return a.jq>b.jq;

    else return a.dm<b.dm;

}

int main() {

    int n;

    cin>>n;

    int c=0;

    while(n--) {

        c++;

        string ss;

        getline(cin,ss);

        int t,g;

        cin>>t>>g;

        map<string,int> mp;

        vector<team> v(t);

        for(int j=0;j<t;j++) {

            string ss;

            cin>>ss;

            mp[ss]=j;

            v[j].dm=ss;

        }

        for(int j=0;j<g;j++) {

            int zj=0,kj=0;

            string zd,kd;

            cin>>zd>>zj>>kd>>kj;

            v[mp[zd]].jq+=zj;

            v[mp[zd]].dq+=kj;

            v[mp[kd]].jq+=kj;

            v[mp[kd]].dq+=zj;

            v[mp[zd]].jsq=v[mp[zd]].jq-v[mp[zd]].dq;

            v[mp[kd]].jsq=v[mp[kd]].jq-v[mp[kd]].dq;

            if(zj>kj){

                v[mp[zd]].jf+=3;

                v[mp[zd]].w+=1;

                v[mp[kd]].l+=1;

            }

            else if(zj<kj) {

                v[mp[kd]].jf+=3;

                v[mp[zd]].l+=1;

                v[mp[kd]].w+=1;

            }

            else {

                v[mp[zd]].jf+=1;

                v[mp[kd]].jf+=1;

                v[mp[zd]].d+=1;

                v[mp[kd]].d+=1;

            }

        }

        sort(v.begin(),v.end(),cmp);

        cout<<"Group "<<c<<":"<<endl;

        for(int i=0;i<v.size();i++) {

            cout<<v[i].dm<<" "<<v[i].jf<<" "<<v[i].w<<" "<<v[i].l<<" "<<v[i].d<<" "<<v[i].jq<<" "<<v[i].dq<<endl;

        }

        cout<<endl;

    }

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值