hdu 5459 Jesus Is Here 沈阳网赛

按照这个规律找出来的不断取模之下会得负数。需要(ans+mod)%mod,化为正数。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll __int64
const ll mod=530600414;
const int maxn=201399;
ll w[maxn],ans[maxn],num[maxn],len[maxn];
void init()
{
	int n=201318,i;
	len[1]=1;len[2]=2;
	for(i=3;i<=n;i++)
		len[i]=(len[i-1]+len[i-2])%mod;
	for(i=0;i<=4;i++)	ans[0]=0;
	num[0]=0;num[1]=0;num[2]=0;
	w[4]=3;w[3]=1;
	num[3]=1;num[4]=1;
	for(i=5;i<=n;i++)
	{
		ans[i]=((ans[i-1]+ans[i-2])%mod+
			((len[i-2]*num[i-2]%mod-w[i-2])%mod)*num[i-1]%mod+w[i-1]*num[i-2]%mod)%mod;
		num[i]=(num[i-1]+num[i-2])%mod;
		w[i]=(num[i-1]*len[i-2]%mod+(w[i-1]+w[i-2])%mod)%mod;
	}
}
int main()
{
	int i,j,n,t;
	init();
	while(scanf("%d",&t)==1)
	{
		int cas=1;
		while(t--)
		{
			scanf("%d",&n);
			printf("Case #%d: %I64d\n",cas++,(ans[n]+mod)%mod);
		}
	}
	return 0;
}
时间: 2024-10-13 16:09:38

hdu 5459 Jesus Is Here 沈阳网赛的相关文章

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的距离是多少? 解题思路: 直觉告诉我们,sn肯定由sn-1与sn-2推导出来的.然后呢,我们可以看出 n%2==1 的时候 sn-1 与 sn-2 由 ffff 衔接起来的,n%2==0 的时候,sn-1 与 sn-2由 ff 衔接起来的.告诉队友后,队友就把这个当成重要依据推啊,推啊!!到最后感觉丢队友自己看药丸,放弃02回来和队友

hdu 5459(2015沈阳网赛) Jesus Is Here

题目;http://acm.hdu.edu.cn/showproblem.php?pid=5459 题意 给出一组字符串,每个字符串都是前两个字符串相加而成,求第n个字符串的c的各个坐标的差的和,结果要模530600414. 很容易看出字符串的长度及c的个数都是由斐波那契数列构成的,得到最后结果是ans[i]=ans[i-1]+ans[i-2]+x,要求的就是x 假设第n项中字符'c'的个数为cn,字符'c'坐标之和为sn,字符串长度为ln 当形成第i个字符串的时候对于第i-1个字符串来说,这个

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: 88 Case #4: 352 Case #5: 318505405 Case #6: 391786781 Case #7: 133875314 Case #8: 83347132 Case #9: 16520782 题目要求当前字符串序列中某项里cff前缀两两间差值的和. 假设已经纪录了cff前缀的

2015年沈阳网赛 Jesus Is Here(DP中的计数问题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5459 题目描述:给定一个递推得来的字符串,问字符串中不同cff之间的距离之和, 递推规则: s1=c; s2=ff sn=s[n-2]s[n-1]; 可以观察到任意一个c都被两个ff包含,所以相当于求任意两个c之间的距离之和. 设s[n-2]为p1,p2,p3,,,,p[x],s[n-1]为q1,q2,q3,,,,q[y]; X和y分别为字符串中c的个数:设cnt_c[i]为第i个字符串中c的个数,

hdu 5455 (2015沈阳网赛 简单题) Fang Fang

题目;http://acm.hdu.edu.cn/showproblem.php?pid=5455 题意就是找出所给字符串有多少个满足题目所给条件的子串,重复的也算,坑点是如果有c,f以外的字符也是不满足条件的,还有我被坑了的地方就是当输入很多f的时候,我尽然脑抽的 认为这是不满足条件的,注意这两点就行了,直接暴力 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 int main() 5 { 6 int

hdu5459 Jesus Is Here(沈阳网赛)

Jesus Is Here Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/102400 K (Java/Others) Total Submission(s): 257 Accepted Submission(s): 175 Problem Description I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't she

【转】HDU 6194 string string string (2017沈阳网赛-后缀数组)

转自:http://blog.csdn.net/aozil_yang/article/details/77929216 题意: 告诉你一个字符串和k , 求这个字符串中有多少不同的子串恰好出现了k 次. 思路: 后缀数组. 我们先考虑至少出现k 次的子串, 所以我们枚举排好序的后缀i (sa[i]) . k段k 段的枚举. 假设当前枚举的是 sa[i]~sa[i + k -1] 那么假设这一段的最长公共前缀  是L 的话. 那么就有L 个不同的子串至少出现了k次. 我们要减去至少出现k + 1次

hdu 5901 Count primes (2016沈阳网络赛)

原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=5901 题意:输入n,输出n以内质数个数 模板题,模板我看不懂,只是存代码用. 官方题解链接:https://async.icpc-camp.org/d/560-2016 /************************************************************ 这个模板我一点都不会,代码是从codeforces上抄的,佚名 pi(i)表示i以内质数的个数 ******

hdu 5459 Jesus Is Here (费波纳茨递推)

Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)Total Submission(s): 250    Accepted Submission(s): 169 Problem Description I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't she make sens