你获得了无限个狗剩,为此你需要一个无限长的数组来存储狗剩,这个数组要满足以下条件
1. 数组仅包含1, 2, 3, ..., n
2. 如果n <= i, j,那么ai = aj
3. 如果i < j < k <= i + ai,那么aj = ak

数组还在生成中,反正现在很无聊,不如计算有多少种满足条件的数组?答案对1e9 + 7 取模

看起来十分恐怖"无限长?!!"

发现长度n后面没卵用

嗯,让后还有一个限制?

对,i~i+a[i]数字要求相同

额,果断倒过来随便乱搞就做出来了

设f[i]为做到倒数第i位的答案

那么如果i填1,则有f[i]+=f[i-1]的转移

如果第i位填k(k>1)那么就有f[i]+=f[i-k-1](相当于第i位后面跟了k个1)

如果有连续两位不为i则整个数组都一定被确定下来(比如233333...或者是3444444.)

所以就有f[i]+=(n-1)*(n-1)(第i有n-1种选法,i-1位也有n-1种,让后就全部确定)

十分简单,大样例一次过,然而全场爆零?

"

100% 的数据满足1 <= n <= 10^6
数据很有梯度(共100 个测试点,几乎是个等比数列,首项是4,公比大概是1.1)

"

然后OJ就爆炸了

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define M 1000000007
using namespace std;
void ad(int& x,int y){ x=(x+y)%M; }
int n,f[1000010],s[1000010];
int main(){freopen("neutral.in","r",stdin);freopen("neutral.out","w",stdout);scanf("%d",&n); f[0]=1; f[1]=n; s[1]=n; s[0]=0;for(int i=2;i<=n;++i){ad(f[i],f[i-1]);ad(f[i],(n-1ll)*(n-1ll)%M);ad(f[i],s[max(0,i-3)]+(n-1-max(0,i-3)));s[i]=s[i-1]; ad(s[i],f[i]);}printf("%d\n",f[n]);
}

转载于:https://www.cnblogs.com/Extended-Ash/p/9477244.html

Jzoj5450【NOIP2017提高A组冲刺11.4】Neutral相关推荐

  1. JZOJ 5441. 【NOIP2017提高A组冲刺11.1】序列

    Description 给定一个1~n的排列x,每次你可以将x1~xi翻转.你需要求出将序列变为升序的最小操作次数.有多组数据. Input 第一行一个整数t表示数据组数. 每组数据第一行一个整数n, ...

  2. jzoj_5455. 【NOIP2017提高A组冲刺11.6】拆网线

    Description 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构.现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料.但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把 ...

  3. [JZOJ5459]【NOIP2017提高A组冲刺11.7】密室

    Description 小X 正困在一个密室里,他希望尽快逃出密室. 密室中有N 个房间,初始时,小X 在1 号房间,而出口在N 号房间. 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会 ...

  4. JZOJ 5458. 【NOIP2017提高A组冲刺11.7】质数

    Description 小X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感.小X 认为,质数是一切自然数起源的地方. 在小X 的认知里,质数是除了本身和1 以外,没有其他因数的数 ...

  5. JZOJ 5455. 【NOIP2017提高A组冲刺11.6】拆网线

    Description 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构.现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料.但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把 ...

  6. JZOJ 5445. 【NOIP2017提高A组冲刺11.2】失格

    Description 胆小鬼连幸福都会害怕,碰到棉花都会受伤,有时还被幸福所伤. --太宰治<人间失格> 回顾我的一生,一共有n个事件,每一个事件有一个幸福值p_i. 我想用n-1条线把 ...

  7. JZOJ5445. 【NOIP2017提高A组冲刺11.2】失格

    Description 胆小鬼连幸福都会害怕,碰到棉花都会受伤,有时还被幸福所伤. --太宰治<人间失格> 回顾我的一生,一共有n个事件,每一个事件有一个幸福值p_i. 我想用n-1条线把 ...

  8. JZOJ 5466. 【NOIP2017提高A组冲刺11.9】玩游戏

    Description 小A得了忧郁综合症,小B正在想办法开导她. 机智的小B决定陪着小A玩游戏,他从魔法的世界里变出一张无向联通图,每条边上都有边权.小B定义一条路径的权值为所有经过边中的最大权值, ...

  9. JZOJ 5462. 【NOIP2017提高A组冲刺11.8】好文章

    Description nodgd写了一篇文章,自认为这是一篇好文章.nodgd的文章由n个小写英文字母组成.文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数.nodgd在文 ...

最新文章

  1. 关于idea中新建web项目 webapp文件夹没有小蓝点 ,启动服务,访问不到解决方案
  2. 微型计算机课程介绍,微机原理及应用课程教学大纲教案
  3. 在集群服务器进行自定义数据集训练记录过程 TensorBoard logging requires TensorBoard with Python summary writer installed.
  4. java.线程池 线程数_如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...
  5. Java泛型中的子类型化
  6. golang 泛型_Golang 1.x版本泛型编程
  7. asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
  8. “思考”绝非一时的想法——读大前研一《思考的技术》
  9. saprk randomSplit方法
  10. Linux进程线程学习笔记
  11. java rxtx串口读写_Win7环境下Java串口数据读写(RXTX)
  12. 团队作业九---项目验收与总结
  13. 小米HTML查看器记住密码,小米路由器 SSH 密码计算工具,开启小米SSH访问
  14. Boost.Geometry介绍
  15. 【IPD从零到一】创业指导:IPD 是什么?
  16. 5个Python开发实用工具
  17. Qt编译遇到问题和解决方法
  18. C语言面试篇(一)总结
  19. 准入控制_Kubernetes动态准入控制示例
  20. 外卖点餐系统部分模块设计

热门文章

  1. 执行时遇到 For apos;context.set_contextapos;, package type xxx support apos;devic
  2. 关于机器指令和微指令
  3. Linux文件相关指令
  4. 深度学习网络结构笔记----Depthwise卷积与Pointwise卷积--深度可分卷积-- GoogleNet,Xception,MobileNetv1--v3
  5. 如何用技术手段“干掉”优酷、腾讯视频 App 里讨厌的广告?
  6. C++ 调用 Python 代码 - Clion QT混合编程 ,各取长处。
  7. Hessian RMI功能介绍
  8. python:PIL库中Image类thumbnail方法和resize方法的比较
  9. 31 天重构学习笔记26. 避免双重否定
  10. 怎么入门Java编程?