博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[高精度][规律][二分] Jzoj P4213 对你的爱深不见底
阅读量:5304 次
发布时间:2019-06-14

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

Description

出乎意料的是,幸运E 的小R 居然赢了那个游戏。现在欣喜万分的小R 想要写一张明信片给小Y,但是因为小R 非常羞涩,所以他打算采用一些比较神奇的方式来表达。
他定义了一些字符串,s1 = a,s2 = b,si =s_i-1  +  s_i-2  (i >=3)。同时他定义了一个字符串s 的权值为一个最大的i <|s|满足s 长度为i 的前缀等于长度为i 的后缀。比如字符串aba 的权值就是1,abab 的权值就是2,aaaa 的权值就是3。
现在小R 在明信片上给出了两个数n 和m,他想要告诉小Y 的信息是字符串sn 的前m个字符组成的字符串的权值。你可以帮小Y 计算一下吗?
 

Input

第一行输入一个正整数T 表示数据组数。
对于每组数据,第一行是两个整数n;m。保证1<= m <=|sn|

Output

对于每组数据,输出一个整数表示答案。答案可能很大,你只需要输出模258280327 后的答案。
 

Sample Input

24 35 5

Sample Output

12
 

Data Constraint

对于30% 的数据,n <= 20
对于60% 的数据,n <= 60
对于100% 的数据,n <= 10^3,1 <= T <= 100

 

题解

  • 这就是道打表找规律的题目,至于怎么证明有没有大佬教一教
  • 找到第一个斐波那契数列长度n大于m+1,答案就是 m-|n-2|
  • 然后就要上高精度了,因为我们还要找到n,打个二分

代码

1 #include 
2 #include
3 #include
4 #define mo 258280327 5 #define N 1010 6 using namespace std; 7 struct edge{ int a[1005],l; }f[N],p; 8 int T,n,P[N]; 9 void add(edge &x,edge &y,edge &k)10 {11 for (int i=1;i
'9');29 P[p.l=1]=ch-48; while (ch=getchar(),ch>='0'&&ch<='9') P[++p.l]=ch-48;30 for (int i=p.l;i;i--) p.a[p.l-i+1]=P[i]; p.a[1]++;31 for (int i=1;i<=p.l;i++) p.a[i+1]+=p.a[i]/10,p.a[i]%=10;32 if (p.a[p.l+1]) p.l++;33 int l=1,r=1001,q=0;34 while (l<=r)35 {36 int mid=l+r>>1;37 if (check(p,f[mid])) q=mid,r=mid-1; else l=mid+1;38 }39 q-=2,p.a[1]--;40 for (int i=1;i<=f[q].l;i++)41 {42 p.a[i]-=f[q].a[i];43 if (p.a[i]<0) p.a[i]+=10,p.a[i+1]--;44 }45 while (p.l>1&&!p.a[p.l]) p.l--;46 q=0; for (int i=p.l;i;i--) q=(q*10ll+p.a[i])%mo;47 printf("%d\n",q);48 }49 }

 

转载于:https://www.cnblogs.com/Comfortable/p/10316777.html

你可能感兴趣的文章
脚本删除文件下的文件
查看>>
实用拜占庭容错算法PBFT
查看>>
java b组 小计算器,简单计算器..
查看>>
java的二叉树树一层层输出,Java构造二叉树、树形结构先序遍历、中序遍历、后序遍历...
查看>>
php libevent 定时器,PHP 使用pcntl和libevent实现Timer功能
查看>>
php仿阿里巴巴,php实现的仿阿里巴巴实现同类产品翻页
查看>>
Node 中异常收集与监控
查看>>
七丶Python字典
查看>>
Excel-基本操作
查看>>
面对问题,如何去分析?(分析套路)
查看>>
Excel-逻辑函数
查看>>
面对问题,如何去分析?(日报问题)
查看>>
数据分析-业务知识
查看>>
nodejs vs python
查看>>
poj-1410 Intersection
查看>>
Java多线程基础(一)
查看>>
TCP粘包拆包问题
查看>>
Java中Runnable和Thread的区别
查看>>
SQL Server中利用正则表达式替换字符串
查看>>
POJ 1015 Jury Compromise(双塔dp)
查看>>