作为CNCS的半壁江山,狗哥常常在宇宙中心邵阳眺望黄浦江,夜晚的星空总是迷人,有时候还能见到彗星滑落。

狗哥是幸运的,他在两秒钟内看到了十七颗彗星划过天际,作为打ACM的学者,自然不会有「稳定-1」情况。他开始研究彗星运动的轨迹,发现他们都遵照斐波那契螺旋线在运动着。

尤里卡!狗哥觉得这就是找寻「生命,宇宙和一切的终极答案」的精要所在,但是怎么表示呢?狗哥觉得求取斐波那契螺旋线经过的一个个方格的面积之和就是公式的表现。

例如下图,螺旋线每划过一个方格,都转过了四分之一圈。如果我们以四分之一圈为单位,那么我们用类似带分数的形式表示螺旋线转动的起点和终点。例如,0+0 到 0 + 1 意即从第一个方格转到第二个方格,划过了前两个方格,他们的面积之和为2(1+1)。同理,0+0 到 1+0 划过了前五个方格,他们的面积之和为40(1+1+4+9+25)。

但是聪明的狗哥需要一个程序去获得指定范围内的螺旋线面积之和,狗哥给了你一首「希望之花」的时间,而他需要利用这个时间去打出四暗刻单骑。如果你能完成这个程序,狗哥会封你为格拉摩根伯爵

Input

不定组数据。

首先输入一个整数Q,代表狗哥询问次数。

接下来Q行,每行四个整数a,b,c,d,代表狗哥想求 a+b 到 c+d 之间的螺旋线面积之和。

1<= Q <= 10000

0<= a,c <= 10000

0 <= b,d <= 3

结果对192600817取模。

Output

一个数字,表示螺旋线面积之和。


Sample Input
4
0 0 0 1
0 0 1 0
1 2 2 1
1 1 0 3
4
0 0 0 1
0 0 1 0
1 2 2 1
1 1 0 3Sample Output
2
40
4791
98
2
40
4791
98

思路:每个位置的值都是斐波那契数列的平方,输入a,b,c,d;那么将a 作为4*a,c 作为4*c 那么初始就为4*a+b+1, 到 4*c+d+1;

预处理一下就好了,由于我先做的最后一题打出来了矩阵快速幂的模板,所以我是用矩阵快速幂做的 ,其实完全没必要。

代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod=192600817;
vector <ll>vec;
struct Marx
{ll a[2][2];
}f,it,base;
Marx mul(Marx x,Marx y)
{Marx ret;memset(ret.a,0,sizeof(ret.a));for(int i=0;i<2;i++){for(int k=0;k<2;k++){for(int j=0;j<2;j++){ret.a[i][j]=(ret.a[i][j]+(x.a[i][k]*y.a[k][j])%mod)%mod;}}}return ret;
}
Marx ksm(ll n)
{if(!n)return it;Marx tmp=ksm(n>>1);if(n&1)return mul(mul(tmp,tmp),base);return mul(tmp,tmp);
}
void init()
{base.a[0][0]=base.a[0][1]=base.a[1][0]=1;it.a[0][0]=it.a[1][1]=1;f.a[0][0]=f.a[1][0]=1;int y=2;Marx kk;vec.push_back(0);vec.push_back(1);vec.push_back(2);memset(kk.a,0,sizeof(kk.a));for(int i=3;i<=50005;i++){kk=mul(ksm(i-2),f);ll ans=kk.a[0][0];ans=((ans%mod*ans%mod)%mod+vec[i-1])%mod;vec.push_back(ans);}
}
int main()
{int t;init();while(scanf("%d",&t)!=EOF){while(t--){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);int x1=a*4+b+1;int x2=c*4+d+1;if(x1>x2)swap(x1,x2);ll ans=0;printf("%lld\n",(vec[x2]-vec[x1-1]+mod)%mod);}}return 0;
}

人类史上最大最好的希望事件 字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛相关推荐

  1. “字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛 1,2,3,4,5,7,8,9,10

    1001: hzy 和zsl 的生存挑战 Problem Description zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的大魔王hyz,大魔王hyz设置了这样的一个挑战: zsl 和hzy ...

  2. “字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛

    a.hzy 和zsl 的生存挑战 思路:看见"假设他们都足够机智"就够了,全输出1.00就ac #include<bits/stdc++.h> #define INF ...

  3. 字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛

    题目链接 传送门 简单数学题 题目 思路 前置知识: \[ \sum_{i=m}^{n}C_{i}^{m}=C_{n+1}^{m+1} \] 此题化简: \[ \begin{aligned} & ...

  4. 人类史上最大最好的希望事件

    http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1002&cid=843 题解:斐波那契数列+前缀和 /* *@Autho ...

  5. 【蓝桥杯Web】第十四届蓝桥杯Web模拟赛 3 期 | 精品题解(上)

  6. 文远知行COO张力离职;天翼云宣布进军国际市场;百家云发布AIGC新品;深兰科技推出大语言模型SaaS平台丨每日大事件...

    ‍ ‍数据智能产业创新服务媒体 --聚焦数智 · 改变商业 企业动态 文远知行COO张力离职 文远知行COO张力日前在个人社交平台发布疑似离职的相关动态.对此,文远知行方面今日回应称:"由于 ...

  7. 2021年秋招算法岗面经-无人驾驶领域\slam\点云方向-百度\字节\旷视\商汤\文远知行\美团\高德\地平线\华为

    (欢迎大家关注我的微信公众号"机器学习面试基地",之后将在公众号上持续记录本人从非科班转到算法路上的学习心得.笔经面经.心得体会.未来的重点也会主要放在机器学习面试上!) 更多无人 ...

  8. 2022第十四届环泰山T60线上大徒步活动线下启动仪式圆满结束

    2022年12月3日,第十四届环泰山T60线上大徒步活动线下启动仪式在泰山脚下举行.今年因为疫情的原因,为了保障大家的安全,第十四届环泰山T60大徒步活动选择线上举行.本次线上活动由泰安市一五四五户外 ...

  9. 第十四届全国大学生信息安全竞赛-线上赛Writeup

    文章目录 场景实操开场卷 WEB easy_sql easy_source MISC tiny traffic running_pixel 场景实操二阶卷 WEB middle_source MISC ...

最新文章

  1. 2018 年最值得期待的学术进展——致人工智能研究者们的年终总结
  2. wsl安装配置vscode(亲测有用)
  3. Android开源SIP协议栈比较
  4. C# 调用人脸识别 虹软ArcFace2.0实例
  5. REST架构下,浏览器怎么发送put与delete请求?
  6. 医疗:ICU(10)
  7. 汇编学习笔记(二):转移指令
  8. 两个mysql表对比_mysql实用技巧之比较两个表是否有不同数据的方法分析
  9. Exchange 2010 UM角色安装后无法启动服务,错误 1000,1001
  10. 媒体查询以及flexbox,响应式图片
  11. 前期易语言编程作品收录|赤壁盗号|
  12. idea安装svn插件
  13. 制作简单启动型 U 盘_附制作工具下载
  14. XeCJK 使用系统字体
  15. 宿命论,三年前的演讲稿!,怀念那些力不从心的光景。。
  16. codevs1515 瞎搞+Lucas
  17. android 自定义剪裁,Android自定义View实现照片裁剪框与照片裁剪功能
  18. 【排序算法】图解冒泡排序(多图+解决两种无效比较问题)
  19. MySQL数据库锁表,如何释放锁
  20. DNS安全(一)DNS缓存投毒与防护

热门文章

  1. 季报(2020.11-2021.1)
  2. Leetcode题目练习总结(持续更新......)
  3. 2000B题钢管订购和运输
  4. linux系统开机过程
  5. oracle时间判断
  6. 格行sp790-v13的随身WiFi板子怎么切卡上网同样也是高通410
  7. 新库上线 | CnOpenData中国工业企业信息变更数据
  8. WPF界面控件Telerik UI for WPF初级入门教程 - 入门指南
  9. 移动硬盘文件或目录损坏且无法读取?分享恢复数据的方法
  10. LabVIEW系列——LabVIEW下调用DLL动态链接库