2017 ACM/ICPC Asia Regional Shenyang Online number number number
题意:求n个斐波那契数列组合都无法得到的最小数字
解法:
1 我们先暴力的求出前面几个数字
2 然后再暴力的求递推
3 接着矩阵快速幂(没写错吧?)
/*#include<bits/stdc++.h>
using namespace std;
long long x[50];
map<long long,int>Mp;
void dfs(int pos,long long sum,int cnt,int n){
if(cnt==n){
Mp[sum]=1;
return;
}
if(cnt>n){
return;
}
for(int i=pos;i<=20;i++){
dfs(i+1,sum+x[i],cnt+1,n);
}
}
int main(){
x[0]=0;
x[1]=1;
for(int i=2;i<=21;i++){
x[i]=x[i-1]+x[i-2];
}
for(int i=0;i<=21;i++){
Mp[x[i]]=1;
}
//dfs(0,0,0,3);
for(int i=2;i<=5;i++){ dfs(0,0,0,i);
for(long long j=0;j<=x[21];j++){
if(Mp[j]==0){
cout<<j<<endl;
break;
}
}
}
return 0;
}*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#define mset(a,i) memset(a,i,sizeof(a))
using namespace std;
typedef long long ll;
const int mod=;
struct Mal{
ll x[][];
};
Mal mul(Mal a,Mal b){
Mal c;
memset(c.x,,sizeof(c.x));
for(int i=;i<;i++){
for(int j=;j<;j++){
for(int k=;k<;k++){
c.x[i][j]+=((a.x[i][k]+mod)*(b.x[k][j]+mod))%mod;
c.x[i][j]%=mod;
}
}
}
return c;
}
Mal Qp(int n){
Mal a,b;
memset(a.x,,sizeof(a.x));
memset(b.x,,sizeof(b.x));
a.x[][]=;
a.x[][]=-;
a.x[][]=;
a.x[][]=;
a.x[][]=;
for(int i=;i<;i++){
b.x[i][i]=;
}
while(n){
if(n&){
b=mul(b,a);
}
a=mul(a,a);
n/=;
}
return b;
}
ll k;
int main(){
while(~scanf("%lld",&k)){
if(k==){
cout<<""<<endl;
continue;
}
if(k==){
cout<<""<<endl;
continue;
}
Mal pos,X;
pos.x[][]=;
pos.x[][]=;
pos.x[][]=;
X=mul(Qp(k-),pos);
ll ans=X.x[][]%mod;
printf("%lld\n",ans);
}
return ;
}
/*
1 2 3 4 5 6 7 8 9 10 11 12
4
12
33
88
232
609
1596
4180
10945
28656
75024
196417
99999999
702476551
9999999
395293026
*/
2017 ACM/ICPC Asia Regional Shenyang Online number number number的更多相关文章
- 2017 ACM/ICPC Asia Regional Shenyang Online spfa+最长路
transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 132768/1 ...
- 2017 ACM/ICPC Asia Regional Shenyang Online:number number number hdu 6198【矩阵快速幂】
Problem Description We define a sequence F: ⋅ F0=0,F1=1;⋅ Fn=Fn−1+Fn−2 (n≥2). Give you an integer k, ...
- 2017 ACM/ICPC Asia Regional Shenyang Online E number number number 题解
分析: 当n=1时ans=4=f(5)-1; n=2,ans=12=f(7)-1; n=3,ans=33=f(9)-1; 于是大胆猜想ans=f(2*k+3)-1. 之后用矩阵快速幂求解f(n)即可, ...
- 2017 ACM/ICPC Asia Regional Shenyang Online(部分题解)
HDU 6197 array array array 题意 输入n和k,表示输入n个整数和可以擦除的次数k,如果至多擦除k次能是的数组中的序列是不上升或者是不下降序列,就是魔力数组,否则不是. 解题思 ...
- 2017 ACM/ICPC Asia Regional Shenyang Online cable cable cable
Problem Description Connecting the display screen and signal sources which produce different color s ...
- 2017 ACM/ICPC Asia Regional Shenyang Online
cable cable cable Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 6205(尺取法)2017 ACM/ICPC Asia Regional Shenyang Online
题目链接 emmmm...思路是群里群巨聊天讲这题是用尺取法.....emmm然后就没难度了,不过时间上3000多,有点.....盗了个低配本的读入挂发现就降到2800左右, 翻了下,发现神犇Clar ...
- HDU 6198(2017 ACM/ICPC Asia Regional Shenyang Online)
思路:找规律发现这个数是斐波那契第2*k+3项-1,数据较大矩阵快速幂搞定. 快速幂入门第一题QAQ #include <stdio.h> #include <stdlib.h& ...
- 2017 ACM/ICPC Asia Regional Shenyang Online array array array
2017-09-15 21:05:41 writer:pprp 给出一个序列问能否去掉k的数之后使得整个序列不是递增也不是递减的 先求出LIS,然后倒序求出最长递减子序列长度,然后判断去k的数后长度是 ...
随机推荐
- JS通过经纬度计算两个地方的距离
1 主要原理: Lat1 Lung1 表示A点纬度和经度,Lat2 Lung2 表示B点纬度和经度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung2 为两点经度之差: 63 ...
- 文件上传框的美化+预览+ajax
1.文件上传基本写法: <input type="file" name="" id="" value="" /&g ...
- PG degraded实验
1. 创建一个文件,并把该文件作为对象放到集群中: [root@node1 ~]# echo "this is test! " >>test.txt [root@nod ...
- [51nod1247]可能的路径(思维题)
题意:给定(a,b),(x,y) ,(a,b)可以通向(a-b,b) (a+b,b) (a,a+b) (a,a-b) 求能否到达(x,y) 解题关键:类似于更相减损,变换过程中gcd是一样的. #i ...
- C++经典题目:有n个整数,使前面各数顺序向后移动m个位置
问题描述: 有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前m个数. 程序代码: #include<iostream> #define MAXLEN 200 using na ...
- 面试题: Spring 框架 Bean的生命周期
[Java面试五]Spring总结以及在面试中的一些问题. 1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本 ...
- R: 缺失值 & 查看变量类型
################################################### 问题:缺失值 18.5.2 有关处理缺失值的各种方法有什么?各自的适用场景. 解决方案: n ...
- jquery事件之事件委托和事件切换
一.事件委托函数: 方法名 说明 语法 (events 事件类型,data数据,handler 事件处理函数,selector 选择器) live 用于为指定元素的一个或多个事件绑定事件处理函数. j ...
- 在Android中使用Protocol Buffers(中篇)
本文来自网易云社区. FlatBuffers 编码原理 FlatBuffers的Java库只提供了如下的4个类: ./com/google/flatbuffers/Constants.java ./c ...
- 深度学习之Keras
Keras简介 Keras是一个高层神经网络API,Keras完全由Python编写而成,使用Tensorflow.Theano及CNTK作为后端. 通过Python脚本查看Keras使用的后端 输出 ...