第三届传智杯B组决赛C/C++

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、T172096 课程

#include<iostream>
using namespace std;
int n,m,num[22];
int main(){
        cin>>n>>m;
        for(int i=1,t;i<=n+m;i++){
                cin>>t;
                num[t]++;
        }
        int dn=0;
        for(int x=1;x<=20;x++)if(num[x]==2)dn+=1;
        cout<<dn<<endl;
        return 0;
}

二、T172097 序列

#include<iostream>
using namespace std;
int n,k;
int a[1005];
int main(){
        cin>>n>>k;
    for(int i=1;i<=n;i++)cin>>a[i];
        int sum=0;
        for(int i=1;i<=n;i++)
                for(int j=i+1;j<=n;j++){
                        long long x=1;
                        x*=a[i];
                        x*=a[j];
                        if(x<=k)sum+=1;
                }
        cout<<sum<<endl;
        return 0;
}

三、T172098 子串

#include<iostream>
using namespace std;
int T,n,m;
string a,b;
int main(){
        cin>>T;
        while(1){
                cin>>n>>m>>a>>b;
                for(int i=0;i<n;i++)if(a[i]>='a'&&a[i]<='z')a[i]=a[i]-'a'+'A';
                for(int i=0;i<m;i++)if(b[i]>='a'&&b[i]<='z')b[i]=b[i]-'a'+'A';
                int dn=0;
                for(int i=0;i<=m-n;i++){
                        int now=1;
                        for(int j=0;j<n;j++)if(a[j]!=b[j+i])now=0;
                        dn+=now;
                }
                cout<<dn<<endl;
                T--;
                if(T==0)break;
        }
        return 0;
}

四、T172099 打牌

#include<iostream>
using namespace std;
int n,m;
int have[5][55];
int used[5];

int game(){
        int player=0,stop=0,num=0,id=0;
        while(1){
                int cando=0;
                int i,j;
                for(i=1;i<=n;i++)if(i>=num){
                        for(j=1;j<=m;j++)if((have[player][j]>=i)&&((i==num&&j>id)||i>num)){
                                cando=1;
                                break;
                        }
                        if(cando)break;
                }
                if(cando==0){
                        stop+=1;
                        if(stop==2){
                                num=0;
                                id=0;
                                stop=0;
                        }
                }else{
                        stop=0;
                        have[player][j]-=i;
                        used[player]+=i;
                        if(used[player]==n){
                                return player+1;
                        }
                        num=i;id=j;
                }
                player=(player+1)%3;
        }
}
int main(){
        cin>>n>>m;
        for(int i=0;i<3;i++)
                for(int j=1,t;j<=n;j++){
                        cin>>t;
                        have[i][t]+=1;
                }
        cout<<game()<<endl;
        return 0;
}

五、T172100 商店

#include<iostream>
#include<algorithm>
using namespace std;
int a[100009],b[100009];
int n,m;
int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++)cin>>a[i];
        for(int i=1;i<=m;i++)cin>>b[i];
        sort(a+1,a+n+1);sort(b+1,b+m+1);

        int dn=0;

        int i=1,j=1;

        while(i<=n&&j<=m){
                while(i<=n&&a[i]<b[j]){
                        i+=1;
                }
                if(i<=n){
                        dn+=1;
                        j+=1;
                        i+=1;
                }
        }
        cout<<dn<<endl;
        return 0;
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第六届传智杯B初赛是传智播客举办的一次IT技术竞赛的初赛阶段,旨在选拔出各高校优秀的程序设计人才。该比赛中,参赛者将面临多道编程题目,通过编写程序解决问题来展示他们的技术水平和创新能力。 在初赛中,参赛者需要在规定的时间内完成多道程序设计题目。这些题目可能涉及数据结构、算法、网络通信等方面的知识,要求参赛者具备扎实的编程基础和解决实际问题的能力。 参赛者需要在规定的时间内完成编程题目,并提交给评委进行评分。评委会根据答案的正确性、效率、代码的可读性等方面对参赛者的作品进行综合评判。最终,得分高的参赛者将进入下一轮比赛。 第六届传智杯B初赛的目的是为了选拔出具备优秀编程能力的学生,为他们提供一个展示才华、学习交流的平台。参赛者不仅可以通过比赛锻炼自己的编程技巧,还可以结识其他优秀的参赛者,相互学习、切磋技艺。 在比赛过程中,参赛者还可以通过与其他选手交流,了解各种不同的编程思路和解题方法,不断提高自己的编程水平。同时,参赛者还有机会与业界的专家学者进行交流,了解最新的技术动态和发展趋势。 总之,第六届传智杯B初赛是一次很有意义的编程竞赛,为各大高校的IT人才选拔提供了一次难得的机会。通过比赛,参赛者可以展现自己的才华,提升技术水平,同时也可以与其他优秀选手进行交流,共同进步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值