2 条题解

  • 1
    @ 2025-10-28 0:48:24

    思路:对式子移项,相信你会看出来的

    • 0
      @ 2024-12-26 17:11:21

      C :

      #include <stdio.h>
      int main(void)
      {
      	int t;
      	scanf("%d",&t);
      	long long num[t];
      	for(int i=0;i<t;i++){
      		int n;
      		scanf("%d",&n);
      		long long a[n],b[n*3],sum=0;
      		for(int j=0;j<n*3;j++) b[j]=0;
      		for(int j=0;j<n;j++){
      			scanf("%lld",&a[j]);
      			b[a[j]-j+n]++;
      		}
      		for(int j=0;j<n*3;j++){
      			sum+=b[j]*(b[j]-1)/2;
      		}
      		num[i]=sum;
      	}
      	for(int i=0;i<t;i++) printf("%lld\n",num[i]);
      	return 0;
      }
      

      C++ :

      #include<stdio.h>
      int main()
      {
      	int t;
      	scanf("%d",&t);
      	while(t--)
      	{
      		int n;
      		scanf("%d",&n);
      		long long a[n],map[2*n+1]={0};
      		for(int i=0;i<n;i++)
      		{
      			scanf("%lld",&a[i]);
      			map[a[i]-i+n]++;
      		}
      		long long sum=0;
      		for(int i=0;i<2*n+1;i++)
      		{
      			sum+=map[i]*(map[i]-1)/2;
      		}
      		printf("%lld\n",sum);
      	}
      	return 0;
      }
      
      • 1

      信息

      ID
      724
      时间
      1000ms
      内存
      128MiB
      难度
      10
      标签
      提交数
      6
      已通过
      2
      上传者