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- ...
随机推荐
- C#中的Contains与IndexOf的区别
C#中要判断一个字符串是否包含另一个字符串,常用的两种方法是 str.Contains和str.IndexOf 这两个方法的区别是: Contains是找指定字符串是否包含一个字串,返回值的bo ...
- vue教程(三)-slot\keep-alive的使用
一.slot其实就是填坑操作,父组件传递dom结构,是vue提供的一种内置组件(组件知识请查看上篇博客内容) 写法:<slot></slot> 例子: var child = ...
- python课堂整理14---函数式编程
一.分类 当下主流的编程方法大体分为三类 1. 面向过程 2. 函数式 3. 面向对象 二.函数式编程:函数式 = 编程语言定义的函数 + 数学意义的函数 特征:1. 不可变数据 2. 第一类对象 3 ...
- Go语言圣经习题练习_1.7. Web服务
练习 1.12: 修改Lissajour服务,从URL读取变量,比如你可以访问 http://localhost:8000/?cycles=20 这个URL,这样访问可以将程序里的cycles默认的5 ...
- Jibx 只绑定需要的字段
栗子: binding.xml <?xml version="1.0" encoding="UTF-8"?> <binding&g ...
- 二、PyTorch 入门实战—Variable(转)
目录 一.概念 二.Variable的创建和使用 三.标量求导计算图 四.矩阵求导计算图 五.Variable放到GPU上执行 六.Variable转Numpy与Numpy转Variable 七.Va ...
- RabbitMQ搭建单机及集群
1,基本环境配置 hosts 文件 免密登录 2,访问官网 https://www.rabbitmq.com/download.html 3, 4,安装依赖 yum -y install make g ...
- 在ABP中灵活使用AutoMapper
demo地址:ABP.WindowsService 该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. AutoMapper简介 Auto ...
- C# Winfrom 自定义控件——带图片的TextBox
效果: 描述: 本来是想用GDI在左边画图片上去的,文本是居中对齐,如果文本是左对齐,文本会把图片遮住控件长这样: 但这样做,输入框在获取焦点时候,会把图片挡住就像这样: 输入完成之后图片就会显示完整 ...
- JAVA并发编程之倒计数器CountDownLatch
CountDownLatch 的使用场景:在主线程中开启多线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后汇总返回结果. 我把源码中的英文注释全部删除,写上自己的注释.就剩下 70 行不到的 ...