首页 > 编程语言 >2024牛客寒假算法基础集训营3

2024牛客寒假算法基础集训营3

时间:2024-02-08 15:47:10浏览次数:31  
标签:std 10 int MAX cin 2024 牛客 using 集训营

2024牛客寒假算法基础集训营3

A.智乃与瞩目狸猫、幸运水母、月宫龙虾

思路:就是一个简单的字符串

#include <bits/stdc++.h>

using namespace std;

void solve(){
    string a,b;
    cin>>a>>b;
    if(a[0]==b[0]||a[0]-'A'+'a'==b[0]||b[0]-'A'+'a'==a[0]){
        cout<<"Yes\n";
        return;
    }
    cout<<"No\n";
}
int main()
{
    int t;
    cin>>t;
    while(t--){
        solve();
    }
}

B. 智乃的数字手串

思路:我是直接猜的结论

#include <bits/stdc++.h>

using namespace std;

void solve()
{
    int n;
    cin>>n;
    vector<int> a(n);
    int num1=0,num2=0;
    for(int i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2==0) a[i]=0,num1++;
        else a[i]=1,num2++;//奇数为1,偶数为0
    }
    if(abs(num1-num2)%2==1){
        cout<<"qcjj\n";
    }
    else{
        cout<<"zn\n";
    }
}

int main()
{
    int t;
    cin>>t;
    while(t--){
        solve();
    }
}

D. chino's bubble sort and maximum subarray sum(easy version)

思路:就是字串之和的最大化,我想了超级久,然后发现写不出来,,然后写了B之后直接回来一看范围得出结论:我是sb、、、直接暴力的题想那么多,甚至WA了一发,只想怎么写了,忘了计算k

#include <bits/stdc++.h>

using namespace std;
const int MAX=1e3+10;
#define int long long
int a[MAX];

signed main()
{
    int n,k;
    cin>>n>>k;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    int m=0,ma=a[0];
    for(int i=0;i<n;i++){
        m+=a[i];
        ma=max(ma,m);
        if(m<0){
            m=0;
        }
    }
    for(int j=1;j<n;j++){
        m=0;
        if(j>1) swap(a[j-2],a[j-1]);
        swap(a[j-1],a[j]);
        /*for(int i=0;i<n;i++){
            cout<<a[i]<<" ";
        }
        cout<<endl;
         */
        for(int i=0;i<n;i++){
            m+=a[i];
            ma=max(ma,m);
            if(m<0){
                m=0;
            }
        }
    }
    cout<<ma<<endl;
}

G.智乃的比较函数(easy version)

思路:题上有一个很明显的东西:不矛盾就是YES,为什么WA:0是带=,忘记了a[x]=a[y]的情况

#include <bits/stdc++.h>

using namespace std;

void solve()
{
    int n;
    cin>>n;
    if(n==1){
        int x,y,z;
        cin>>x>>y>>z;
        if(x==y&&z==1){
            cout<<"No\n";
            return;
        }
    }else{
        int a,b,c,x,y,z;
        cin>>a>>b>>c;
        cin>>x>>y>>z;
        
        if(c==0&&z==0){
            cout<<"Yes\n";
            return;
        }
        
        //自身矛盾
        if(x==y&&z==1){
            cout<<"No\n";
            return;
        }if(a==b&&c==1){
            cout<<"No\n";
            return;
        }
        if(x==y||a==b){
            cout<<"Yes\n";
            return;
        }
        //完全一样
        if(x==a&&y==b&&z!=c){
            cout<<"No\n";
            return;
        }
        
        //相反
        if(x!=y&&x==b&&y==a&&z==c){
            cout<<"No\n";
            return;
        }
    }
    cout<<"Yes\n";
}

signed main()
{
    int t;
    cin>>t;
    while(t--){
        solve();
    }
}

H.智乃的比较函数(normal version)

思路:还是一样只要不矛盾就是yes,而且这个x只有123,那么我们可以诶个给xyz赋值,最多就27种情况,只要其中有不矛盾的我们就可以直接输出yes

#include <bits/stdc++.h>

using namespace std;
int v[53][3];
int n;
int a[5];

bool check(){
    for(int i=0;i<n;i++){
        if(v[i][2]==1){
            if(a[v[i][0]]<a[v[i][1]]) continue;
            else return false;
        }else{
            if(a[v[i][1]]<=a[v[i][0]]) continue;
            else return false;
        }
    }
    return true;
}

void solve()
{
    
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>v[i][0]>>v[i][1]>>v[i][2];
    }
    bool res=false;
    for(int i=1;i<=3;i++){
        for(int j=1;j<=3;j++){
            for(int k=1;k<=3;k++){
                a[1]=i; a[2]=j; a[3]=k;
                res=check();
                if(res){
                    cout<<"Yes\n";
                    return;
                }
            }
        }
    }
    cout<<"No\n";
}

int main()
{
    int t;
    cin>>t;
    while(t--){
        solve();
    }
}

L.智乃的36倍数(easy version)

思路:简单版甚至是1-10,n=1000,n方就行

#include <bits/stdc++.h>

using namespace std;
const int MAX=1100;
char a[MAX];

int main(){
    int n;
    cin>>n;
    if(n==1){
        cout<<"0\n";
        return 0;
    }
    int sum=0;
    for(int i=0;i<n;i++){
        cin>>a[i];
        for(int j=0;j<i;j++){
            long long int x=(a[j]-'0')*10+(a[i]-'0');
            if(x%36==0){
                sum++;
            }
        }
    }for(int i=n-1;i>=0;i--){
        for(int j=n-1;j>i;j--){
            long long int x=(a[j]-'0')*10+(a[i]-'0');
            if(x%36==0){
                sum++;
            }
        }
    }
    cout<<sum<<endl;
}

M. 智乃的36倍数(normal version)

$$
(a+b):mod:n=a:mod:n+b:mod:n
$$

思路:要么就是用上述公式或者找36的性质,在这里我找的是36的性质:36=4*9,如何整除9?所有位数之和是9的倍数;如何整除4? 后两位是4的倍数

#include <bits/stdc++.h>

using namespace std;
#define int long long
const int MAX=1e5+10;
int a[MAX],p[MAX];//a纯数字,p能否被9除
int cnt[10][11];//前者记录总数mod9的余数,后数记录最后个位数(当b是个位数的时候,只有当这两位数是4的倍数的时候才可以被4整除)

int mod9(int x){
    int res=0;
    while(x){
        res+=x%10;
        x/=10;
    }
    res%=9;
    return res;
}

signed main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        p[i]=mod9(a[i]);
        cnt[p[i]][a[i]%10]++;
    }
    int ans=0;
    for(int i=1;i<=n;i++){
        cnt[p[i]][a[i]%10]--;
        if(a[i]/10>0){
            if(a[i]%100%4==0){
                for(int j=0;j<=9;j++){
                    ans+=cnt[(9-p[i])%9][j];
                }
            }//可被100除,就不用考虑各位
        }
        else{
            for(int j=0;j<=9;j++){
                if((j*10+a[i])%4==0){//保证能被4整除
                    ans+=cnt[(9-p[i])%9][j];
                }
            }
        }
        cnt[p[i]][a[i]%10]++;
    }
    cout<<ans<<endl;
}

标签:std,10,int,MAX,cin,2024,牛客,using,集训营
From: https://www.cnblogs.com/bbbbear/p/18011868

相关文章

  • 牛客寒假集训营 第三场
    这场做了6题,没有做全场,做了个半场吧,还算可以,最后一题磨了很久。A.智乃与瞩目狸猫、幸运水母、月宫龙虾思路分析:是个语法题,单独拿首字母出来全部化成大写然后再判断就可以了。code:点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defi......
  • BeginCTF 2024(自由赛道)CRYPTO
    PAD某同学在学习RSA得时候,觉得仅仅靠着比特位得RSA是不安全的,于是参考了部分资料后,灵光乍现Author:lingfengDifficult:easytask.pyimportrandom,mathfromCrypto.Util.numberimport*fromflagimportflagflag=flag[:64]assertlen(flag)==64classRSA():......
  • 阿里云参编业内首个代码大模型标准丨云原生 2024 年 1 月产品技术动态
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......
  • WC2024
    最简单的一届WC。P10143[WC2024]代码堵塞难度:1拆贡献,考虑\(i\)选\(0\)还是\(1\):如果\(i\)选\(0\),那么它前面选\(0\)的加上它不超过\(T\)。如果\(i\)选\(1\),那么它后面选\(0\)的加上它和它前面的所有数不超过\(T\)。随便背包可以做到\(\mathcal{O}(nT......
  • WC2024 游记
    WC2024游记Day0&Day1见参考资料[1]。Day2今天是,上午题目选讲,下午讲量子计算。上午的东西不怎么感兴趣,摆摆摆。下午的东西感觉是有点意思的,听听听。可是有点不符合预期啊,前半部分讲了一堆没什么意义的科普,后半部分讲的量子算法又掉线了。那没办法了,摆摆摆。还是不能......
  • CTS 2024 游记
    前情提要CTT2024游记-Qiuly-洛谷博客(luogu.com.cn)。CTT2024总榜rk27。标准分总分29.89404899。距离rk67.2152226分,rk411.02257773分。想要至少翻进个答辩。1.25早上的高铁,第一次看到这么多一中oier一起出行。高铁去贵州绕了一圈,把时长顶到了6h。......
  • 2024/2/7学习进度笔记
    为什么要用非线性函数要解释这个问题,可以反过来思考一下,为什么激活函数不能使用线性函数。如果使用线性函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。加深神经网络的层数就没有什么意义了。线性函数的问题在于不管加深层数到多少,总是存在......
  • 2024 年 13 大趋势:人工智能预测
    您是否知道, 到2025年,全球人工智能市场预计将达到惊人的1906.1亿美元,年复合增长率高达36.62%?人工智能软件正在迅速改变我们的世界,而且这种趋势在未来几年只会加速。让我们通过准备在2024年彻底改变的13个人工智能趋势指南,深入探讨人工智能的未来。从生成式人工智能的兴起......
  • WC/CTS 2024 游记
    我从小就热爱音乐,接下来省略800字,所以长大后成为了一名交响乐团的副指挥.一次机缘巧合的机会之下,我们乐团有幸参与一场新型话剧的配乐工作.接下来,观众落座,首先是领导开场讲话,表示对于这种新型艺术形式的支持,这些陈词滥调,观众鼓掌什么的我们就略过好了.灯光变......
  • THUPC2024-初赛
    哈哈,被干爆了。拖了cdqz哥后腿。题目使用协议来自THUPC2024(2024年清华大学学生程序设计竞赛暨高校邀请赛)初赛。以下『本仓库』皆指THUPC2024初赛官方仓库任何单位或个人都可以免费使用或转载本仓库的题目;任何单位或个人在使用本仓库题目时,应做到无偿、公开,严禁使用这......