NOIP2007守望者的逃離(普及組T3)————動態規劃,貪心
題解:本題主要考查動態規劃,貪心。分析題意知:閃現一般比跑快。所以一開始用閃現,用max比較,可得答案。注意(要更新值,更新值,更新值!)
程式碼如下:
#include<iostream> #include<algorithm> using namespace std; int m,s,times,i,j; int dp[300001]; int main() { cin>>m>>s>>times; for(i=1;i<=times;i++) { if(m>=10) { m=m-10;dp[i]=dp[i-1]+60; } else {m=m+4;dp[i]=dp[i-1];} } for(j=1;j<=times;j++) { dp[j]=max(dp[j],dp[j-1]+17); if(dp[j]>=s){cout<<"Yes"<<endl<<j;return 0;} } cout<<"No"<<endl<<dp[times]; return 0; }
相關推薦
NOIP2007守望者的逃離(普及組T3)————動態規劃,貪心
題解:本題主要考查動態規劃,貪心。分析題意知:閃現一般比跑快。所以一開始用閃現,用max比較,可得答案。注意(要更新值,更新值,更新值!) 程式碼如下: #include<iostream> #include<algorithm> using namespace
NOIp2012擺花(普及組T3)————動態規劃
題解:本題主要考查動態規劃。方程式dp[i][j]=dp[i-1][j-k]+dp[i][j],f[i][j]指擺第i個花後總共擺了j盆的方案數,第i種花由i-1種決定,k表示這種花擺多少要列舉,j−k表示沒有用這k盆花裝飾時的方案數。 程式碼如下: #include<iostre
NOIp2008傳球遊戲(普及組T3)————動態規劃
題解:本題主要考查動態規劃。因為球只能左右傳,所以i同學只能來自於的左邊一個同學(i-1)和右邊一個同學(i+1)。傳j次球的方案數就是j-1次傳到左邊和右邊的方案數之和。 f[i][k]=f[i-1][k-1]+f[i+1][k-1],(i=1或n時,需單獨處理)。 程式碼如下: #i
NOIP2004合唱隊列(提高組T3)————單調佇列,動態規劃(最長上升序列,最長下降序列)
題解:本題主要考查單調佇列,動態規劃(最長上升序列,最長下降序列)。這個序列是一箇中間高,兩頭底的序列,先解決從T1到Ti這一段單調遞增的序列,再解決Ti到TK這一段單調遞減的序列(注意數值的更新)。 程式碼如下: #include<iostream> #include<
洛谷 P1982 小朋友的數字(NOIp2013普及組T3)
文件 ret vijos 觀察 個數 color 符號 朋友 麻煩 題目描述 有 n 個小朋友排成一列。每個小朋友手上都有一個數字,這個數字可正可負。規定每個小朋友的特征值等於排在他前面(包括他本人)的小朋友中連續若幹個(最少有一個)小朋友手上的數字之和的最大值。 作為這些
NOIP2008排座位(普及組T2)————貪心,排序
題解:本題主要考查貪心,排序。先記錄行列的分隔數,再排序將需要裝入桶中(重點,因為要輸出的不只是最大值的序號)。 程式碼如下: #include<iostream> #include<algorithm> using namespace std; int m,n,
NOIP2010接水問題(普及組T2)————模擬,佇列
題解:本題主要考查模擬,佇列,因為順序已經擺好了,所以關鍵在於節水結束時的替換,將下個的量賦給已結束的,就可以啦。 程式碼如下: #include <iostream> using namespace std; int s[11000],num,t,n,m; int
NOIP2007統計數字(提高組T1)————STL
題解:本題資料較大,一些排序演算法不可行。因此用sort便是很好的方法。 程式碼如下: #include<iostream> #include<algorithm> using namespace std; int a[222222]
NOIP2001數的計算(普及組T1)————數學,遞迴,遞推
題解:本題可尋找規律,a(i)(偶數)=a(i-1)+a(i/2),a(i)(奇數)=a(i-1) 程式碼如下: #include<iostream> using namespace std; int a[100000]={0,1}; int m
面試題14:剪繩子(動態規劃,貪心演算法)
一、題目: 一根長度為n的繩子,剪成m段,m,n都大於1,且都為整數,每段長度記為k[0],k[1]…,k[m].求k[0]*k[1]…*k[m]可能的最大乘積 1.1解法: 兩種不同的方法解決這個問題,先用常規的需要O(n²)時間和O(n)空間的動態規劃,接著用只需要O(1)的
n個數分為m堆有多少種分法(青島理工邀請賽)動態規劃
有n個相同的數,把它分為m堆,有多少種分法。 樣例:7 3 輸出:4 注:(1,1,5)(1,5,1) (5,1,1)是一種分法。 //算是看了網上很多的演算法,這裡只是做一個解釋 //網上關於這個的演算法很多,我看了很多之後,自己按照某一種的思路自己打了一
01揹包的四種解法詳解:動態規劃,貪心法,回溯法,優先佇列式分支限界法(C語言編寫)
最近剛完成了演算法課程設計,題目是用多種解法解決01揹包問題,經過一番探索,終於成功的用四種方法完成了本次實驗,下面記錄分享一下成果: 首先解釋下什麼是01揹包問題:給定一組共n個物品,每種物品都有自己的重量wi, i=1~n和價值vi, i=1~n,在限定的總重量(揹包的
(轉)動態規劃和貪心演算法的區別
動態規劃和貪心演算法的區別動態規劃和貪心演算法都是一種遞推演算法 均有區域性最優解來推導全域性最優解 不同點: 貪心演算法: 1.貪心演算法中,作出的每步貪心決策都無法改變,因為貪心策略是由上一步的最優解推導下一步的最優解,而上一部之前的最優解則不作保留。 2.由(1)中的介紹,可以知道貪心法正確的條件是:每
(NYoj 61) 傳紙條(1) 動態規劃,雙向dp
傳紙條(一) 時間限制:2000 ms | 記憶體限制:65535 KB 難度:5 描述 小淵和小軒是好朋友也是同班同學,他們在一起總有談不完的話題。一次素質拓展活動中,班上同學安排做成一個m行n列的矩陣,而小淵和小軒被安排在矩陣對角線的兩端,因此,
python常用演算法(7)——動態規劃,回溯法
引言:從斐波那契數列看動態規劃 斐波那契數列:Fn = Fn-1 + Fn-2 ( n = 1,2 fib(1) = fib(2) = 1) 練習:使用遞迴和非遞迴的方法來求解斐波那契數列的第 n 項 程式碼如下: # _*_coding:utf
[洛谷P1095]NOIP2007 普及組T3 守望者的逃離
如何 能夠 這樣的 程序 clu 任務 在一起 麻煩 iostream 問題描述 惡魔獵手尤迪安野心勃勃,他背叛了暗夜精靈,率領深藏在海底的娜迦族企圖叛變。守望者在與尤迪安的交鋒中遭遇了圍殺,被困在一個荒蕪的大島上。為了殺死守望者,尤迪安開始對這個荒島施咒,這座島很快就會沈
Luogu 5017 NOIP2018普及組T3 擺渡車 (斜率優化 + 必要的轉移進行剪枝)
題意: 有 n 名同學要乘坐擺渡車從人大附中前往人民大學,第 i 位同學在第 ti 分鐘去 等車。只有一輛擺渡車在工作,但擺渡車容量可以視為無限大。擺渡車從人大附中出發、 把車上的同學送到人民大學、再回到人大附中(去接其他同學),這樣往返一趟
題解:子矩陣(NOIP2014普及組T4)
+= out bsp tdi 又是 style 預處理 sizeof 表示 又是dp 暴力枚舉會T 考慮先固定一個變量,比如先枚舉行 然後預處理每行之間的絕對值,每列之間的絕對值 然後dp進行轉移 註意記錄選擇的行數 轉移記得加上新選的列的行之間的絕對值,即w[
[OI]Noip 2018(普及組)總結
應該 str ora clu ios 老師 失誤 play max 考砸了,還有原諒我代碼十分有限的可讀性。 從一年前初一九月到現在18年10月接觸OI已經有一年了。幾次模擬賽也自我感覺良好,都過了一等的線,自己考試的心態當時也放的挺平。但也沒想到會考出這麽差的分數。
NOIp2004花生採摘(普及組)————搜尋,模擬
題解:本題主要考查搜尋,模擬,要審題別把題目複雜化。關鍵在於算時間,與前一個的座標差再加採摘時間這就是時間。 程式碼如下: #include<bits/stdc++.h> using namespace std; int m,n,i,j,gg=1,t,lo,sum; stru