http://acm.hdu.edu.cn/showproblem.php?pid=5459

题意:

S(1) = c,S(2) = ff, S(3) = cff,之后S(i) = S(i-1)+S(i-2)。

现在给出n,求S(n)中任意两个c之间距离的总和。

思路:
现在假设第i-1和第i-2要合成第i个,计算S(i)的过程如下:

ans[i] = ans[i-1]+ans[i-2]+add,现在要求就是add新增的部分值。

假设S(i-2)中有2个c,下标分别为{a,b}(下标以1为起始点计)总长度为len2,S(i-1)中有3个c,下标为别为{x,y,z},总长度为len1。

那么新增的部分就是(len2-a)+x+ (len2-a)+y + (len2-a)+z +(len2-b)+x +(len2-b)+y +(len2-b)+z,也就是(len2-a+len2-b)*3 + (x+y+z)*2。

这里的话(len2-a+len2-b)就是S(i-2)中所有c点到末端的距离之和,3是S(i-1)中c的个数,x+y+z是S(i-1)中所有c点到始端的距离之和,2是S(i-2)中c的个数。

所有维护四个值进行递推,len是长度,sum是所有c点到末端的距离之和(到始端的距离之和可以通过len和sum计算出来),num是c的个数,ans是最终答案。

 #include<iostream>
#include<cstdio>
using namespace std;
const int mod = ;
const int maxn = +; long long len[maxn],num[maxn],sum[maxn],ans[maxn]; void init()
{
len[] = , num[] = , sum[] = , ans[] = ;
len[] = , num[] = , sum[] = , ans[] = ;
len[] = , num[] = , sum[] = , ans[] = ;
len[] = , num[] = , sum[] = , ans[] = ;
for(int i=;i<=;i++)
{
len[i] = (len[i-]+len[i-])%mod;
num[i] = (num[i-]+num[i-])%mod;
ans[i] = (ans[i-]+ans[i-]+sum[i-]*num[i-]+(((len[i-]*num[i-]-sum[i-])%mod)*num[i-])%mod)%mod;
sum[i] = ((sum[i-]+sum[i-])%mod+(num[i-]*len[i-])%mod)%mod;
}
} int main()
{
//freopen("in.txt","r",stdin);
int T;
int kase = ;
init();
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
printf("Case #%d: %lld\n",++kase,ans[n]);
}
return ;
}

HDU 5459 Jesus Is Here(递推)的更多相关文章

  1. HDU 5459 Jesus Is Here (递推,组合数学)

    有点麻烦的递推,递推的原则:向小的问题方向分解,注意边界. 字符串的递推式为 定义f为Si中的总方案数 首先可以得到 fi=fi-1+fi-2+组合(si-2,si-1) 然后考虑Si-2和Si-1之 ...

  2. ACM学习历程—HDU 5459 Jesus Is Here(递推)(2015沈阳网赛1010题)

    Sample Input 9 5 6 7 8 113 1205 199312 199401 201314 Sample Output Case #1: 5 Case #2: 16 Case #3: 8 ...

  3. Hdu 5459 Jesus Is Here (2015 ACM/ICPC Asia Regional Shenyang Online) 递推

    题目链接: Hdu 5459 Jesus Is Here 题目描述: s1 = 'c', s2 = 'ff', s3 = s1 + s2; 问sn里面所有的字符c的距离是多少? 解题思路: 直觉告诉我 ...

  4. hdu 5459 Jesus Is Here 数学

    Jesus Is Here Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...

  5. HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  6. 题解报告:hdu 2084 数塔(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这 ...

  7. HDU 5965 三维dp 或 递推

    题意:= =中文题 思路一:比赛时队友想的...然后我赛后想了一下想了个2维dp,但是在转移的时候,貌似出了点小问题...吧?然后就按照队友的思路又写了一遍. 定义dp[i][j][k],表示第i列, ...

  8. HDU 2569(简单的递推)

    彼岸 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  9. hdu 2050 折线分割平面 (递推)

    折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

随机推荐

  1. 任务调度工具 Apache Airflow 初识

    参考文章: Apache Airflow (incubating) Documentation — Airflow ... 任务调度神器 airflow 之初体验 airflow 介绍 - 简书(原文 ...

  2. python 网页cookie的使用

    网页cookie的使用 Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) # opener的概念当你获取一个URL你使用一个opener(一 ...

  3. System.map文件的作用解析

    有关System.map文件的信息好象很缺乏.其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要.但是由于缺乏必要的文档说明,使其显得比较神秘.它就象耳垂,我们每个人都有,但却不知道是干什 ...

  4. Django后端项目----RESTful API

    一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角 ...

  5. GoldenGate实时投递数据到大数据平台(2)- Cassandra

    简介 GoldenGate是一款可以实时投递数据到大数据平台的软件,针对apache cassandra,经过简单配置,即可实现从关系型数据将增量数据实时投递到Cassandra,以下介绍配置过程. ...

  6. mysql 通过查看mysql 配置参数、状态来优化你的mysql

    我把MYISAM改成了INNODB,数据库对CPU方面的占用变小很多' mysql的监控方法大致分为两类: 1.连接到mysql数据库内部,使用show status,show variables,f ...

  7. Python数据类型的显式转换

    数据类型的显示转换,也称为数据类型的强制类型转换,是通过Python的内建函数来实现的类型转换. 显式转换的多种类型: int(x [,base]) ⇒ 将x转换为一个十进制的整数 long(x [, ...

  8. 第一个django项目-通过命令行和pycharm两种方式

    以本机环境为例,ip地址为172.20.16.148,windows平台,虚拟环境路径为d:\VirtualEnv,项目存放位置为d:\DjangoProject 命令行方式 1.进入虚拟环境创建项目 ...

  9. Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中 ...

  10. linux 函数库使用

    程序函数库可分为3种类型:静态函 数库(static libraries).共享函数库(shared libraries)和动态加载函数库(dynamically loaded libraries) ...