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:求余的部分需要特别注意,很容易出错。
详见代码:
#include<bits/stdc++.h> using namespace std;
const long long aha=;
struct ha{
long long len,sum,val,num;
ha(){}
ha(long long x,long long y,long long z,long long p):len(x),sum(y),val(z),num(p){}
};
int t,n;
int main(){
scanf("%d",&t);
for(int Case=;Case<=t;Case++){
scanf("%d",&n);
ha a0(,,,),a1(,,,),a2;
n-=;
while(n--){
a2=ha((a0.len+a1.len)%aha,
((a0.sum+a1.sum)%aha+a0.len*a1.num%aha)%aha,
(((a0.val+a1.val)%aha+(a1.sum+a0.len*a1.num)%aha*a0.num%aha)%aha-a1.num*a0.sum%aha+aha)%aha,
(a0.num+a1.num)%aha);
a0=a1;
a1=a2;
//printf("len=%lld,sum=%lld,val=%lld,num=%lld\n",a2.len,a2.sum,a2.val,a2.num);
}
printf("Case #%d: %lld\n",Case,a2.val);
}
return ;
}
Jesus Is Here[递推]2015沈阳online的更多相关文章
- hdu 5335 Walk Out(bfs+斜行递推) 2015 Multi-University Training Contest 4
题意—— 一个n*m的地图,从左上角走到右下角. 这个地图是一个01串,要求我们行走的路径形成的01串最小. 注意,串中最左端的0全部可以忽略,除非是一个0串,此时输出0. 例: 3 3 001 11 ...
- HDU 5459 Jesus Is Here (递推,组合数学)
有点麻烦的递推,递推的原则:向小的问题方向分解,注意边界. 字符串的递推式为 定义f为Si中的总方案数 首先可以得到 fi=fi-1+fi-2+组合(si-2,si-1) 然后考虑Si-2和Si-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: 8 ...
- HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)
Recursive sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- 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 ...
- HDU 5459 Jesus Is Here(递推)
http://acm.hdu.edu.cn/showproblem.php?pid=5459 题意: S(1) = c,S(2) = ff, S(3) = cff,之后S(i) = S(i-1)+S( ...
- HDU5950 Recursive sequence (矩阵快速幂加速递推) (2016ACM/ICPC亚洲赛区沈阳站 Problem C)
题目链接:传送门 题目: Recursive sequence Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total ...
- HDU 6198 2017沈阳网络赛 线形递推
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6198 题意:给出一个数k,问用k个斐波那契数相加,得不到的数最小是几. 解法:先暴力打表看看有没有规律 ...
- ACM学习历程—SNNUOJ 1116 A Simple Problem(递推 && 逆元 && 组合数学 && 快速幂)(2015陕西省大学生程序设计竞赛K题)
Description Assuming a finite – radius “ball” which is on an N dimension is cut with a “knife” of N- ...
随机推荐
- android在style中使用自定义属性 error: style attribute not found.
异常: Error:(128, 5) error: style attribute 'com.honghui0531.prebiotics.view:attr/item_right_icon_src' ...
- c语言进阶4-有返回值函数
一. 从函数返回 从函数返回就是返回语句的第一个主要用途.在程序中,有两种方法可以终止函数的执行,并返回到调用函数的位置.第一种方法是在函数体中,从第一句一直执行到最后一句,当所有语句 ...
- Linux mysql开启远程访问
默认情况下远程访问会出现 Can't connect to MySQL server on '192.168.10.18′ (10061) 错误是因为,mysql的默认配置为了增强安全性,禁止了非本机 ...
- UnityWebSocket
!!!转载注明:http://www.cnblogs.com/yinlong1991/p/unity_ylwebsocket.html Unity WebSocket 使用 Demo 线上测试地址 h ...
- jQuery 小测试
1.在div元素中,包含了一个<span>元素,通过has选择器获取<div>元素中的<span>元素的语法是? 提示使用has() 答案: $(div:has(s ...
- java连接mysql数据库jdbc
jdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:mysql://localhost:3306/数据库名jdbc.username = rootjd ...
- 基于ReentrantLock的非公平锁理解AQS
AQS AQS概述 AbstractQueuedSynchronizer抽象队列同步器简称AQS,它是实现同步器的基础组件,juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的,这里我 ...
- ubuntu搭建环境
1.终端输入 sudo apt- add-apt-repository ppa:ondrej/php sudo add-apt-repository ppa:ondrej/php sudo apt ...
- 微服务SpringCloud之Spring Cloud Config配置中心Git
微服务以单个接口为颗粒度,一个接口可能就是一个项目,如果每个项目都包含一个配置文件,一个系统可能有几十或上百个小项目组成,那配置文件也会有好多,对后续修改维护也是比较麻烦,就和前面的服务注册一样,服务 ...
- C#:正则表达式类
Regex r = new Regex("abc"); // 定义一个Regex对象实例(Regex r = new Regex("abc", RegexOp ...