每日一题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;
}
相关推荐
tellmewhoisi14 分钟前
机器学习:聚类算法
算法·机器学习·聚类
yi01142 分钟前
LeetCode 134 加油站:从 双循环暴力 演变到 贪心
linux·算法·leetcode
sogw-三叶草️1 小时前
LeetCode 989. 数组形式的整数加法
数据结构·算法
维克兜率天1 小时前
【维克】均值回归:跌多了会涨,涨多了会跌
开发语言·笔记·python·算法·均值算法·回归·量化
yi0112 小时前
DAY 14: LeetCode 394. 字符串解码|递归和栈到底怎么处理嵌套?
数据结构·笔记·python·算法·leetcode
P.D.Wei2 小时前
[Leetcode 1614] 括号的最大嵌套深度
算法·leetcode·职场和发展
红姐跨境书2 小时前
AI 的底层逻辑:从数据、算法到智能的本质
人工智能·算法
繁华的地方不一定留下你的脚印2 小时前
C++ 算法与 ranges:用 find_if、transform 写清数据处理意图
开发语言·c++·算法
青山是哪个青山2 小时前
LeetCode 64:最小路径和
算法
blxr_3 小时前
力扣hot100寻找重复数https://leetcode.cn/problems/find-the-duplicate-number/
算法·leetcode·职场和发展