[atARC071F]Infinite Sequence
注意到当$a_{i}\ne 1$且$a_{i+1}\ne 1$,那么$\forall i<j,a_{j}=a_{i+1}$(证明的话简单归纳就可以了)
令$f_{i}$表示在题中条件下,还满足$\forall i\le j,a_{j}=a_{i}$的方案数,转移考虑所填的$a_{1}$和$a_{2}$:
1.$a_{1}=1$,此时相当于没有限制,即$f_{i-1}$
2.$a_{1}>1$且$a_{2}=1$,此时即限制一直到$a_{1}+1$都要是1,接下来任意,即$f_{i-(a_{1}+1)}$
3.$a_{1}>1$且$a_{2}>1$,那么共有$(n-1)^{2}$种(任选),之后唯一
(特别的,对于第2种转移,允许$a_{1}+1\ge i$,此时即为1)
转移前缀和优化即可,时间复杂度为$o(n)$

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 1000005
4 #define mod 1000000007
5 int n,f[N],sum[N];
6 int main(){
7 scanf("%d",&n);
8 f[1]=sum[1]=n;
9 for(int i=2;i<=n;i++){
10 f[i]=(sum[i-1]-f[i-2]+mod+1LL*(n-1)*(n-1)+n+2-i-(i==2))%mod;
11 sum[i]=(sum[i-1]+f[i])%mod;
12 }
13 printf("%d ",f[n]);
14 }
[atARC071F]Infinite Sequence的更多相关文章
- CodeForces 622 A.Infinite Sequence
A.Infinite Sequence time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Educational Codeforces Round 7 A. Infinite Sequence 水题
A. Infinite Sequence 题目连接: http://www.codeforces.com/contest/622/problem/A Description Consider the ...
- codeforces 675A A. Infinite Sequence(水题)
题目链接: A. Infinite Sequence time limit per test 1 second memory limit per test 256 megabytes input st ...
- codeforces 622A Infinite Sequence
A. Infinite Sequence time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 【arc071f】Infinite Sequence(动态规划)
[arc071f]Infinite Sequence(动态规划) 题面 atcoder 洛谷 题解 不难发现如果两个不为\(1\)的数连在一起,那么后面所有数都必须相等. 设\(f[i]\)表示\([ ...
- Codeforces Round #353 (Div. 2) A. Infinite Sequence 水题
A. Infinite Sequence 题目连接: http://www.codeforces.com/contest/675/problem/A Description Vasya likes e ...
- codeforces 622A A. Infinite Sequence (二分)
A. Infinite Sequence time limit per test 1 second memory limit per test 256 megabytes input standard ...
- A - Infinite Sequence
Problem description Consider the infinite sequence of integers: 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, ...
- Codeforces Round #353 (Div. 2) A. Infinite Sequence
Vasya likes everything infinite. Now he is studying the properties of a sequence s, such that its fi ...
随机推荐
- JavaScript 字符串(上)
JavaScript 字符串(上) 三种引号 字符串可以包含在单引号.双引号或反引号中 //用法 let single = 'Single quotation mark'; //单引号 let dou ...
- 洛谷4103 HEOI2014大工程(虚树+dp)
又是一道虚树好题啊 我们建出来虚树,然后考虑dp过程,我们分别令\(sum[x],mndis[x],mxdis[x],size[x]\)为子树内的路径长度和,最短链,最长链,子树内关键点个数. 对于一 ...
- Mac录屏同时录制系统声音和画外音(Soundflower无法安装解决方案)
个人博客地址:xzajyjs.cn 前言 以前一直有录屏的需求,但苦于自带的QuickTime 无法录制内屏声音,一直使用的是第三方的app.近期开腾讯会议需要录屏,但主持人本身没有开启录屏权限,只好 ...
- Markdown Syntax Images
Markdown Syntax Images Admittedly, it's fairly difficult to devise a "natural" syntax for ...
- 升级更新 Windows10
升级更新 Windows10:获取 Windows 更新助手 升级 Windows10,它是先下载 Windows10 系统镜像,然后才升级.在下载完 Windows10 后,升级前,有一步骤会询问: ...
- HttpRunner3.X - 实现参数化驱动
一.前言 HttpRunner3.X支持三种方式的参数化,参数名称的定义分为两种情况: 独立参数单独进行定义: 多个参数具有关联性的参数需要将其定义在一起,采用短横线(-)进行连接. 数据源指定支持三 ...
- MySQL复习(二)MySQL基本数据类型
MySQL基本数据类型 常用的字段类型大致可以分为数值类型.字符串类型.日期时间类型三大类 1. 数值类型 数值类型可以分为整型.浮点型.定点型三小类. 1.1 整型 (tiny:极小的, small ...
- kivy 选择框
from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.lang import builder # 注册 ...
- poi实现生成下拉选
在我们日常开发中,经常需要使用poi操作excel文件,现在就简单介绍一下在poi中是如何生成下拉选的. 1.创建workbook 2.创建数据约束 3.设置数据的有效性 @Test public v ...
- luogu P4243 [JSOI2009]等差数列 题解
前言: 这题真ex... 强烈谴责在题解里面放毒瘤题链接的屑出题人! 吐 ️ 解析: 这题分成两步走. 首先,既然题目中的修改操作是区间加等差数列,那么就容易想到在差分数组上进行操作. 然后就是相当恶 ...