博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
长春理工大学第十四届程序设计竞赛(重现赛)F
阅读量:4620 次
发布时间:2019-06-09

本文共 817 字,大约阅读时间需要 2 分钟。

F. Successione di Fixoracci

题目链接:

 

题目:

动态规划(Dynamic programming,简称dp)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。例如,假设小x一步能爬1层或2层台阶,求小x爬n层台阶共有几种方法,就可以用dp计算:设Fi代表小x爬i层台阶共有几种方法,则Fi=Fi−1+Fi−2。

小x是练习时长两年半的acm练习生,喜欢口胡、dp、线段树。妙就妙在,不管是什么题目,无论多难,小x都能用他喜欢的三样东西AC。
你可能不相信,但其实他口胡了一个定理:所有题目,都可以转化成在x数列上的操作。只要先dp出题目对应的x数列,再用线段树随便维护一下,就可以过了。以下给出x数列的定义:
T0=a
T1=b
Tn=Tn−1⊕Tn−2(n≥2)
其中⊕为异或运算。
现在小x已经用dp求出了a和b的值。现在你只要求出Tn
是多少,就可以通过这道题目。
输入描述:
输入三个正整数a,b,n,含义见题目描述。
其中0≤a,b,n≤1018
输出描述:
输出一个整数Tn
,代表前两项为a,b的x数列在下标为n处的值。
示例1
输入
1 2 2
输出
3

思路

101  110 ——>011——>101——>110——>011......

会发现异或值出现了循环节3

多画几个就出来了

 

#include
using namespace std;typedef long long ll;int main(){ ll a,b,n; cin>>a>>b>>n; ll cc[10]; cc[0]=a; cc[1]=b; cc[2]=a^b; cout<
<

 

转载于:https://www.cnblogs.com/Vampire6/p/10992434.html

你可能感兴趣的文章
[Cordova] 无法显示Alert视窗
查看>>
借助过度区选择阈值
查看>>
价格正则
查看>>
对for 循环的初认识
查看>>
评论列表显示及排序,个人中心显示
查看>>
JavaWeb学习笔记总结 目录篇
查看>>
C#根据html生成PDF
查看>>
Neutron SDN 手动实现手册
查看>>
linux下core文件调试方法
查看>>
20个创意404错误页面设计的启示
查看>>
DBCP连接池配置参数说明
查看>>
C语言实现四舍五入
查看>>
SSH创建公钥实现无密码操作失败原因
查看>>
【转】Javascript模块化编程(三):require.js的用法
查看>>
需求规格说明书
查看>>
python mysql 查询返回字典结构
查看>>
mysql 统计sql
查看>>
Java中的抽象类
查看>>
关于Altium Designer的BOM,元件清单
查看>>
使用MongoDB ruby驱动进行简单连接/CRUD/运行命令
查看>>