题解:题目的数据量较小,直接枚举拆 x 或者 y 的所有答案即可。
代码语言:javascript复制#include <iostream>
#include <bits/stdc .h>
using namespace std;
typedef long long ll;
int vis[500];
int main()
{
int n, x, y, res;
int a,b,rst;
while(scanf("%d", &n) != EOF)
{
while(n --)
{
res = 0;
rst = 0;
scanf("%d %d", &x, &y);
for(int i = 1; i < x; i )
{
memset(vis,0,sizeof(vis));
a = i;
b = x - i;
res = 0;
if(!vis[a]){res ; vis[a] ;}
if(!vis[b]){res ; vis[b] ;}
if(!vis[a b]){res ; vis[a b] ;}
if(!vis[y]){res ; vis[y] ;}
if(!vis[abs(a-b)]){res ; vis[abs(a-b)] ;}
if(!vis[abs(a y)]){res ; vis[abs(a y)] ;}
if(!vis[abs(a-y)]){res ; vis[abs(a-y)] ;}
if(!vis[abs(b-y)]){res ; vis[abs(b-y)] ;}
if(!vis[(abs(b y))]){res ; vis[abs(b y)] ;}
if(!vis[a b y]){res ; vis[a b y] ;}
if(!vis[abs(a b-y)]){res ; vis[abs(a b-y)] ;}
if(!vis[abs(abs(a-b) y)]){res ; vis[abs(abs(a-b) y)] ;}
if(!vis[abs(abs(a-b)-y)]){res ; vis[abs(abs(a-b)-y)] ;}
if(!vis[abs(abs(y-a)-b)]){res ; vis[abs(abs(y-a)-b)] ;}
if(!vis[abs(abs(y-a) b)]){res ; vis[abs(abs(y-a) b)] ;}
if(!vis[abs(abs(b-a)-y)]){res ; vis[abs(abs(b-a)-y)] ;}
if(!vis[abs(abs(b-a) y)]){res ; vis[abs(abs(b-a) y)] ;}
if(vis[0] >= 1) res --;
if(res>rst){
rst = res;
}
}
int t = x;
x = y;
y = t;
for(int i = 1; i < x; i )
{
memset(vis,0,sizeof(vis));
res = 0;
a = i;
b = x - i;
if(!vis[a]){res ; vis[a] ;}
if(!vis[b]){res ; vis[b] ;}
if(!vis[a b]){res ; vis[a b] ;}
if(!vis[y]){res ; vis[y] ;}
if(!vis[abs(a-b)]){res ; vis[abs(a-b)] ;}
if(!vis[abs(a y)]){res ; vis[abs(a y)] ;}
if(!vis[abs(a-y)]){res ; vis[abs(a-y)] ;}
if(!vis[abs(b-y)]){res ; vis[abs(b-y)] ;}
if(!vis[(abs(b y))]){res ; vis[abs(b y)] ;}
if(!vis[a b y]){res ; vis[a b y] ;}
if(!vis[abs(a b-y)]){res ; vis[abs(a b-y)] ;}
if(!vis[abs(abs(a-b) y)]){res ; vis[abs(abs(a-b) y)] ;}
if(!vis[abs(abs(a-b)-y)]){res ; vis[abs(abs(a-b)-y)] ;}
if(!vis[abs(abs(y-a)-b)]){res ; vis[abs(abs(y-a)-b)] ;}
if(!vis[abs(abs(y-a) b)]){res ; vis[abs(abs(y-a) b)] ;}
if(!vis[abs(abs(b-a)-y)]){res ; vis[abs(abs(b-a)-y)] ;}
if(!vis[abs(abs(b-a) y)]){res ; vis[abs(abs(b-a) y)] ;}
if(vis[0] >= 1) res --;
if(res>rst){
rst = res;
}
}
printf("%dn",rst);
}
}
return 0;
}