【codevs2497】 Acting Cute

這個題個人認為是我目前所做的最難的區間dp了,以前把環變成鏈的方法在這個題上并不能使用,因為那樣可能存在重復計算

我第一遍想的時候就是直接把環變成鏈了,wa了5個點,然后仔細思考一下就發現了問題

比如這個樣例

5 4

1 2 4 1 1

這個樣例變成鏈以后就是這樣

1 2 4 1 1 1 2 4 1 1

在這個鏈上,很明顯,取[2,3]和[7,8]是最優方案,答案是8,但是很容易可以算出,這個樣例真正答案是7,2+4+1。

因此這個方法是不可行的,我在查閱了網上唯一的題解發現,這個問題可以灰常巧妙的用初始賦值來解決,我們可以進行兩遍遞推,第一遍認為第一個點不可以被加進答案,第二遍認為第二個點可以被加進答案

第一遍非常好理解,是基于不考慮時間成環的,第二個有點難想,假如第一個點能選,則說明至少在原序列終點及以前以前有個點是賣萌開始的起始點

那么我們處理的時候,會認為在原序列上,從真實的起始點一直到最后原序列終點被選了

比如這個樣例

5 3

5 1 1 1 3

1 0 0 1 1 0為未選擇,1為選擇

答案是8,第二遍遞推會認為1-1,4-5這兩個區間合起來是答案,就是這樣來保證正確性的。

#include<iostream>
#include<cstdio>
using namespace std;
int n,m,dp[2][3610][2],qwq[7210],ans,t;
inline void init()
{for(int j=0;j<=m;j++)dp[0][j][0]=dp[0][j][1]=dp[1][j][0]=dp[1][j][1]=-1e9;
}
void dp1()
{t=0;for(int i=2;i<=n;i++){t=1-t;for(int j=0;j<=m;j++){dp[t][j][0]=max(dp[1-t][j][0],dp[1-t][j][1]);if(j>0)dp[t][j][1]=max(dp[1-t][j-1][0],dp[1-t][j-1][1]+qwq[i]);}}
}
int main()
{scanf("%d%d",&n,&m);if(m<=1)//特判一下,如果賣萌時間就給了1或0,答案一定為0 
    {printf("0");return 0;}for(int i=1;i<=n;i++)scanf("%d",&qwq[i]);init();//預處理,需要用滾動數組優化時間 dp[0][1][1]=dp[0][0][0]=0;//當沒有從最后一個位置開始的時候,第一個時段答案肯定為0 
    dp1();ans=max(dp[t][m][0],dp[t][m][1]);//在最后時段取與不取之間找個最大值 
    init();dp[0][1][0]=dp[0][1][1]=qwq[1];//當從最后一個時段開始的時候 dp1();//進行兩遍遞推 ans=max(ans,dp[t][m][1]);printf("%d",ans);
}

?

轉載于:https://www.cnblogs.com/Loi-dfkdsmbd/articles/7717383.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391017.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391017.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391017.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

漸進式web應用程序_漸進式Web應用程序與加速的移動頁面:有什么區別,哪種最適合您?

漸進式web應用程序Do you understand what PWAs and AMPs are, and which might be better for you? Lets have a look and find out.您了解什么是PWA和AMP&#xff0c;哪一種可能更適合您&#xff1f; 讓我們看看并找出答案。 So many people own smartphones these days. T…

高光譜圖像分類_高光譜圖像分析-分類

高光譜圖像分類初學者指南 (Beginner’s Guide) This article provides detailed implementation of different classification algorithms on Hyperspectral Images(HSI).本文提供了在高光譜圖像(HSI)上不同分類算法的詳細實現。 目錄 (Table of Contents) Introduction to H…

在Java里如何給一個日期增加一天

在Java里如何給一個日期增加一天 我正在使用如下格式的日期: yyyy-mm-dd. 我怎么樣可以給一個日期增加一天&#xff1f; 回答一 這樣應該可以解決問題 String dt "2008-01-01"; // Start date SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd&q…

CentOS 7安裝和部署Docker

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 https://blog.csdn.net/u010046908/article/details/79553227 Docker 要求 CentOS 系統的內核版本高于 3.10 &#xff0c;查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。通過 uname …

JavaScript字符串方法終極指南-拆分

The split() method separates an original string into an array of substrings, based on a separator string that you pass as input. The original string is not altered by split().split()方法根據您作為輸入傳遞的separator字符串&#xff0c;將原始字符串分成子字符串…

機器人的動力學和動力學聯系_通過機器學習了解幸福動力學(第2部分)

機器人的動力學和動力學聯系Happiness is something we all aspire to, yet its key factors are still unclear.幸福是我們所有人都渴望的東西&#xff0c;但其關鍵因素仍不清楚。 Some would argue that wealth is the most important condition as it determines one’s li…

在Java里怎將字節數轉換為我們可以讀懂的格式?

問題&#xff1a;在Java里怎將字節數轉換為我們可以讀懂的格式&#xff1f; 在Java里怎將字節數轉換為我們可以讀懂的格式 像1024應該變成"1 Kb"&#xff0c;而1024*1024應該變成"1 Mb". 我很討厭為每個項目都寫一個工具方法。在Apache Commons有沒有這…

ubuntu 16.04 安裝mysql

2019獨角獸企業重金招聘Python工程師標準>>> 1) 安裝 sudo apt-get install mysql-server apt-get isntall mysql-client apt-get install libmysqlclient-dev 2) 驗證 sudo netstat -tap | grep mysql 如果有 就代表已經安裝成功。 3&#xff09;開啟遠程訪問 1、 …

shell:多個文件按行合并

paste file1 file2 file3 > file4 file1內容為&#xff1a; 1 2 3 file2內容為&#xff1a; a b c file3內容為&#xff1a; read write add file4內容為&#xff1a; 1 a read 2 b write 3 c add 轉載于:https://www.cnblogs.com/seaBiscuit0922/p/7728444.html

form子句語法錯誤_用示例語法解釋SQL的子句

form子句語法錯誤HAVING gives the DBA or SQL-using programmer a way to filter the data aggregated by the GROUP BY clause so that the user gets a limited set of records to view.HAVING為DBA或使用SQL的程序員提供了一種過濾由GROUP BY子句聚合的數據的方法&#xff…

leetcode 1310. 子數組異或查詢(位運算)

有一個正整數數組 arr&#xff0c;現給你一個對應的查詢數組 queries&#xff0c;其中 queries[i] [Li, Ri]。 對于每個查詢 i&#xff0c;請你計算從 Li 到 Ri 的 XOR 值&#xff08;即 arr[Li] xor arr[Li1] xor … xor arr[Ri]&#xff09;作為本次查詢的結果。 并返回一…

大樣品隨機雙盲測試_訓練和測試樣品生成

大樣品隨機雙盲測試This post aims to explore a step-by-step approach to create a K-Nearest Neighbors Algorithm without the help of any third-party library. In practice, this Algorithm should be useful enough for us to classify our data whenever we have alre…

vue組件命名指南,不為取名而糾結

前言 自古中國取名文化博大進深,往往取一個好的名字而絞盡腦汁.那么一個好名字能夠帶來什么呢? 名字的內涵必需和使用者固有的本性相配套不和名人重名、不易重名、創意新穎&#xff0c;真正體現通過名字以區分人的作用響亮上口讀起來流暢好聽&#xff0c;協音美好&#xff0c;…

JavaScript 基礎,登錄驗證

<script></script>的三種用法&#xff1a;放在<body>中放在<head>中放在外部JS文件中三種輸出數據的方式&#xff1a;使用 document.write() 方法將內容寫到 HTML 文檔中。使用 window.alert() 彈出警告框。使用 innerHTML 寫入到 HTML 元素。使用 &qu…

使用final類的作用是什么?

問題&#xff1a;使用final類的作用是什么&#xff1f; 我在看一本關于Java的書&#xff0c;它里面說你可以定義一個類為final。我搞不明白有什么地方會被用到這樣。 我是一個編程萌新。我想知道程序員在他們的程序里面都是怎么用fianl類的。如果知道他們是什么時候使用的話&…

photoshop cc_如何使用Photoshop CC將圖片變成卡通

photoshop ccA fun photo effect is to make a photo look like a cartoon. In this tutorial you will learn how to use Photoshop CC to make a photo look like a cartoon drawing.有趣的照片效果是使照片看起來像卡通漫畫。 在本教程中&#xff0c;您將學習如何使用Photos…

從數據角度探索在新加坡的非法毒品

All things are poisons, for there is nothing without poisonous qualities. It is only the dose which makes a thing poison.” ― Paracelsus萬物都是毒藥&#xff0c;因為沒有毒藥就沒有什么。 只是使事物中毒的劑量。” ― 寄生蟲 執行摘要(又名TL&#xff1b; DR) (Ex…

Android 自定義View實現QQ運動積分抽獎轉盤

因為偶爾關注QQ運動&#xff0c; 看到QQ運動的積分抽獎界面比較有意思&#xff0c;所以就嘗試用自定義View實現了下&#xff0c;原本想通過開發者選項查看下界面的一些信息&#xff0c;后來發現積分抽獎界面是在WebView中展示的&#xff0c;應該是在H5頁面中用js代碼實現的&…

瑞立視:厚積薄發且具有“工匠精神”的中國品牌

一家成立兩年的公司&#xff1a;是如何在VR行業趨于穩定的情況下首次融資就獲得如此大額的金額呢&#xff1f; 2017年VR行業內宣布融資的公司寥寥無幾&#xff0c;無論是投資人還是消費者對這個 “寵兒”都開始紛紛投以懷疑的目光。但就在2017年7月27日&#xff0c;深圳市一家…

蘋果系統使用svg 動畫_為什么要使用SVG圖像:如何為SVG設置動畫并使其快速閃電化

蘋果系統使用svg 動畫我們為什么要使用SVG&#xff1f; (Why Are We Using SVG?) The web development sector is growing at a rapid pace, and SVG (scalable vector graphics) images are becoming more popular. As vector images, SVGs are composed of mathematical equ…