题目描述 Description

已知整数x,y满足如下面的条件:

ax+by+c = 0

p<=x<=q

r<=y<=s

求满足这些条件的x,y的个数。

输入描述 Input Description

第一行有一个整数nn<=10),表示有n个任务。n<=10

以下有n行,每行有7个整数,分别为:a,b,c,p,q,r,s。均不超过108。

输出描述 Output Description

n行,第i行是第i个任务的解的个数。

样例输入 Sample Input

2

2 3 -7 0 10 0 10

1 1 1 -10 10 -9 9

样例输出 Sample Output

1

19

#include<iostream>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
ll x,y,a,b,c,g,p,q,r,s;
ll exgcd(ll a,ll b,ll &x,ll &y){
if(b == ){
x = ;
y = ;
return a;
}
ll ans = exgcd(b,a%b,x,y);
ll t = x;
x = y;
y = t - (a/b) * y;
return ans;
}
ll gcd(ll a,ll b){
return b == ? a : gcd(b,a%b);
}
int main(){
int n;
cin>>n;
for(int i = ;i <= n;i++){
cin>>a>>b>>c>>p>>q>>r>>s;
c = -c;
if(a == && b == && c!= ){
cout<<<<endl;
continue;
}
if(q < p || s < r){
cout<<<<endl;
continue;
}
if(a == && b== && c==){
cout<<(q-p+)*(s-r+)<<endl;
continue;
}
g = exgcd(a,b,x,y);
x *= c/g;
y *= c/g;
if(x*a + y*b != c){
cout<<<<endl;
continue;
}
ll plusx = b / g,plusy = a / g,dx,dy;
ll acc = ;
bool fu;
if(plusx < ) fu = true;
else fu = false;
while(x < p){
if(plusx == ) break;
if(!fu) x+=plusx,y-=plusy;
else x-=plusx,y+=plusy;
}
while(x > q){
if(plusx == ) break;
if(!fu) x-= plusx,y+=plusy;
else x+=plusx,y-=plusy;
}
if(x >= p && x <= q && y >= r && y <= s)acc++;
dx = x;
dy = y;
while(dx >= p){
if(plusx == ) break;
if(!fu){
dx -= plusx;
dy += plusy;
}else{
dx += plusx;
dy -= plusy;
}
if(dx >= p && dx <= q && dy >= r && dy <= s) acc++;
}
dx = x;
dy = y;
while(dx <= q){
if(plusx == ) break;
if(!fu){
dx += plusx;
dy -= plusy;
}else{
dx -= plusx;
dy += plusy;
}
if(dx >= p && dx <= q && dy >= r && dy <= s) acc++;
}
cout<<acc<<endl;
}
return ;
}

codevs1213 解的个数的更多相关文章

  1. 解的个数(codevs 1213)

    题目描述 Description 已知整数x,y满足如下面的条件: ax+by+c = 0 p<=x<=q r<=y<=s 求满足这些条件的x,y的个数. 输入描述 Input ...

  2. 扩展gcd codevs 1213 解的个数

    codevs 1213 解的个数  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 已知整数x,y满足如下面的条件: ax+by ...

  3. n元线性方程非负整数解的个数问题

    设方程x1+x2+x3+...+xn = m(m是常数) 这个方程的非负整数解的个数有(m+n-1)!/((n-1)!m!),也就是C(n+m-1,m). 具体解释就是m个1和n-1个0做重集的全排列 ...

  4. codevs 1213 解的个数

    1213 解的个数 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold       题目描述 Description 已知整数x,y满足如下面的条件: ax+by+c = ...

  5. Codevs 1213 解的个数(exgcd)

    1213 解的个数 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 已知整数x,y满足如下面的条件: ax+by+c=0 p< ...

  6. P1098 方程解的个数

    题目描述 给出一个正整数N,请你求出x+y+z=N这个方程的正整数解的组数(1<=x<=y<=z<1000).其中,1<=x<=y<=z<=N . 输入 ...

  7. HDU1573 线性同余方程(解的个数)

    X问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  8. 计蒜客 18487.Divisions-大数的所有因子个数-Miller_Rabin+Pollard_rho-超快的(大数质因解+因子个数求解公式) (German Collegiate Programming Contest 2015 ACM-ICPC Asia Training League 暑假第一阶段第三场 F)

    这一场两个和大数有关的题目,都用到了米勒拉宾算法,有点东西,备忘一下. 题目传送门 F. Divisions 传送门 这个题是求一个数的所有因子个数,但是数据比较大,1e18,所以是大数的题目,正常的 ...

  9. hdu4282 x^z+y^z+x*y*z=k 解的个数

    题意:      x^z + y^z + x*y*z = k; (x < y ,z > 1),给你一个k问有多少组解. 思路:        暴力枚举z,y,然后二分查找x.注意一点最好用 ...

随机推荐

  1. VBScript+SCR+NetApi+Accoreconsole 批处理dwg文件

    继上次powershell运行accoreconsole(https://www.cnblogs.com/NanShengBlogs/p/10981687.html)的研究之后又觉得不是很合适,毕竟p ...

  2. webservice 权限控制

    webservice 如何限制访问,权限控制?1.服务器端总是要input消息必须携带用户名.密码信息 如果不用cxf框架,SOAP消息(xml片段)的生成.解析都是有程序员负责 2.拦截器 为了让程 ...

  3. 【日常总结】scrollTop、scrollHeight与clientHeight的重要关系

    前言 在做一个需求的时候涉及懒加载,百度了一下,发现scrollTop.scrollHeight与clientHeight这三个元素起到了重要作用,以前做过类似demo但是时间过太久忘记了,现在已经完 ...

  4. Spring.Net学习笔记(1)-容器的使用

    一.下载地址: http://www.springframework.net/download.html 二.相关程序集 Spring.Net容器定义在程序集Spring.Core.dll中,它依赖于 ...

  5. Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

    一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  6. 伪装IP进行投票

    伪装IP投票说明 1,目的 在访问网页链接进行投票时,网站往往对同一个IP的投票次数进行了限制,无法连续重复投票.为此可以使用“火狐浏览器+IP修改插件”,通过人为设置浏览器IP,绕过网站IP检查,可 ...

  7. vue2.0路由(跳转和传参)经典介绍

    声明式 <router-link :to="...">编程式router.push(...) router.push('home')                 / ...

  8. Android Studio 入门 Hello World

    Android Studio 入门 Hello World Gavin要加油 1.5k 6月22日 发布 推荐 1 推荐 收藏 17 收藏,2.1k 浏览 引言 前两天开始学习android开发,本来 ...

  9. Handling unhandled exceptions and signals

    there are two ways to catch otherwise uncaught conditions that will lead to a crash: Use the functio ...

  10. Eclipse报错:Setting property 'source' to 'org.eclipse.jst.jee.server:xx' did not find a matching property

    Shell代码   警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to ' ...