2。
(a,b),(a,−b),(−a,b),(−a,−b),设共取出
n个向量,
a,−a,b,−b的个数分别为
xa1,xa2,yb1,yb2。
{ xa1+xa2=n yb1+yb2=n
n个向量之和为
(axa1−axa2,byb1−byb2)
设
x1=xa1−xa2,
y1=yb1−yb2,证明
x1≡y1
n≡p,
p的取值为
0或
1
∴{ xa1+xa2≡p yb1+yb2≡p
∴{ xa1+xa2−2xa2≡p yb1+yb2−2yb2≡p
∴{ xa1−xa2≡p yb1−yb2≡p
∴x1≡y1≡p
证毕
!!!
结论:
n个向量之和为
(ax1,by1),
x1≡y1
同理考虑后四个向量
(b,a),(b,−a),(−b,a),(−b,−a),设共取出
m个向量,设
m个向量之和为
(by2,ax2),且
y2≡x2
八个向量之和为
(ax1+by2,by1+ax2),
x1≡y1,
y2≡x2
∴{ ax1+by2=x x1≡y1 by1+ax2=y y2≡x2
∴{ ax1+by2=x x1≡y1 ax2+by1=y y2≡x2
情况一:
x1≡y1≡0,
y2≡x2≡0
∴{ ax1+by2=x ax2+by1=y
将同余
0的项提出
2
∴{ 2ax1′+2by2′=x 2ax2′+2by1′=y
有解的条件是
(2a,2b)∣x,
(2a,2b)∣y
情况二:
x1≡y1≡0,
y2≡x2≡1
∴{ ax1+by2=x ax2+by1=y
将同余
0的项提出
2
∴{ 2ax1′+by2=x ax2+2by1′=y
∴{ 2ax1′+b(y2+1)=x+b a(x2+1)+2by1′=y+a
∴{ 2ax1′+2by2′=x+b 2ax2′+2by1′=y+a
有解的条件是
(2a,2b)∣(x+b),
(2a,2b)∣(y+a)
同理
情况三:有解的条件是
(2a,2b)∣(x+a),
(2a,2b)∣(y+b)
情况四:有解的条件是
(2a,2b)∣(x+a+b),
(2a,2b)∣(y+a+b)//优化 #pragma GCC optimize(2) //C #include<string.h> #include<stdio.h> #include<stdlib.h> #include<math.h> //C++ //#include<unordered_map> #include<algorithm> #include<iostream> #include<istream> #include<iomanip> #include<climits> #include<cstdio> #include<string> #include<vector> #include<cmath> #include<queue> #include<stack> #include<map> #include<set> //宏定义 #define N 1010 #define DoIdo main //#define scanf scanf_s #define it set<ll>::iterator //定义+命名空间 typedef long long ll; typedef unsigned long long ull; const ll mod = 998244353; const ll INF = 1e18; const int maxn = 1e6 + 10; using namespace std; //全局变量 //函数区 ll max(ll a, ll b) { return a > b ? a : b; } ll min(ll a, ll b) { return a < b ? a : b; } ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); } //主函数 int DoIdo() { ios::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL); int T; cin >> T; while (T--) { ll a, b, x, y; cin >> a >> b >> x >> y; ll g = gcd(2 * a, 2 * b); bool jg = 0; if (x % g == 0 && y % g == 0) jg = 1; if ((x + a) % g == 0 && (y + b) % g == 0) jg = 1; if ((x + b) % g == 0 && (y + a) % g == 0) jg = 1; if ((x + a + b) % g == 0 && (y + a + b) % g == 0) jg = 1; if (jg) cout << "Y" << endl; else cout << "N" << endl; } return 0; } //分割线---------------------------------QWQ /* */
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算