标签:preview data nbsp 结果 任务 element review code tin
已知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; } }
标签:preview data nbsp 结果 任务 element review code tin
原文地址:https://www.cnblogs.com/2021-yanghaoran/p/10623235.html