Doom

比赛的时候没有做出来,补题。

题意:题目定义了一个斐波那契串

1) fib1=b;

2) fib2=a;

3) fibi=fibi-1fibi-2,i>2

举例,fib3=ab,fib4=aba,fib5=abaab

我们暂时将字符串sisi+1si+2si+3…sj记做s[i:j]

求满足s[1:i]=s[m-i+1:m](i<m)的i的最大值,记做LBorderm

例如m=5时,LBorderm=2,因为abaab中前两个和末尾两个相同,即黑色部分

解题思路:

一看到题目的数据这么大,理所当然就会想到必定存在规律,先列出几项观察一下

m  LBorderm  D-value(差值)

1          0               1

2          0               2

3          1               2

4          1               3

5          2               3

6          3               3

7          2               5

8          3               5

9          4               5

10        5               5

11        6               5

12        4               8

13        5               8

14        6               8

由上述例子可知,m与结果之间的差值是斐波那契数,仔细观察一下,便会得出这样一个结论:

当我们找到第一个i满足m+1<|fibi|时,LBorderm=m-|fibi-2|(|fibi-2|表示斐波那契串fibi-2的长度)

 1 import java.util.*;
 2 import java.io.*;
 3 import java.math.*;
 4
 5 public class Main {
 6     public static Scanner cin = new Scanner(new BufferedInputStream(System.in));
 7     public final static int MS = 1005;
 8     public final static BigInteger MOD = new BigInteger("258280327");
 9     public final static BigInteger[] fib = new BigInteger[MS];
10     static {
11         fib[1] = BigInteger.ONE;
12         fib[2] = new BigInteger("2");
13         for(int i = 3; i < MS; i++)
14             fib[i] = fib[i - 1].add(fib[i - 2]);
15     }
16     public static void main(String[] args) {
17         int T, n;
18         BigInteger m;
19         T = cin.nextInt();
20         while (T-- > 0) {
21             n = cin.nextInt();
22             m = cin.nextBigInteger();
23             m.add(BigInteger.ONE);
24             for (int i = 1; i < MS; i++) {
25                 if (fib[i].compareTo(m) > 0) {
26                     System.out.println(m.subtract(fib[i - 2]).mod(MOD));
27                     break;
28                 }
29             }
30         }
31     }
32 }

转载于:https://www.cnblogs.com/hutaishi/p/4705902.html

Doom 规律+大数相关推荐

  1. 2018 ICPC 焦作区域赛 Resistors in Parallel(找规律+大数)

    传送门 题目大意 给出电阻的并联公式,规定一个含有平方因子的数的1R=0\frac{1}{R}=0R1​=0.定义一个数的阻值为其所有的因子阻值并联求出的结果,问nnn以内并联后的最大的阻值是多少,输 ...

  2. 2018 焦作 onsite E - Resistors in Parallel(数学或规律+大数)

    题目链接:http://codeforces.com/gym/102028/problem/EE. Resistors in Parallel time limit per test 2.0 s me ...

  3. Resistors in Parallel(找规律+大数)

    题意:https://codeforces.com/group/ikIh7rsWAl/contest/254825/problem/E 给你一个n,计算n / Sigma(1~n)的d(是n的只出现一 ...

  4. Icpc 焦作站现场赛 E 题解

    这道题当时做的时候推不出来,晚上去找题解,不是Java,就是Python,对于只会c/c++的萌新,哎,难受.硬着头皮看了好久,大概懂了思路,第二天自己把前天的又推了一遍发现是自己计算错误的问题,要被 ...

  5. 2019爪哇部落第十届新生选拔赛 题解

    博采众长,共同进步 A.空军十一号 阅读题 筛选信息 送气球 B.小爪的子阵和 贪心 最大连续字段和的二维升级版 C.爪爪逃逸 模拟+思维 D.小爪的三视图 模拟 立方体 暴力+思维 E.爪哇的路 最 ...

  6. 4. linux调用文件计算阶乘前n项和_用一道有趣的小题谈谈性能优化--求阶乘和的末6位

    此题来源:算法竞赛入门经典(第2版) P21 /** * 输入n, 计算 S = 1! + 2! + ... n! 的末六位(不含前导0).* n < 10^6* n! 表示阶乘, 是前n个正整 ...

  7. UVA11774 Doom‘s Day【数学规律+GCD】

    We all know about the legend of tower of Hanoi. It is said that the world will end after finishing t ...

  8. 2018焦作ICPC E - Resistors in Parallel(规律+Java大数)

    2018焦作ICPC E - Resistors in Parallel题目链接 Time limit  2000 ms Memory limit  1048576 kB In this physic ...

  9. ACM-ICPC Jiaozuo Onsite 2018 Resistors in Parallel (思维+java大数+找规律)

    题目来源 ACM-ICPC Jiaozuo Onsite 2018 题目粘贴过来有点变化,既然来了肯定见过原题~~嘻嘻~~ In this physics problem, what we are c ...

最新文章

  1. 新浪短网址生成java_如何生成t.cn的短链接?新浪短网址怎么生成的?
  2. 《图像处理知识》宝藏总纲
  3. 用c语言运行Linux命令,使用execv(C语言)从linux命令提示符运行命令
  4. 贪吃蛇代码c 语言,刚学C语言,想写一个贪吃蛇的代码
  5. NodeMCU学习(四):与其他设备通信
  6. android可以root的版本,Android8.0以上系统ROOT时,Magisk框架替代SpuerSU
  7. STM32PCB原理图
  8. java计算税后工资switch语句_计算个人所得税!switch语句
  9. android 指纹存储密码,Android指纹登录/指纹支付简述
  10. 我有一个梦,叫“禾下乘凉梦“!
  11. 在视图列中显示文档所有读者和作者
  12. 基于springboot 支付宝app端支付,可用于uni-app使用
  13. ⌨RK61键盘使用方法
  14. 长沙银河计算机学校,长沙银河中等职业学校办学特色
  15. android 上最强的计算器,史上最强超级计算器发布!完爆科学计算器
  16. mysql 1308_Mysql恢复数据报ERROR1308:LEAVEwithnomatchinglabel_MySQL
  17. Ambiguous handler methods mapped for 'xxx'的解决办法
  18. linux cat命令,Linux cat命令使用方法详解
  19. 应用程序无法正常启动(0xc0000142)。请单击“确定”关闭应用程序
  20. 头歌-信息安全-病毒分析与防御

热门文章

  1. Scala函数简化写法
  2. 【视频】vue组件之$emit父子组件间值的传递
  3. 解决oracle中文数据乱码的问题
  4. MySQL repeat复制函数示例
  5. aspose.cells html excel导出,C#使用Aspose.Cells导出Excel简单实现
  6. 通过IDEA查看jar包中的依赖关系
  7. 《剑指offer》——04. 二维数组中的查找——暴力法、线性查找——java实现
  8. ajax注册表单用户名实时验证,Ajax注册表单用户名实时验证..doc
  9. python os模块system_python 中 os.system 的本质 | 编程知识2
  10. stm32之实时时钟RTC(掉电计时保持、秒中断、闹钟中断、溢出中断)