题解解的个数

Posted X_OR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解解的个数相关的知识,希望对你有一定的参考价值。

题目描述

已知x,y满足如下条件:ax+by+c=0;x1≤x≤x2;y1≤y≤y2;x,y均为整数。其中:a,b,c,x1,x2,y1,y2都是绝对值不超过106106的整数。求(x,y)的解的个数。

输入输出格式

输入格式:

第一行,一个数n,表示有n个任务,n≤10。

以下有n行,每行为:a,b,c,x1,x2,y1,y2。

输出格式:

有n行,第i行是第i个任务的结果,如果无解则输出0。

输入输出样例

输入样例:
2 
2 3 -7 0 10 0 10 
1 1 1 -10 10 -9 9 
输出样例:
1 
19
这道题硬算枚举x,y是肯定会超时的啦,所以我们可以试着只枚举x,计算出y,再看看计算出的y在不在y1到y2这个范围内
具体程序如下:
#include<cstdio>
#include<iostream>
using namespace std;
long long n,a,b,c,x1,x2,y1,y2,intemp;
long long sum;
int main()
{
    cin>>n;
    for(register int i=1;i<=n;++i)
    {
        sum=0;
        cin>>a>>b>>c>>x1>>x2>>y1>>y2;
        if(a==0&&b==0&&c==0)
        {
            sum=x2-x1+1;
            cout<<sum*(y2-y1+1)<<endl;
            continue;
        }
        for(register int j=x1;j<=x2;++j)
        {
            if(b==0)
            {
                if(-c-a*j==0) sum+=y2-y1+1;
            }
            else
            {
                intemp=(-c-a*j)/b;
                if(a*j+b*intemp+c==0&&(intemp>=y1&&intemp<=y2)) ++sum;
            }
        }
        cout<<sum<<endl;
    }
} 

 


以上是关于题解解的个数的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript笔试题(js高级代码片段)

夏天来啦,用纯CSS实现水果解解馋吧

Thymeleaf3语法详解解解解解

PAT1049-----枚举法,找规律题,注意降低时间复杂度

Jetbrains第二组谜题解答

参数值作为另一个向量的函数。解解