首页 > 其他分享 >AtCoder ABC 263 D 题解

AtCoder ABC 263 D 题解

时间:2024-02-09 19:11:40浏览次数:29  
标签:pre AtCoder min 传送门 题解 263 ldots

AtCoder ABC 263 D 题解

前言

本蒟蒻的第一篇题解,大佬勿喷 QwQ


传送门们

洛谷传送门

AtCoder 传送门


正文

设有 \(x\) 使得 \(x\leq k\) 时,令 \(f(k)\) 为对 \(A'\) 进行运算后 \(A'=(A_1,A_2,\ldots,A_k)\) 的最小和。

同理,对于 \(y\) 使得 \(y\leq k\) 时,令 \(g(k)\) 为对 \(A''\) 进行运算后 \(A''=(A_{N-k+1},\ldots,A_N)\) 的最小和。

如果我们能求出 \(f(0),f(1),\ldots,f(N),g(0),g(1),\ldots,g(N)\),那么答案就是 \(\min(f(i)+g(N-i))\)。

我们设 \(f(0)=0\)。要想求得 \(f(k+1)\),我们需要先求得 \(f(k)\)。这取决于是否有 \(x<k+1\)。

分类讨论

  • 如果 \(x<k+1\),则最小和为 \(f(k)+A_{k+1}\)。

  • 如果 \(x=k+1\),则最小和为 \(L(k+1)\)。

因此,我们可以求得 \(f(k+1)=\min(f(k)+A_{k+1},L(k+1))\)。

同理可求得 \(g(k)\),时间复杂度 \(\mathrm{O}(N)\)。


AC Code

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n, l, r;
    cin >> n >> l >> r;
    long long pre = 0, ans = 1LL * r * n;
    for(int i = 1, a; i <= n; ++i) {
        cin >> a;
        pre = min(pre + a, 1LL * i * l);
        ans = min(ans, pre + 1LL * (n - i) * r);
    }
    cout << ans;
    return 0;
}

标签:pre,AtCoder,min,传送门,题解,263,ldots
From: https://www.cnblogs.com/TigerTanWQY/p/18012594

相关文章

  • 新年欢乐赛题解
    cyh巨佬举办的比赛。比赛页面赛后补题官方题解赛时没时间写题,赛后补一下。T1:默认排名第一,对于每次输入,若输入的成绩更优,则将排名降低。这里更劣的成绩没用,因为默认初始排名第一。T2:At上的一道原题。考虑DP求解。\(dp_{i,0/1}\)分别表示到第\(i\)张翻和不翻的总......
  • P9170 [省选联考 2023] 填数游戏 题解
    Description众所周知,Alice和Bob是一对好朋友。今天,他们约好一起玩游戏。一开始,他们各自有一张空白的纸条。接下来,他们会在纸条上依次写\(n\)个\([1,m]\)范围内的正整数。等Alice写完,Bob在看到Alice写的纸条之后开始写他的纸条。Alice需要保证她写下的第\(i\)个......
  • P9478 [NOI2023] 方格染色题解
    题解对于行操作,列操作和对角线操作,实际上仅仅只是在对若干个矩形求面积并而已,这是裸的扫描线题,套用模板即可,此时注意到对角线操作实际上是\(O(n)\)量级的矩阵面积并,因此复杂度是\(O(n\logq+q\logq)\)的量级,只能获得95pts。显然,面积并具有交换性,我们先做\(O(q\logq)\)......
  • uoj839 龙门题字 题解
    题目链接点击打开链接题目解法呜呜呜,我考场上只会\(60\),不会优化,没救了要求字典序最大,不难想到一位一位钦定,那么我们现在的问题是判断\(ans_1,...,ans_i\)是否合法,记\(ok_{i,j}\)表示第\(i\)个修改在第\(j\)位是否可行(即\(x_{i,j}\geans_j\)),同时记\(cnt_i\)为第......
  • 2024大试牛刀5题解
    鼠鼠我鸭没学过前缀和的自己去补一下,这里不过多赘述(其实是我不想写)以第二组数据为例:类型0100体重2565先计算出不使用魔法时鸭鸭的重量,当作基础值\(ori=5\)。然后来看看对一段区间使用魔法会造成什么效果:类型0100体重2565变化a+2-5......
  • ABC338G题解
    也许是一个简单一点的做法?假如我们要求一个表达式的值,我们求的顺序显然是,按照加号划分为若干段,段内只有数字和乘号,计算出段内结果后全部加起来。称一个只有数字和乘号的表达式是基本表达式,我们将每个表达式的贡献拆分为若干个基本表达式之和,那么我们就可以枚举每个基本表达式,算......
  • CF516D Drazil and Morning Exercise 题解
    Description给定一棵\(n\)个点的树,边有边权。定义\(f_x=\max_{i=1}^n\text{dist}(x,i)\)。\(q\)次询问最大的满足\(\max_{x\ins}f_x-\min_{x\ins}f_x\lel\)的连通块\(s\)包含的点数。\(n\le10^5\),\(q\le50\)。Solution这里\(f_u\)显然可以用换......
  • CF1771F Hossam and Range Minimum Query 题解
    题目链接:CF或者洛谷比较不错的题,出现奇数次出现的这种问题,比较容易想到一种运算,那就是异或和运算。如果一个区间上一个数出现偶数次,则它对于异或和的贡献为\(0\),那么很显然,我们维护下区间异或和即可判断一个区间上是否存在出现奇数次的数。然后我们注意到\(1\oplus2\oplu......
  • CF1861E Non-Intersecting Subpermutations 题解
    简要题意一个长度为\(n\)的元素在\([1,k]\)的整数序列\(a\)的价值定义如下。初始\(i=1\),如果\(a_{i\simi+k-1}\)包含了\(1\simk\)的所有整数,则价值加\(1\),然后令\(i=i+k\)。如果没有包含\(1\simk\)的所有整数则\(i=i+1\),直到\(i\geqn-k+2\)时结束。......
  • CF1863F Divide, XOR, and Conquer 题解
    简要题意你有两个指针\(l,r\)初始时\(l=1,r=n\)。你可以操作若干次知道\(l=r\)。每次操作你可以选择一个整数\(k\in[l,r)\),记\(x=\bigoplus_{i=l}^ka_i,y=\bigoplus_{i=k+1}^ra_i\)。如果\(x\leqy\),你可以令\(l=k+1\)。如果\(x\geqy\),你可以令\(r=k\)。......