Skip to content
Logic Formatting

Logic Formatting

C1. Pokémon Army (easy version) 解析(DP)

Posted on 2025 年 1 月 11 日 By jeff

Codeforce 1420 C1. Pokémon Army (easy version) 解析(DP)

今天我們來看看CF1420C1
題目連結

題目
對於一個數列$a$,選若干個數字,求alternating-series的最大值。

前言

C2真的想不到

想法

$dp[i][0]$代表:考慮到第i個數字為止,最後一個數字是負的的最大值
$dp[i][1]$代表:考慮到第i個數字為止,最後一個數字是正的的最大值
$dp[i][0]=max{dp[i-1][0],dp[i-1][1]-a[i]}$
$dp[i][1]=max{dp[i-1][1],dp[i-1][0]+a[i],a[i]}$
記得令$dp[0][0]$為極小值,且答案要開$long\ long$
答案是$max{dp[n-1][0],dp[n-1][1])}$

程式碼:

const int _n=3e5+10;  
int t,n,q,a[_n],l,r,dp[_n][2];  
main(void) {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);  
  cin>>t;while(t--){  
    cin>>n>>q;rep(i,0,n)cin>>a[i];ll ans=0;  
    rep(i,0,n)dp[i][0]=dp[i][1]=0;  
    dp[0][0]=-1e5,dp[0][1]=a[0];  
    rep(i,1,n){  
      dp[i][0]=max(dp[i-1][0],dp[i-1][1]-a[i]);  
      dp[i][1]=max(dp[i-1][1],max(dp[i-1][0]+a[i],a[i]));  
    }cout<<max(dp[n-1][0],dp[n-1][1])<<'\n';  
  }  
  return 0;  
}  

標頭、模板請點Submission看
Submission

ojcode codeforceDPojcode

文章導覽

Previous post
Next post

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

近期文章

  • B. Kyoya and Permutation 解析(思維、數論、DP)
  • G. Guess One Character 解析(思維)
  • E. The Road to Berland is Paved With Good Intentions 解析(思維、2-SAT、SCC、拓樸排序)
  • E. Xor-sequences 解析(思維、矩陣快速冪)
  • LeetCode. First Missing Positive 解析(思維)

近期留言

尚無留言可供顯示。

彙整

  • 2025 年 2 月
  • 2025 年 1 月

分類

  • ojcode
©2026 Logic Formatting | WordPress Theme by SuperbThemes