Codeforces 408D Long Path (DP)

題目:

One day, little Vasya found himself in a maze consisting of?(n?+?1)?rooms, numbered from?1?to?(n?+?1). Initially, Vasya is at the first room and to get out of the maze, he needs to get to the?(n?+?1)-th one.

The maze is organized as follows. Each room of the maze has two one-way portals. Let's consider room number?i?(1?≤?i?≤?n), someone can use the first portal to move from it to room number?(i?+?1), also someone can use the second portal to move from it to room number?pi, where?1?≤?pi?≤?i.

In order not to get lost, Vasya decided to act as follows.

  • Each time Vasya enters some room, he paints a cross on its ceiling. Initially, Vasya paints a cross at the ceiling of room?1.
  • Let's assume that Vasya is in room?i?and has already painted a cross on its ceiling. Then, if the ceiling now contains an odd number of crosses, Vasya uses the second portal (it leads to room?pi), otherwise Vasya uses the first portal.

Help Vasya determine the number of times he needs to use portals to get to room?(n?+?1)?in the end.

?

Input

The first line contains integer?n?(1?≤?n?≤?103)?— the number of rooms. The second line contains?n?integers?pi?(1?≤?pi?≤?i). Each?pi?denotes the number of the room, that someone can reach, if he will use the second portal in the?i-th room.

?

Output

Print a single number — the number of portal moves the boy needs to go out of the maze. As the number can be rather large, print it modulo?1000000007?(109?+?7).

?

Examples
input
2
1 2
output
4
input
4
1 1 2 3
output
20
input
5
1 1 1 1 1
output
62

題意:
如果當前到達點i的進入次數cnt為奇數 則可以到達p[i]位置 如果是偶數 可以到達i+1位置 求從1走到n+1需要的總步數

思路:
第一次走進i房間的進入次數cnt為1 是奇數 會往后退回p[i]位置 但是此刻p[i]位置的cnt也變成了奇數 因為當時只有為偶數才能向前走 那么會退回到p[p[i]]位置 不斷遞歸
因此 dp[i]記為走到當前位置需要的總步數 狀態轉移方程為dp[i+1]=dp[i]+1+(dp[i]-dp[p[i]])+1 即為dp[i+1]=2*dp[i]-dp[p[i]]+2

代碼:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const int maxn=1e3+10;
const int mod=1e9+7;
int n;
int p[maxn];
ll dp[maxn];int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&p[i]);}dp[1]=0;for(int i=1;i<=n;i++){dp[i+1]=(2*dp[i]-dp[p[i]]+2+mod)%mod;}printf("%lld\n",(dp[n+1]+mod)%mod);return 0;
}

?

轉載于:https://www.cnblogs.com/whdsunny/p/10514150.html

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

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

相關文章

機器學習05神經網絡--表示

神經網絡&#xff1a;表示&#xff08;Neural Networks: Representation&#xff09; 如今的神經網絡對于許多應用來說是最先進的技術。 對于現代機器學習應用&#xff0c;它是最有效的技術方法。 神經網絡模型是許多邏輯單元按照不同層級組織起來的網絡&#xff0c; 每一層…

邏輯回歸(Logistic Regression, LR)又稱為邏輯回歸分析,是分類和預測算法中的一種。通過歷史數據的表現對未來結果發生的概率進行預測。例如,我們可以將購買的概率設置為因變量,將用戶的

邏輯回歸(Logistic Regression, LR)又稱為邏輯回歸分析&#xff0c;是分類和預測算法中的一種。通過歷史數據的表現對未來結果發生的概率進行預測。例如&#xff0c;我們可以將購買的概率設置為因變量&#xff0c;將用戶的特征屬性&#xff0c;例如性別&#xff0c;年齡&#x…

解決SecureCRT無法用非root賬號登錄ssh

鏈接失敗&#xff0c;提示這個&#xff1a; --------------------------- SecureCRT --------------------------- 連接到會話 192.168.1.100 失敗 : The server has disconnected with an error. Server message reads: A protocol error occurred. Change of username or se…

機器學習06神經網絡--學習

代價函數 標記方法&#xff1a; 神經網絡的訓練樣本有 m 個 每個包含一組輸入 x 和一組輸出信號 y L 表示神經網絡層數 Sl表示每層的 neuron 個數(SL 表示輸出層神經元個數) 將神經網絡的分類定義為兩種情況&#xff1a; 二類分類&#xff1a;SL1, y0 or 1 表示哪一類&…

Logistic Regression Classifier邏輯回歸

Logistic Regression Classifier邏輯回歸主要思想就是用最大似然概率方法構建出方程&#xff0c;為最大化方程&#xff0c;利用牛頓梯度上升求解方程參數。 優點&#xff1a;計算代價不高&#xff0c;易于理解和實現。缺點&#xff1a;容易欠擬合&#xff0c;分類精度可能不高…

機器學習07應用機器學習的建議

決定下一步做什么&#xff08;Deciding What to Try Next&#xff09; 確保在設計機器學習系統時&#xff0c;能夠選擇一條最合適、最正確的道路。 具體來講&#xff0c;將重點關注的問題是&#xff1a;假如你在開發一個機器學習系統&#xff0c;或者想試著改進一個機器學習…

CSS3--5.顏色屬性

HTML5中添加了一些新的顏色的表示方式 1.RGBA&#xff1a;說得簡單一點就是在RGB的基礎上加進了一個通道Alpha。RGBA在RGB的基礎上多了控制alpha透明度的參數。以上R、G、B三個參數&#xff0c;正整數值的取值范圍為&#xff1a;0 - 255。百分數值的取值范圍為&#xff1a;0.0%…

邏輯回歸的通俗解釋 邏輯回歸的定位

1 邏輯回歸的定位 首先&#xff0c;邏輯回歸是一種分類&#xff08;Classification&#xff09;算法。比如說&#xff1a; 給定一封郵件&#xff0c;判斷是不是垃圾郵件給出一個交易明細數據&#xff0c;判斷這個交易是否是欺詐交易給出一個腫瘤檢查的結果數據&#xff0c;判斷…

機器學習08機器學習系統設計

首先要做什么 一個垃圾郵件分類器算法為例&#xff1a; 為了解決這樣一個問題&#xff0c;首先要做的決定是如何選擇并表達特征向量 x。 可以選擇一個由 100 個最常出現在垃圾郵件中的詞所構成的列表&#xff0c;根據這些詞是否有在郵件中 出現&#xff0c;來獲得我們的特…

數學筆記1——導數1(導數的基本概念)

什么是導數導數是高數中的重要概念&#xff0c;被應用于多種學科。從物理意義上講&#xff0c;導數就是求解變化率的問題&#xff1b;從幾何意義上講&#xff0c;導數就是求函數在某一點上的切線的斜率。我們熟知的速度公式&#xff1a;v s/t&#xff0c;這求解的是平均速度&a…

python接口自動化(四)--接口測試工具介紹(詳解)

簡介 “工欲善其事必先利其器”&#xff0c;通過前邊幾篇文章的介紹&#xff0c;大家大致對接口有了進一步的認識。那么接下來讓我們看看接口測試的工具有哪些。 目前&#xff0c;市場上有很多支持接口測試的工具。利用工具進行接口測試&#xff0c;能夠提供測試效率。例如&…

機器學習09支持向量機

支持向量機(Support Vector Machines) 在監督學習中&#xff0c;許多學習算法的性能都非常類似&#xff0c;因此&#xff0c;重要的不是你該選擇使用學習算法 A 還是學習算法 B&#xff0c;而更重要的是&#xff0c; 應用這些算法時&#xff0c;所創建的大量數據在應用這些算…

數學筆記2

數學筆記2——導數2(求導法則和高階導數)和、差、積、商求導法則設uu(x),vv(x)都可導&#xff0c;則&#xff1a;(Cu)’ Cu’, C是常數(u v)’ u’ v’(uv)’ u’ v’(u/v)’ (u’v – uv’) / v21、2不解釋&#xff0c;下面給出3、4的推導過程乘法法則的推導過乘法法則…

機器學習10聚類

無監督學習 在非監督學習中&#xff0c;我們需要將一系列無標簽的訓練數據&#xff0c;輸入到一個算法中&#xff0c; 然后讓它找這個數據的內在結構。 我們可能需要某種算法幫助我們尋找一種結構。圖上的數據看起來可以分成兩個分開的點集&#xff08;稱為簇&#xff09;&am…

python 的筆記

語言&#xff1a;Python IDE&#xff1a;Python.IDE 需求 做出彩虹效果 顏色空間 RGB模型&#xff1a;光的三原色&#xff0c;共同決定色相 HSB/HSV模型&#xff1a;H色彩&#xff0c;S深淺&#xff0c;B飽和度&#xff0c;H決定色相 需要將HSB模型轉換為RGB模型 代碼示例&am…

關聯分析(Association analysis)

關聯分析&#xff08;Association analysis&#xff09; 簡介 大量數據中隱藏的關系可以以‘關聯規則’和‘頻繁項集’的形式表示。rules&#xff1a;&#xff5b;Diapers&#xff5d;–>{Beer}說明兩者之間有很強的關系&#xff0c;購買Diapers的消費者通常會購買Beer。 除…

機器學習11主成分分析

降維(Dimensionality Reduction) &#xff1a; 一、 降維目的&#xff1a; 目的一&#xff1a;數據壓縮&#xff08;Data Compression&#xff09; 目的二&#xff1a;數據可視化&#xff08;Visualization&#xff09; 二、 主成分分析&#xff08;PCA&#xff09; 主成分…

使用Apriori進行關聯分析(一)

使用Apriori進行關聯分析&#xff08;一&#xff09;大型超市有海量交易數據&#xff0c;我們可以通過聚類算法尋找購買相似物品的人群&#xff0c;從而為特定人群提供更具個性化的服務。但是對于超市來講&#xff0c;更有價值的是如何找出商品的隱藏關聯&#xff0c;從而打包促…

主成分分析法 (PCA) 用于數據可視化實驗 -- Matlab版

第一步&#xff1a;下載數據集。 https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass.html#pendigits 第二步&#xff1a;改變數據格式。 注&#xff1a;此數據集的各特征值均為像素&#xff0c;即屬于同一量綱&#xff0c;故無需歸一化步驟。 原格式為&a…

后端視角下的前端框架之Vue.js初探

背景 作為常年搞后端的自己來說&#xff0c;除了多年前學習的一點關于HTML的皮毛&#xff0c;對現在的前端技術棧可謂是一竅不通。但是因為最近在做的內部業務全鏈路監控系統&#xff0c;負責前端的同事做到一半去搞別的項目了&#xff0c;為了把項目落地不得不硬著頭皮學一下前…