【今日三题】经此一役小红所向无敌(模拟) / 连续子数组最大和(动态规划) / 非对称之美(贪心)

⭐️个人主页:@小羊 ⭐️所属专栏:每日两三题 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

目录


经此一役小红所向无敌(模拟)

简单枚举会超时,可以根据题意做一下最大优化,先求出对立和光的血量最多能接收多少次对方的攻击,在判断剩下的最后一次攻击。

cpp 复制代码
#include <iostream>
using namespace std;

using ll = long long;

int main()
{
    ll a, h, b, k;
    cin >> a >> h >> b >> k;
    ll res = 0;
    int cnt = min(h / b, k / a);
    res += (a + b) * cnt;
    h -= cnt * b;
    k -= cnt * a;
    if (h > 0 && k > 0)
    {
        res += a + b;
        // 这次减完后必然至少有一方死亡
        h -= b;
        k -= a;
    }
    if (h > 0 || k > 0)
        res += 10 * (h > 0 ? a : b);
    cout << res << endl;
    return 0;
}

连续子数组最大和(动态规划)

经典线性dp问题。

cpp 复制代码
#include <iostream>
using namespace std;

const int N = 2e5 + 10;
int dp[N];
int res = -0x3f3f3f3f;

int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) 
    {
        int x; cin >> x;
        dp[i] = max(dp[i - 1], 0) + x;
        res = max(res, dp[i]);
    }
    cout << res << endl;
    return 0;
}

非对称之美(贪心)

  • 如果字符串是回文串,并且不是由同一个字符组成,则最长非回文串就是把原回文串左右任意删去一个字符;
  • 如果是回文串且所有字符相同,则答案为0;
  • 如果本身不是回文串,则返回原字符串长度。
cpp 复制代码
#include <iostream>
using namespace std;

int main()
{
    string s;
    cin >> s;
    int n = s.size();
    int l = 0, r = n - 1;
    while (s[l] == s[r]) l++, r--;
    if (l >= r) // 是回文串
    {
        // 判断所有字符是否都相同
        int flag = 1;
        for (auto ch : s)
        {
            if (s[0] != ch)
            {
                flag = 0;
                break;
            }
        }
        if (flag) cout << 0 << endl;
        else cout << n - 1 << endl;
    }
    else cout << n << endl;
    return 0;
}

本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

相关推荐
理想奋斗中1 小时前
【LeetCode Hot100 | 每日刷题】二叉树的层序遍历
算法·leetcode·bfs
JCBP_2 小时前
C++(1)
开发语言·c++·算法
数据与人工智能律师2 小时前
互联网法院在NFT、元宇宙等新兴领域的规则创新
大数据·网络·人工智能·算法·区块链
知识漫步2 小时前
代码随想录算法训练营第60期第二十八天打卡
算法
chao_7893 小时前
手撕算法(1)
算法
zhangxueyi3 小时前
Java实现堆排序算法
java·数据结构·算法
C灿灿数模3 小时前
2025五一杯数学建模A题:支路车流量推测问题,思路分析+模型代码
大数据·人工智能·算法
Non importa4 小时前
【初阶数据结构】树——二叉树——堆(中)
java·c语言·数据结构·学习·算法
代码程序猿RIP4 小时前
【C语言干货】野指针
c语言·开发语言·数据结构·c++·算法
jz_ddk5 小时前
[学习]RTKLib详解:rtkcmn.c与rtkpos.c
c语言·学习·算法