每日一题0316

三道简单贪心

小紫的劣势博弈

题目链接:
B-小紫的劣势博弈_牛客周赛 Round 85
思路:

都很聪明,先给数组排个序。那么就从最小的开始依次小红加,小紫减。得到答案。
代码:

cpp 复制代码
const int N=1e5+5;
int a[N];
void solve()
{
    int n;
    cin>>n;
    int x=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+1+n);
    int t=1;
    for(int i=1;i<=n;i++){
        x+=t*a[i];
        t*=-1;
    }
    cout<<x;
}

U535982 C-小梦的AB交换

题目链接:
U535982 C-小梦的AB交换 - 洛谷
思路:

两种对比以 A 开头和以 B 开头的取最小值。
代码:

cpp 复制代码
const int N=1e5+5;
int a[N];
void solve()
{
    int n;
    cin>>n;
    string s;
    cin>>s;
    int ans=0;
    int cntA=0,cntB=0;
    for(int i=0;i<2*n;i++){
        if(i%2==0)
        {
            if(s[i]=='B')cntA++;
        }else{
            if(s[i]=='A')cntB++;
        }
    }
    ans=abs(cntA-cntB)+min(cntA,cntB);
    cntA=0,cntB=0;
    for(int i=0;i<2*n;i++){
        if(i%2==0)
        {
            if(s[i]=='A')cntA++;
        }else{
            if(s[i]=='B')cntB++;
        }
    }
    int m=abs(cntA-cntB)+min(cntA,cntB);;
    ans=min(ans,m);
    cout<<ans<<endl;
}

小苯的Z串匹配

题目链接:
C-小苯的Z串匹配_牛客周赛 Round 87
思路:

按要求操作,需要修改时直接改成 1 或-1,遇到 Z 只有异号或等于 0 才需要改。
代码:

cpp 复制代码
void solve()
{
    int n;
    cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    string s;
    cin>>s;
    int cnt=0;
    for(int i=0;i<n;i++){
        if(s[i]=='<'&&a[i]>=0)
        {
            a[i]=-1;
            cnt++;
        }
        else if(s[i]=='>'&&a[i]<=0)
        {
            a[i]=1;
            cnt++;
        }
        else if(s[i]=='Z'&&a[i-1]*a[i]<=0){
            cnt++;
            a[i]=a[i-1];
        }
    }
    cout<<cnt<<endl;
}
相关推荐
致Great2 小时前
Pi 的上下文压缩,到底是怎么工作的?
算法
watersink3 小时前
机器学习聚类算法
算法·机器学习·聚类
luj_17684 小时前
桥牌思维启示:系统设计的模块化架构
c语言·开发语言·c++·经验分享·算法
饼饼学习空间智能6 小时前
家庭服务机器人训练数据怎么积累?仿真、真实采集与持续学习的技术路线分析
人工智能·算法·机器学习
蛋先生DX7 小时前
你瘦不下来但大模型可以:量化原理了解一下
深度学习·算法·llm
牛阿大8 小时前
LQR算法
算法
(╹◡╹)9 小时前
18.剪枝
算法·机器学习·剪枝
Fa_Mian_Tuan10 小时前
图论基础|邻接矩阵超详细讲解(含无向/有向/带权图+完整可运行C语言代码)
c语言·数据结构·笔记·算法·图论
hanhahai10 小时前
指针与函数(函数指针与指针函数)
算法