题目传送门

18.10.24模拟赛T2。

一道简单的DP。当时推出了式子,但是有一个小地方推错了,忘记了减一。

于是怎么算都不对,就没再往这边考虑......

设f[i]为第一次到达i的时间。

显然f[i]=f[i-1](先到达i-1)+1(又到了p[i-1])+(f[i-1]-f[p[i-1]])(又回到i-1)+1(最后到了i)=2*f[i-1]-f[p[i-1]]+2。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #define ll long long
 5 #define mod 1000000007
 6 using namespace std;
 7
 8 int n;
 9 int p[1000005];
10 int f[1000005];
11
12 int read()
13 {
14     int ret=0;char c=getchar();
15     while(c<'0'||c>'9')c=getchar();
16     while(c>='0'&&c<='9')ret=ret*10+c-'0',c=getchar();
17     return ret;
18 }
19
20 int main()
21 {
22     scanf("%d",&n);;
23     for(int i=1;i<=n;i++)p[i]=read();
24     f[1]=1;
25     for(int i=2;i<=n+1;i++)
26         f[i]=((2*f[i-1]-f[p[i-1]]+2)%mod+mod)%mod;
27     printf("%d",f[n+1]-1);
28     return 0;
29 }

转载于:https://www.cnblogs.com/eternhope/p/9847798.html

[CF407B] Long Path相关推荐

  1. CF407B 「Long Path」

    CF407B 「Long Path」 星影落九天,鱼雁舞千弦.但为君沉吟,落日天涯圆. [题目传送门](洛谷) 题目描述 有个人进入一个迷宫,这个迷宫共有n+1n+1n+1个房间,编号从111~n+1 ...

  2. python路径拼接os.path.join()函数的用法

    os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不包含'/',则函数会自动加上 2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃 3.如果最后一个组 ...

  3. Android 自定义View —— Path

    Path 的概念: Path类封装由直线段,二次曲线和三次曲线组成的复合(多个轮廓)几何路径.可以使用canvas.drawPath(path,paint)对其进行填充或描边绘制(基于Paint的St ...

  4. Retrofit 网络请求参数注解@Path @Field @Query 等使用

    请求参数呢大致如下,到个别人的图, 下面就说下这些内容使用 其中 @Path.@Query.@QueryMap 使用 Get 请求 , 加入使用了Post 请求注解使用@Path  一般都会是项目崩溃 ...

  5. MSDN 教程短片 WPF 16(Path路径)

    制作动画路径-Path Path中有个Date属性,用来获取或设置指定要绘制的形状的 Geometry. 所以我们画一个圆来和一个椭圆路径,是圆在椭圆路径上移动,我们先画个圆. <Ellipse ...

  6. 对python3中pathlib库的Path类的使用详解

    原文连接   https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...

  7. Go 学习笔记(53)— Go 标准库之 path(判断绝对路径、拆分目录和文件、组合路径、返回路径目录、获取路径最后文件名、获取文件扩展名、路径匹配规则)

    1. 概述说明 import "path" path 实现了对斜杠分隔的路径的实用操作函数. 2. 主要函数 2.1 func IsAbs func IsAbs(path stri ...

  8. [leetcode] Minimum Path Sum

    Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to b ...

  9. java build path entries 为空_同事的代码简直没法看,我来教你如何更优雅的设计Java异常...

    点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据自己的 ...

最新文章

  1. MirantisOpenStack-Fuel 9.0
  2. ThinkPHP5 清除runtime缓存文件
  3. linux怎么安装java环境变量_linux怎么配置java环境变量
  4. java 伪异步 netty,Netty(一) - 不死的达芬奇的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. 使用键值flyweight的Boost.Flyweight示例
  6. 1970“变种”bug连WiFi热点iOS设备会变砖?
  7. Python time sleep()方法
  8. 数据结构 - 多路搜索树(2-3树、b树、b+树、b*树)
  9. android file isdirectory,android – 为什么我不能在Environment.DIRECTORY_PICTURES中创建一个目录?...
  10. docker知识点查阅
  11. Java与XML编程之SAX
  12. 【GDB源码编译】GDB源码编译
  13. vs2012 MSDN帮助文档离线包下载安装方法
  14. 【weiphp微信开发教程】留言板插件开发详解
  15. 机器学习常见算法个人总结
  16. javascript基础知识练习题
  17. 云计算机ppt模板,云服务云技术云计算PPT模板
  18. 浏览器被hao123劫持
  19. 区块链是什么通俗解释_区块链是什么,区块链是什么通俗解释
  20. 协议大全 http协议 http://www.chinaitpower.com/Net/xieyi/HTTP/index.html

热门文章

  1. Java的未来:百家争鸣的JVM
  2. 由浅入深:自己动手开发模板引擎——置换型模板引擎(二)
  3. HTML IFRAME 用法小总结
  4. Microsoft Visual Studio (VS)2010 常用快捷键大全 便捷开发
  5. TextView显示插入的图片
  6. [POJ 1003] Hangover C++解题
  7. 二进制 java Class文件解析实例
  8. linux命令gcc常用选项
  9. 01 决策树 - 数学理论概述 - 熵
  10. Vue、React、Angular最佳UI框架