Hdu 5459 Jesus Is Here (2015 ACM/ICPC Asia Regional Shenyang Online) 递推
题目链接:
题目描述:
s1 = 'c', s2 = 'ff', s3 = s1 + s2; 问sn里面所有的字符c的距离是多少?
解题思路:
直觉告诉我们,sn肯定由sn-1与sn-2推导出来的。然后呢,我们可以看出 n%2==1 的时候 sn-1 与 sn-2 由 ffff 衔接起来的,n%2==0 的时候,sn-1 与 sn-2由 ff 衔接起来的。告诉队友后,队友就把这个当成重要依据推啊,推啊!!到最后感觉丢队友自己看药丸,放弃02回来和队友一起看,发现这样想脑洞太大,完全错误.......真是真是可怜,这个锅我接!!
我们先设定len[i], num[i], sum[i], ans[i]分别是:si的长度,si中c的数目,si中c的下标和,si中所有字符c的距离。
则有:
len[i] = len[i-1] + len[i-2];
num[i] = num[i-1] + num[i-2];
sum[i] = sum[i-1] + sum[i-2] + len[i-2] * num[i-1];
ans[i] = ans[i-1] + ans[i-2] + (len[i-2] * num[i-2] - sum[i-2]) * num[i-1] + num[i-2] * sum[i-1];
对于len,num很容易理解,就是斐波那契数列。
sum[i] = sum[i-1] + sum[i-2] 很容易理解,由于si-1在si-2后面,所以对于每一个si-1里面的c来说下标都加上了len[i-2], 然后很自然的就加上 len[i-2] * num[i-1];
对于ans[i]来说,ans[i] = ans[i-1] + ans[i-2] 很容易理解,然后还有 si-1 与 si-2 里面的c的距离没有加上。我们把 si 看成两部分,以衔接处为分割线,前部分的贡献值为:(len[i-2] * num[i-2] - sum[i-2]) * num[i-1] ,对于后半部分的每个c来说,前半部分的贡献是相同的,都是前半部分中的每个c的坐标到分割线的位置。后半部分的贡献值为 num[i-2] * sum[i-1],正好与前半部分相反;
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
const LL maxn = ;
const LL mod = ;
LL ans[maxn], len[maxn], sum[maxn], num[maxn];
int main ()
{
LL t, n;
scanf ("%lld", &t);
len[] = sum[] = num[] = ;
len[] = ;
sum[] = num[] = ;
for (int i=; i<maxn; i++)
{
len[i] = (len[i-] + len[i-]) % mod;
num[i] = (num[i-] + num[i-]) % mod;
sum[i] = ((sum[i-] + sum[i-]) % mod + num[i-] * len[i-] % mod) % mod;
ans[i] = ((ans[i-] + ans[i-]) % mod + (num[i-]*len[i-]-sum[i-]) % mod*num[i-] % mod + num[i-] * sum[i-] % mod) % mod;
}
for (LL i=; i<=t; i++)
{
scanf ("%lld", &n);
printf ("Case #%lld: %lld\n", i, ans[n]);
}
return ;
}
Hdu 5459 Jesus Is Here (2015 ACM/ICPC Asia Regional Shenyang Online) 递推的更多相关文章
- 2015 ACM/ICPC Asia Regional Shenyang Online
		
1001 Traversal 1002 Best Solver 1003 Minimum Cut 类似于POJ 3417的做法. 考虑每条新边对树边的覆盖次数. 每条树边被覆盖的次数其实就是断裂这条树 ...
 - HDU 5458 Stability(双连通分量+LCA+并查集+树状数组)(2015 ACM/ICPC Asia Regional Shenyang Online)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5458 Problem Description Given an undirected connecte ...
 - 【动态规划】HDU 5492 Find a path (2015 ACM/ICPC Asia Regional Hefei Online)
		
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5492 题目大意: 一个N*M的矩阵,一个人从(1,1)走到(N,M),每次只能向下或向右走.求(N+ ...
 - (字符串处理)Fang Fang -- hdu -- 5455 (2015 ACM/ICPC Asia Regional Shenyang Online)
		
链接: http://acm.hdu.edu.cn/showproblem.php?pid=5455 Fang Fang Time Limit: 1500/1000 MS (Java/Others) ...
 - Hdu  5451  Best Solver (2015 ACM/ICPC Asia Regional Shenyang Online) 暴力找循环节 + 递推
		
题目链接: Hdu 5451 Best Solver 题目描述: 对于,给出x和mod,求y向下取整后取余mod的值为多少? 解题思路: x的取值为[1, 232],看到这个指数,我的心情是异常崩 ...
 - Hdu 5452 Minimum Cut (2015 ACM/ICPC Asia Regional Shenyang Online) dfs + LCA
		
题目链接: Hdu 5452 Minimum Cut 题目描述: 有一棵生成树,有n个点,给出m-n+1条边,截断一条生成树上的边后,再截断至少多少条边才能使图不连通, 问截断总边数? 解题思路: 因 ...
 - HDU 5444 Elven Postman (2015 ACM/ICPC Asia Regional Changchun Online)
		
Elven Postman Elves are very peculiar creatures. As we all know, they can live for a very long time ...
 - (并查集)Travel -- hdu -- 5441(2015 ACM/ICPC Asia Regional Changchun Online  )
		
http://acm.hdu.edu.cn/showproblem.php?pid=5441 Travel Time Limit: 1500/1000 MS (Java/Others) Memo ...
 - (二叉树)Elven Postman -- HDU -- 54444(2015 ACM/ICPC Asia Regional Changchun Online)
		
http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limit: 1500/1000 MS (Java/Others) ...
 
随机推荐
- WebService:JAX-WS实现WebService
			
WebService和Java核心技术中的RMI一样用于实现异构平台上的应用程序之间数据的交互,唯一不同的是这样的技术屏蔽了语言之间的差异.这也是其大行其道的原因. 实现WebService的技术多种 ...
 - 修复Xcode升级错误 — PCH File Error
			
http://www.rockia.net/2013/03/fix-xcode-update-pch-file-error Error:PCH File Built From A Different ...
 - LiberOJ#6178. 「美团 CodeM 初赛 Round B」景区路线规划  概率DP
			
题意 游乐园被描述成一张 n 个点,m 条边的无向图(无重边,无自环).每个点代表一个娱乐项目,第 i 个娱乐项目需要耗费 ci 分钟的时间,会让小 y 和妹子的开心度分别增加 h1i ,h2i ,他 ...
 - 使用NetBeans生成jar包,并在jar包中添加资源
			
在NetBeans中,执行Clean and Build便可得到jar文件 若要在jar中添加资源,先用压缩软件打开jar,然后将资源拖进当前归档文件即可 使用Class.getResource(St ...
 - 编译android内核和文件系统,已经安装jdk,提示build/core/config.mk:268: *** Error: could not find jdk tools.jar
			
1:确保安装jdk,如果没有安装请移布:http://www.cnblogs.com/jiuyueguang/p/3156621.html 2:如果已经安装了jdk,还是提示此错误, 解决方法 请确保 ...
 - HDU3507 Print Article —— 斜率优化DP
			
题目链接:https://vjudge.net/problem/HDU-3507 Print Article Time Limit: 9000/3000 MS (Java/Others) Mem ...
 - 如何修改织梦dedecms文章标题的最大长度
			
织梦dedecms默认的文章标题的最大长度为60字节,如果文章标题超过60字节将会自动截断,导致标题显示不全,这并非是我们所希望的.那么如何将标题长度改成我们想要的?只需简单两步即可解决问题. 1.进 ...
 - lucene 5可以运行的demo
			
package hello; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.ap ...
 - git push不成功 insufficient permission for adding an object to repository database
			
这常见于多用户. 1. 确保所有用户在同一个组: 2. 确保所有文件被组可读写. 当多个用户各自进行了push操作后,object目录下的文件可能各自属于各个用户.
 - oracle自动统计信息
			
在11g中,默认自动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时), select a.window_name, a.repeat_interval,a ...