chen_zhe @ 2026-11-06 19:53:49
#include<bits/stdc++.h>
using namespace std;
long long c,t;long long n,d;long long a[200006];int mx[50006][50006];bool vis[200006];int cnt[50006][50006];
void dfs(int u,int sum){for(int i=1;i<=n;i++){
if(a[max(u,i)]-a[min(u,i)]>d&&vis[i]==0){
vis[i]=1;
mx[u][i]=min(sum+1,mx[u][i]);
dfs(i,sum+1);
vis[i]=0;
}
}
}
void dfs2(int u,int sum){
for(int i=1;i<=n;i++){
if(a[max(u,i)]-a[min(u,i)]>d&&vis[i]==0){
vis[i]=1;
if(sum+1==mx[u][i]){
cnt[u][i]++;
}
dfs(i,sum+1);
vis[i]=0;
}
}
}
int main()
{
freopen("migrate.in","r",stdin);
freopen("migrate.out","w",stdout);
cin>>c>>t;
while(t--){
cin>>n>>d;
for(int i=1;i<=n;i++){
cin>>a[i];
}int ans=0;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){
}
}for(int i=1;i<=n;i++){
memset(vis,0,sizeof(vis))dfs(i,0);
}for(int i=1;i<=n;i++){memset(vis,0,sizeof(vis));dfs2(i,0);
}
for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==j){continue;
}if(cnt[i][j]==2){}
ans++;
}
}
cout<<ans<<endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define int long long
int c,t;
int n,d;
int a[5006];
int mx[5006][5006];
int cnt[5006][5006];
bool vis[5006];
/*void bfs(int x){
queue<pair<int,int>> q;
memset(vis,0,sizeof(vis));
vis[x]=1;
q.push({x,0});
while(!q.empty()){
pair<int,int> u=q.front();
q.pop();
for(int i=1;i<=n;i++mx[u][i]=min(sum+1,mx[u][i]);mx[u][i]=min(sum+1,mx[u][i]);){
if(a[max(x,i)]-a[min(x,i)]>d||vis[i]==1){
vis[]
}
}
}
}
*/
void dfs(int u,int sum){
for(int i=1;i<=n;i++){
if(a[max(u,i)]-a[min(u,i)]<=d&&vis[i]==0){
vis[i]=1;
mx[u][i]=min(sum+1,mx[u][i]);
dfs(i,sum+1);
vis[i]=0;
}
}
}
void dfs2(int u,int sum){
for(int i=1;i<=n;i++){
if(a[max(u,i)]-a[min(u,i)]<=d&&vis[i]==0){
vis[i]=1;
if(sum+1==mx[u][i]){
cnt[u][i]++;
}
dfs(i,sum+1);
vis[i]=0;
}
}
}
signed main(){
freopen("migrate.in","r",stdin);
freopen("migrate.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>c>>t;
while(t--){
cin>>n>>d;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int ans=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j)
continue;
mx[i][j]=1e18;
}
}
for(int i=1;i<=n;i++){
memset(vis,0,sizeof(vis));
dfs(i,0);
}
for(int i=1;i<=n;i++){
memset(vis,0,sizeof(vis));
dfs2(i,0);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j)
continue;
if(cnt[i][j]==2){
ans++;
}
}
}
cout<<ans<<'\n';
}
return 0;
}
by FateEchoing @ 2026-11-06 19:54:05
qp
by CGcgxyXY @ 2026-11-06 19:54:06
做B的
by Water__Problem @ 2026-11-06 19:54:08
qpqp
by NanakoCodamorTulip @ 2026-11-06 19:54:08
qp
by zhangqh @ 2026-11-06 19:54:12
qp
by zzc2025 @ 2026-11-06 19:54:14
qp
by NiY_ @ 2026-11-06 19:54:20
qp
by Yore_Snow @ 2026-11-06 19:54:31
qp
by srp_Ethan @ 2026-11-06 19:54:33
qp
by Wooden_pickaxe @ 2026-11-06 19:54:37
qp