JZOJ 3526. 【NOIP2013模拟11.7A组】不等式(solve)
来源:互联网 发布:淘宝卖的银壶是真的吗 编辑:程序博客网 时间:2024/06/05 04:40
3526. 【NOIP2013模拟11.7A组】不等式(solve)
(File IO): input:solve.in output:solve.out
Time Limits: 1000 ms Memory Limits: 262144 KB
Description
小z热衷于数学。
今天数学课的内容是解不等式:L<=S*x<=R。小z心想这也太简单了,不禁陷入了深深的思考:假如已知L、R、S、M,满足L<=(S*x)mod M<=R的最小正整数x该怎么求呢?
Input
第一行包含一个整数T,表示数据组数,接下来是T行,每行为四个正整数M、S、L、R。
Output
对于每组数据,输出满足要求的x值,若不存在,输出-1。
Sample Input
1
5 4 2 3
Sample Output
2
Data Constraint
30%的数据中保证有解并且答案小于等于10^6;
另外20%的数据中保证L=R;
100%的数据中T<=100,M、S、L、R<=10^9。
题解
这道题网上有很多一样的题解,看了好久才明白,其实这题就是用类欧思想
题目所给的式子是
显然,若存在一个
如果不存在,转化题目那条式子
若能求出
然后我们就可以用类欧几里得来求解了
之所以叫类欧,是因为欧几里得算法是用
这题也类似
定义
于是
边界条件好多,具体可以看代码
代码
#include<cstdio>long long dfs(long m,long s,long l,long r){ long long x,y; if(l==0)return 0; if(l>=m||l>r||s%m==0)return -1; s%=m; x=((l-1)/s)+1; if(x*s<=r) return x; y=dfs(s,m,(-r)%s+s,(-l)%s+s); if(y==-1)return -1; x=(r+m*y)/s; if(s*x-m*y>=l)return (x%m+m)%m; else return -1;}int main(){ long tot,m,s,l,r; freopen("solve.in","r",stdin); freopen("solve.out","w",stdout); scanf("%ld",&tot); while(tot--){ scanf("%ld%ld%ld%ld",&m,&s,&l,&r); if(r>=m)r=m-1; printf("%lld\n",dfs(m,s,l,r)); } return 0;}
阅读全文
0 0
- JZOJ 3526. 【NOIP2013模拟11.7A组】不等式(solve)
- jzoj. 3526. 【NOIP2013模拟11.7A组】不等式(solve)
- [jzoj]3526. 【NOIP2013模拟11.7A组】不等式(solve)(类欧几里得)
- 【NOIP2013模拟11.7A组】不等式(solve)
- JZOJ 3506. 【NOIP2013模拟11.4A组】善良的精灵
- JZOJ 3506. 【NOIP2013模拟11.4A组】善良的精灵
- jzoj. 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
- JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
- jzoj. 3505. 【NOIP2013模拟11.4A组】积木(brick)
- JZOJ 3505. 【NOIP2013模拟11.4A组】积木(brick)
- jzoj. 3523. 【NOIP2013模拟11.7A组】JIH的玩偶(tree)
- jzoj 3520. 【NOIP2013模拟11.7B组】原根(math)
- jzoj. 3522. 【NOIP2013模拟11.7B组】迷宫花园(maze)
- jzoj. 3521. 【NOIP2013模拟11.7B组】道路覆盖(cover)
- jzoj. 3519. 【NOIP2013模拟11.6A组】灵能矩阵(pylon)
- [jzoj]3505. 【NOIP2013模拟11.4A组】积木(brick) (排列组合vsDP)
- jzoj[3521]. 【NOIP2013模拟11.7B组】道路覆盖(cover) (状压DP)
- JZOJ-senior-3502. 【NOIP2013模拟11.4B组】方格游戏
- 斐波那契数列和青蛙跳台阶的问题
- C++的回调函数
- Python类的继承的练习
- Linux安装GO语言环境
- 【响应式Web设计】读书笔记
- JZOJ 3526. 【NOIP2013模拟11.7A组】不等式(solve)
- 临时和永久关闭firewalld与selinux
- HDU5770 Treasure
- android加载so问题
- Spark快速大数据分析系列值第六章Spark编程进阶
- 安卓——WIFI列表以及点击事件
- 1318:Incorrect number of arguments for PROCEDURE worker.wage_alterdata; expected 7, got 6 [ SQL语句 ]
- windows下python2.7和3.5共存
- “玲珑杯”ACM比赛 Round #18 C -- 图论你先敲完模板【Dp】