ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jesus Is Here[递推]2015沈阳online

2019-08-27 22:03:53  阅读:263  来源: 互联网

标签:sum long Jesus a1 a0 num Here online len


题目链接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 }

 

  

标签:sum,long,Jesus,a1,a0,num,Here,online,len
来源: https://www.cnblogs.com/xxmlala-fff/p/xxmlala-JesusIsHere.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有