Stay Hungry,Stay Foolish!

C - Socks 2

C - Socks 2

https://atcoder.jp/contests/abc334/tasks/abc334_c

 

思路

前后缀方法:

https://zhuanlan.zhihu.com/p/673837822

其中给出了证明:

1. 对于成对的袜子参不参与凑对匹配,不影响总的色差

2. 对于不成对的袜子, 采用相邻匹配的方法,可以使得色差最小。

 

基于此实时给出动态规划方法:

 

 

 

Code

https://atcoder.jp/contests/abc334/submissions/48933373

复制代码
#include <bits/stdc++.h>
using namespace std;
long long dp[400005][2];
int main(){
    int n,k;
    cin>>n>>k;
    vector<long long>v;
    v.push_back(0);
    for(int i=0;i<k;i++){
        long long a;
        cin>>a;
        v.push_back(a);
    }

    for(int i=2;i<v.size();i++){
//      cout<<dp[i][0]<<" "<<dp[i][1]<<' ';
        if (i % 2 == 0){
            dp[i][0] = dp[i-2][0]+v[i]-v[i-1];
        }else {
            dp[i][1] = min(dp[i-1][0], dp[i-2][1]+v[i]-v[i-1]);
        }
 //      cout<<dp[i][0]<<" "<<dp[i][1]<<endl;
    }

    cout<<dp[v.size()-1][k%2]<<endl;
}
复制代码

 

posted @   lightsong  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2020-12-30 Multiclass and multioutput overview of sklearn
2020-12-30 multilabel of sklearn
千山鸟飞绝,万径人踪灭
点击右上角即可分享
微信分享提示