Jesus Is Here[递推]2015沈阳online

题目链接https://nanti.jisuanke.com/t/41175

  自从百度之星初赛一上自己做出来一道打表找规律的题之后,这种膨胀的感觉让我近乎丧失理智,今天这道题我死死盯了两三个小时硬是没看出什么规律,我还是太嫩了点~,这也是我头一次做递推的题,题量还有待替高啊!

  如果相对了思路(看了大佬的精彩解析https://blog.csdn.net/chenzhenyu123456/article/details/48579695),这道题就可以迎刃而解了

  首先需要开一个结构体变量,用来存储不同元素的1.‘c’的个数2.字符串长度3.对应字符串上的所有‘c’所在位置下标的和4.元素值,稍作思考就可以得到以下关系了:

  1.‘c’的个数:a2.num=a0.num+a1.num

  2.字符串长度:a2.len=a0.len+a1.len

  3.对应字符串上的所有‘c’所在位置下标的和:a2.sum=a0.num+a1.num+a0.len*a1.num

  4.元素值:a2.val=a0.val+a1.val+(a1.sum+a0.len*a1.num)*a0.num-a1.num*a0.sum

  Ps:求余的部分需要特别注意,很容易出错。

  详见代码:

  

 1 #include<bits/stdc++.h>
 2
 3 using namespace std;
 4 const long long aha=530600414;
 5 struct ha{
 6     long long len,sum,val,num;
 7     ha(){}
 8     ha(long long x,long long y,long long z,long long p):len(x),sum(y),val(z),num(p){}
 9 };
10 int t,n;
11 int main(){
12     scanf("%d",&t);
13     for(int Case=1;Case<=t;Case++){
14         scanf("%d",&n);
15         ha a0(1,1,0,1),a1(2,0,0,0),a2;
16         n-=2;
17         while(n--){
18             a2=ha((a0.len+a1.len)%aha,
19                 ((a0.sum+a1.sum)%aha+a0.len*a1.num%aha)%aha,
20                 (((a0.val+a1.val)%aha+(a1.sum+a0.len*a1.num)%aha*a0.num%aha)%aha-a1.num*a0.sum%aha+aha)%aha,
21                 (a0.num+a1.num)%aha);
22             a0=a1;
23             a1=a2;
24             //printf("len=%lld,sum=%lld,val=%lld,num=%lld\n",a2.len,a2.sum,a2.val,a2.num);
25         }
26         printf("Case #%d: %lld\n",Case,a2.val);
27     }
28     return 0;
29 }

  

原文地址:https://www.cnblogs.com/xxmlala-fff/p/xxmlala-JesusIsHere.html

时间: 2024-10-26 02:17:36

Jesus Is Here[递推]2015沈阳online的相关文章

HDU 5459 Jesus Is Here (递推)

有点麻烦的递推,看的时候请耐心,递推的时候不要有嵌套,向小的问题方向分解,然后注意边界. 字符串的递推式为 定义f为Si中的总长度 首先可以得到 然后考虑Si-2和Si-1之间的组合 为了得到小的问题,进行拆分 为了以后表示的方便和逻辑上的清晰,把Si~Si之间的组合总长度定义出来 因为这里的si-2和si-2的中间还有一段Si-3 所以其组合总长度就可以表示为 Ci表示Si中cff出现的次数,Li表示Si的长度 定义一个函数ccl 最后还剩下一个部分Si-2和Si-3 定义 至此,总方案已经可

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前缀的

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

Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 249    Accepted Submission(s): 140 Problem Description Farmer John likes to play mathematics games with his N cows. Recently, t

NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))

Description 今天西工大举办了一场比赛总共有m+n人,但是有m人比较懒没带电脑,另外的n个人带了电脑.不幸的是,今天机房的电脑全坏了只能用带的电脑,一台电脑最多两人公用,确保n>=m.但是大家来的时间不同,随机次序来机房,带电脑的人直接准备比赛而没带电脑的人需要向带电脑并还没和别人公用的人求助(当然会答应).但是,如果不存在带电脑并还没和别人公用的人,那他就要等了,等是很让人头疼的,这就不和谐了,当然假如没有这样的情况发生比赛是很和谐的. Input 输入多组数据,每组数据只有一行m(

HDU 6198 2017沈阳网络赛 线形递推

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6198 题意:给出一个数k,问用k个斐波那契数相加,得不到的数最小是几. 解法:先暴力打表看看有没有规律. #include <bits/stdc++.h> using namespace std; int dp[2000][2000]; typedef long long LL; int main() { LL c[50]; c[0]=0; c[1]=1; c[2]=1; for(int i=2;

递推DP HDOJ 5459 Jesus Is Here

题目传送门 题意:简单来说就是sn = sn-1 + sn-2递推而来,求其中所有c字符的:∑i<j:sn[i..i+2]=sn[j..j+2]=‘‘cff"(j−i) mod 530600414 分析:一开始觉得很难下手,类似于斐波那契数列,最后的数字会很大,不能正常求解.想到试试打表找规律,结果并没有找到什么规律...最后也没想出什么来.赛后才恍然大悟,这是递推题,拿来别人的思路: 串长度len,串中字符c的个数num,串中所有字符c的位置之和sum,串中所有字符c之间的距离之和ans

算法竞赛入门经典训练指南【递推问题】------2015年1月24日

1. 常见的数列总结 (1)斐波那契数列: 如何实现斐波那契数列,我们可以采取如下方法: (1)递归求解(慢)(2)递推法 (3)矩阵快速幂 下面给出矩阵快速幂的由来: 除了这些问题,我们对于斐波那契数列还可能涉及高精度数的处理问题. (2)卡特兰数 卡塔兰数是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡塔兰数的一般项公式为                       另类递归式:  h(n)=((4*n-2)/(n+1)

ACM学习历程—SNNUOJ 1110 A Simple Problem(递推 &amp;&amp; 逆元 &amp;&amp; 组合数学 &amp;&amp; 快速幂)(2015陕西省大学生程序设计竞赛K题)

Description Assuming a finite – radius “ball” which is on an N dimension is cut with a “knife” of N-1 dimension. How many pieces will the “ball” be cut into most?However, it’s impossible to understand the following statement without any explanation.L

HDU 5950 - Recursive sequence - [矩阵快速幂加速递推][2016ACM/ICPC亚洲区沈阳站 Problem C]

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5950 Farmer John likes to play mathematics games with his N cows. Recently, they are attracted by recursive sequences. In each turn, the cows would stand in a line, while John writes two positive numbers