51nod 1131 数列
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1131
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)
第2 - T + 1行:每行4个数:A, B , X, Y,中间用空格分隔。(1 <= A < B <= 10^18, 1 <= X < Y <= 10^18)
输出共T行,每行1个数,区间[X,Y]中可以由A-B中的整数相加得到的不同整数的数量。
1
8 10 3 20
8
首先要知道,[A,B]所能覆盖的区间是[k*A,k*B],这段区间一直往下走的话总会出现第一次重叠的地方,这时k*A之后的所有数字都可以表示出来了,因为所有的区间都将出现重叠。
证明如下,假设第一次出现重叠是[k*A,k*B],[(k+1)*A,(k+1)*B], 那么有k*A+A<=k*B, ==> k*A+A*2<=k*B+A<=k*B+B ==> (k+2)*A<=(k+1)*B , 显然之后的区间也会重叠。
然后暴力找找,重复时加一下break就好了。 虽然过了但我感觉还是可以卡的如果想的话,比如这组数据
100000000(A) 100000001(B) 1000000000000000000(X) 1000000000000000001(Y) 本机要跑300+ms,如果很多组这个的话肯定T了
#include<bits/stdc++.h>
using namespace std;
#define LL long long
int main()
{
LL A,B,X,Y;
int T,i,j;
cin>>T;
while(T--){
LL res=;
scanf("%lld%lld%lld%lld",&A,&B,&X,&Y);
for(i=;;i++)
{
if(i*A>Y)break;
if((i+)*A<=i*B){
if(i*A<=X) res=Y-X+;
else res+=Y-i*A+;
break;
}
else{
if(i*A>=X&&i*B<=Y) res+=i*B-i*A+;
else if(i*B>=X) res+=i*B-X+;
else if(i*A<=Y) res+=Y-i*A+;
}
}
printf("%lld\n",res);
}
return ;
}
51nod 1131 数列的更多相关文章
- 51Nod——T 1242 斐波那契数列的第N项
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 ...
- 斐波那契数列 51nod
1242 斐波那契数列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) ...
- (矩阵快速幂)51NOD 1242斐波那契数列的第N项
斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, 13, 21, ...
- 51nod 1242 斐波那契数列的第N项
之前一直没敢做矩阵一类的题目 其实还好吧 推荐看一下 : http://www.cnblogs.com/SYCstudio/p/7211050.html 但是后面的斐波那契 推导不是很懂 前面讲的挺 ...
- 51Nod 1242 斐波那契数列的第N项(矩阵快速幂)
#include <iostream> #include <algorithm> using namespace std; typedef long long LL; ; ; ...
- 51nod 1242 斐波那契数列的第N项——数学、矩阵快速幂
普通算法肯定T了,所以怎么算呢?和矩阵有啥关系呢? 打数学符号太费时,就手写了: 所以求Fib(n)就是求矩阵 | 1 1 |n-1 第一行第一列的元素. | 1 0 | 其实学过线代 ...
- bzoj2431:[HAOI2009]逆序对数列
单组数据比51nod的那道题还弱...而且连优化都不用了.. #include<cstdio> #include<cstring> #include<cctype> ...
- 51nod水题记
妈呀51nod已经刷不动了又开始跟bzoj一样总是得看题解了...那么发一下总结吧... 1051:最大子矩阵 #include<cstdio> #include<cstring&g ...
- 51NOD 算法马拉松8
题目戳这里:51NOD算法马拉松8 某天晚上kpm在玩OSU!之余让我看一下B题...然后我就被坑进了51Nod... A.还是01串 水题..怎么乱写应该都可以.记个前缀和然后枚举就行了.时间复杂度 ...
随机推荐
- python并发之IO模型(二)
blocking IO (阻塞IO) 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel就开 ...
- hive bin下的进入beeline 命令行和hive有什么不同?
Hive 0.11中引入的HiveServer2有一个自己的CLI叫Beeline. HiveCLI现在已经过时,与Beeline相比,其缺少多用户.安全和其他与HiveServer2兼容的特性. 从 ...
- android开发 软键盘出现后 防止EditText控件遮挡 总体平移UI
在EditText控件接近底部的情况下 软键盘弹出后会把获得焦点的EditText控件遮挡 无法看到输入信息 防止这种情况发生 就须要设置AndroidManifest.xml的属性 前面的xml信 ...
- [LeetCode-21]Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree. Note: You may assume that ...
- 标准C语言的输入输出流(i/o)方法详解
cppreference.com -> 标准 C I/O ->详细说明 标准 C I/O clearerr 语法: #include <stdio.h> void cleare ...
- iOS 给 ViewController 减负 之 UITableView
今天看了一些博客文章分享了如何给ViewController 瘦身的问题, 其中一个就是tableView. 的确,随着产品迭代,VC里面可能越来越臃肿,有时候真的需要好好进行一次瘦身.可能是参考的博 ...
- iOS 统计项目代码行数
最近去面试 对面的"他" 问我其中一个问题 是 "你的项目代码量是多少?" 当时的确有点蒙圈, 我可以从整个项目打包的角度考虑项目大小,我还真没想过到底我的项目 ...
- 请求静态文件,返回http状态码405,not allowed
昨天在首页加了一个链接,点击这个a标签,会进入http://121.43.68.40/boxpro/template/addsite.pdf,测试环境完全没有问题,上传到正式服务器之后,点击A标签,死 ...
- goseq
goseq是一个R包,用于寻找GO terms,即基因富集分析. GO terms是标准化描述基因或基因产物的词汇,包括三方面,cellular component,molecular funcito ...
- linux+java+webdriver chrome handless无界面启动
网上现有的解决方案要么是windows下的,要么是python的,搞了一天终于解决了,记录如下. 1 下载chrome linux版和对应版本的webdriver,我这里使用的是chrome66和ch ...