Codeforces 724C Ray Tracing 扩展欧几里得
2016-10-09 17:24
357 查看
吐槽:在比赛的时候,压根就没想到这题还可以对称;
题解:http://blog.csdn.net/danliwoo/article/details/52761839
比较详细;
View Code
题解:http://blog.csdn.net/danliwoo/article/details/52761839
比较详细;
#include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #include<algorithm> #include<iomanip> #include<map> #include<set> #include<vector> #include<ctime> #include<cmath> #define LL long long using namespace std; #define LL long long #define up(i,j,n) for(int i=(j);(i)<=(n);(i)++) #define max(x,y) ((x)<(y)?(y):(x)) #define min(x,y) ((x)<(y)?(x):(y)) #define FILE "1" const int maxn=101000; const LL inf=10000000000000LL; int n,m,k; void init(){ scanf("%d%d%d",&n,&m,&k); } void gcd(LL a,LL b,LL &d,LL &x,LL &y){ if(b==0){d=a;x=1;y=0;return;} gcd(b,a%b,d,x,y); int t=x; x=y; y=t-a/b*x; return; } LL t(LL a,LL b,LL c,LL &x,LL &y ){ LL d;gcd(a,b,d,x,y); if(c%d)return -1; LL ran=b/d;if(ran<0)ran=-ran; x*=c/d; x=(x%ran+ran)%ran; return 0; } LL get(LL x,LL y,LL maxx){ LL K,S; if(t(2*n,-2*m,y-x,K,S)==-1)return maxx+1; LL ans=2*K*n+x; if(ans<0||ans>maxx)return maxx+1; return ans; } LL gcd(LL a,LL b){return b?gcd(b,a%b):a;} LL work(LL x,LL y){ LL maxx=1LL*n/gcd(n,m)*m; LL minn=maxx+1; minn=min(get(x,y,maxx),minn); minn=min(get(-x,y,maxx),minn); minn=min(get(x,-y,maxx),minn); minn=min(get(-x,-y,maxx),minn); if(minn==maxx+1)return -1; else return minn; } void slove(){ init(); up(i,1,k){ LL x,y; scanf("%I64d%I64d",&x,&y); printf("%I64d\n",work(x,y)); } } int main(){ slove(); }
View Code
相关文章推荐
- codeforces 612A The Text Splitting(扩展欧几里得)
- Codeforces 7C 扩展欧几里得
- CodeForces - 7C Line(扩展欧几里得)
- 扩展欧几里得--解一元线性方程CodeForces -7C
- CodeForces - 7C Line(扩展欧几里得模板)
- codeforces 787A the monster(扩展欧几里得做法+暴力做法)
- [codeforces 200 E Tractor College]枚举,扩展欧几里得,三分
- 【数论】【扩展欧几里得】Codeforces 710D Two Arithmetic Progressions
- CodeForces 7C Line (扩展欧几里得)
- ☆ Codeforces 724C Ray Tracing 扩展欧几里得 + 计算几何
- CodeForces 724|模拟|贪心|扩展欧几里得|
- Codeforces 724C Ray Tracing 扩展欧几里得
- 【数论】【扩展欧几里得】Codeforces 710D Two Arithmetic Progressions
- CodeForces 787A A. The Monster(扩展欧几里得)
- codeforces 7c line(扩展欧几里得)
- CodeForces 7 C. Line(扩展欧几里得)
- CodeForces 7C【扩展欧几里得】
- CodeForces 7C (扩展欧几里得)
- 欧几里得扩展方程
- 欧几里得、扩展欧几里得