首页 > 其他分享 >AGC004B Colorful Slimes

AGC004B Colorful Slimes

时间:2023-10-17 22:13:03浏览次数:44  
标签:Colorful AGC004B int Slimes 最小值 2005 dp

$ {\scr \color {Orchid}{\text{生于尘埃,溺于人海,死于理想高台。}}} $

题目链接:Colorful Slimes

$ {\scr \color {Cyan}{\text{Solution}}} $

分析

思路:挺神奇的$dp$

一个比较显然的结论:最小值的方案中第$2$种操作最多用$n-1$次

证明大概就是一个数用$n-1$次一定会变成另一个数

下面说说$dp$的思路:

$dp[i][j]$表示能用最多$j$次第$2$种操作能变成$a_i$的最小值

假设$a_k$所有可以用最多$j$次第$2$种操作能变成$i$的最小值,则$dp[i][j]=a_k$

举个栗子:

3 1 4 

对于这个$4$来说,用最多$2$次操作能变成坐标为$3$的数最小值,就是$1$

 

如果能理解定义了,那我们接着往下看:

$dp$递推其实并不难,取个$min$比较就行

统计答案怎么做?

我们可以枚举用了几次$2$的操作,后直接相加$dp[1...n][j]$即可

这也是为什么定义方程是“用了j次及以下”的关键qwqq

Code:

//From:201929
#include<bits/stdc++.h>
#define L long long
using namespace std;
L a[2005],dp[2005][2005];
int main()
{
    int n;
    L x;
    scanf("%d%lld",&n,&x);
    for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
    for(int i=1;i<=n;i++)
    {
        dp[i][0]=a[i];
        for(int j=1;j<n;j++)
        {
            int k=i-j;
            if(k<=0) k+=n;
            dp[i][j]=min(dp[i][j-1],a[k]);
        }
    }
    L minn=1e18+5;
    for(int i=0;i<n;i++)
    {
        L summ=x*i;
        for(int j=1;j<=n;j++) summ+=dp[j][i];
        minn=min(minn,summ);
    }
    printf("%lld",minn);
    return 0;
}

 

标签:Colorful,AGC004B,int,Slimes,最小值,2005,dp
From: https://www.cnblogs.com/201929-whx/p/17770780.html

相关文章

  • [CF1178 F2] Long Colorful Strip
    F2-LongColorfulStrip很牛的题!首先,我们可以将颜色相同的一段区间缩成一个点,那么每次加入一个新的颜色时,最多只能将其所覆盖的那个颜色所属的区间分成三部分(原本:00000000,加入1后\(\rightarrow\)0001111000),也就是增加了两个点,那么也就意味着最终所成的点的个数最多只有\(2*n......
  • CF506D Mr. Kitayuta's Colorful Graph
    好久没更新这个单题系列了,主要是最近没啥CF比赛空闲时间又少,今天忙里偷闲写了两个题这个题就比较典了,两点是否连通一般都是想到并查集维护,现在的问题是要对每种颜色的边把贡献算清楚很容易想到枚举所有颜色的边,每次求出所有连通分量后遍历一遍询问统计答案,这样正确性显然但复杂......
  • 题解 CF1787G【Colorful Tree Again】
    problem贼眉鼠眼有一棵\(N\)个节点的树,这棵树很特殊,每条边都有边权和颜色。果宝特攻会不定时来进攻贼眉鼠眼。具体地,在前\(Q\)个时刻,在每个时刻,会发生以下两个事件之一:果宝特攻摧毁了树上的一个节点\(u\)。贼眉鼠眼修复了树上的一个节点\(u\)。定义一条简单路径......
  • P9572 Colorful Days♪
    思路Step0.骗分显然,题目中的\(c_1,c_2\)就是为了送分,如果比赛中没有思路,倒是可以直接输出两个\(0\)先得到\(2\)分,聊胜于无。Step1.暴力不出奇迹显然第一个想到的是暴力,枚举\(k\),容易观察得出,若一次增加\(k\)而LCS不变,则再增加\(k\)也无用。可凭借这个结论暴力验......
  • [刷题笔记] [【LGR-155-Div.3】T4] Luogu P9572 「NnOI R2-T4」Colorful Days♪
    ProblemDescription有两个数组\(A,B\),我们可以将\(A\)数组无限次重复拼接。求最少需要多少次拼接使得拼接后的\(A,B\)的最长公共子序列最大。Analysis我们要学会从题目中找到一些信息,比如说本题的数据范围:对于\(100\%\)的数据,保证\(1\leqn,m,S_i,T_i\le10^6\),\(......
  • P9572 Colorful Days♪ 题解
    原题链接题目大意:有两个数组\(S\),\(T\),你可以把\(S\)进行复制并接到其后面形成\(S^k\),如\(S\)=123,则\(S^2\)=123123,\(S^3\)=123123123。让你求出\(S^k\)与\(T\)的最长公共子序列以及在最长公共子序列最长时\(k\)的最小值。首先思考如果无视\(k\)最小的要求,最......
  • AT_apc001_g Colorful Doors 题解
    模拟赛做到的题,场上写贪心爆栈了qwq首先在首尾加上两个\(1\)表示进出,将两段路中间的间隔作为传送门,恰好有\(2\timesN\)个传送门,根据两段路的经过情况给传送门分类别:00:用\(N\)表示,称为无用点,不到达该点。10:用\(S\)表示,称为起点,需要通过向右走走到一次。01:用\(T\)......
  • AtCoder Grand Contest 012 D Colorful Balls
    洛谷传送门AtCoder传送门不错的题。bxEnder32k。我们发现交换有传递性,那么我们能交换就连边,答案是\(\prod\frac{(sz)!}{\prodc_i!}\),其中\(sz\)为连通块大小,\(c_i\)为这个连通块中第\(i\)种颜色出现次数。于是我们得到了一个\(O(n^2)\)的做法。发现很多遍是无用的......
  • NC200179 Colorful Tree
    题目链接题目题目描述Atreestructurewithsomecolorsassociatedwithitsverticesandasequenceofcommandsonitaregiven.Acommandiseitheranupdateoperationoraqueryonthetree.Eachoftheupdateoperationschangesthecolorofaspecifiedvert......
  • 1699D - Colorful Stamp
    题目链接:https://codeforces.com/problemset/problem/1669/D题意:有n个初始为白色的方格组成一个方格串,即WWWWW;你可以无限次的为2个相邻的方格涂上颜色BR或RB,涂色可以覆盖。输入t串涂色了的方格串,求每个方格串是否能仅用RB和BR涂色得出。思路:因为你无法将有颜色的格子(R,B)涂成白......