6 solutions

  • 7
    @ 2024-12-26 13:14:19
    #include<bits/stdc++.h>
    using namespace std;
    const int N=15;
    int g[N][N];
    int main()
    {
    	int n,d;
    	cin>>n>>d;
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=d;j++)
    		{
    			cin>>g[i][j];
    		}
    	}
    	int res=0;
    	for(int i=1;i<=n;i++) //第一个点 
    	{
    		for(int j=i+1;j<=n;j++) //第二个点 
    		{
    			int sum=0; //计算和 
    			for(int k=1;k<=d;k++)  
    			{
    				sum+=(g[i][k]-g[j][k])*(g[i][k]-g[j][k]);	
    			}
    			int k=sqrt(sum);
    			if(k*k==sum) //判断开方以后是否是完全平方数 
    			{
    				res++;
    			}
    		}
    	}
    	cout<<res;
    	return 0;
    }
    
    • 0
      @ 2026-7-31 21:52:21
      #include<bits/stdc++.h>
      using namespace std;
      const int N=15;
      int g[N][N];
      int main()
      {
      	int n,d;
      	cin>>n>>d;
      	for(int i=1;i<=n;i++)
      	{
      		for(int j=1;j<=d;j++)
      		{
      			cin>>g[i][j];
      		}
      	}
      	int res=0;
      	for(int i=1;i<=n;i++) //第一个点 
      	{
      		for(int j=i+1;j<=n;j++) //第二个点 
      		{
      			int sum=0; //计算和 
      			for(int k=1;k<=d;k++)  
      			{
      				sum+=(g[i][k]-g[j][k])*(g[i][k]-g[j][k]);	
      			}
      			int k=sqrt(sum);
      			if(k*k==sum) //判断开方以后是否是完全平方数 
      			{
      				res++;
      			}
      		}
      	}
      	cout<<res;
      	return 0;
      }
      • 0
        @ 2026-7-22 15:06:24
        #include<bits/stdc++.h>
        using namespace std;
        const int N=15;
        int g[N][N];
        int main()
        {
        	int n,d;
        	cin>>n>>d;
        	for(int i=1;i<=n;i++)
        	{
        		for(int j=1;j<=d;j++)
        		{
        			cin>>g[i][j];
        		}
        	}
        	int res=0;
        	for(int i=1;i<=n;i++) 
        	{
        		for(int j=i+1;j<=n;j++) 
        		{
        			int sum=0; 
        			for(int k=1;k<=d;k++)  
        			{
        				sum+=(g[i][k]-g[j][k])*(g[i][k]-g[j][k]);	
        			}
        			int k=sqrt(sum);
        			if(k*k==sum)
        			{
        				res++;
        			}
        		}
        	}
        	cout<<res;
        	return 0;
        }
        

        A0653题解A0653题解 请点👍请点👍

        • -1
          @ 2026-7-13 15:18:09
          #include<bits/stdc++.h>
          using namespace std;
          int g[15][15]; 
          int main(){
          	int n,d;
          	cin>>n>>d;
          	for(int i=1;i<=n;i++){
          		for(int j=1;j<=d;j++){
          			cin>>g[i][j];
          		}
          	}
          	int res=0;
          	for(int i=1;i<=n;i++){
          		for(int j=i+1;j<=n;j++){
          			int sum=0;
          			for(int k=1;k<=d;k++){
          				sum+=(g[i][k]-g[j][k])*(g[i][k]-g[j][k]);
          			}
          			int k=sqrt(sum);
          			if(k*k==sum){
          				res++;
          			}
          		}
          	}
          	cout<<res;
          	return 0;
          }
          
          • -2
            @ 2026-7-10 10:06:20
            2 条题解
            0
             汪奕非 LV 4
            发表您的题解
            4
            
             jike1994 LV 1 SU @ 1 年前 
            #include<bits/stdc++.h>
            using namespace std;
            const int N=15;
            int g[N][N];
            int main()
            {
            	int n,d;
            	cin>>n>>d;
            	for(int i=1;i<=n;i++)
            	{
            		for(int j=1;j<=d;j++)
            		{
            			cin>>g[i][j];
            		}
            	}
            	int res=0;
            	for(int i=1;i<=n;i++) //第一个点 
            	{
            		for(int j=i+1;j<=n;j++) //第二个点 
            		{
            			int sum=0; //计算和 
            			for(int k=1;k<=d;k++)  
            			{
            				sum+=(g[i][k]-g[j][k])*(g[i][k]-g[j][k]);	
            			}
            			int k=sqrt(sum);
            			if(k*k==sum) //判断开方以后是否是完全平方数 
            			{
            				res++;
            			}
            		}
            	}
            	cout<<res;
            	return 0;
            }
            显示更少
            -3
            
             邦邦邦邦 (乐思尧) LV 6 @ 1 年前 
            我是奶龙
             刘思锐 @ 1 年前
            我才是奶龙!
            
             lsd[桃式显现] (方一帆) @ 1 年前
            我才是奶龙!
            
             许皓辰 @ 10 个月前
            首页 题库 训练 比赛 作业 讨论 评测记录 排名 主题库 许皓辰
            
            #A1229. 良好的距离 ID: 2136 远端评测题 2000ms 1024MiB 尝试: 43 已通过: 13 难度: 普及- 上传者:
            
            jike1994 题目描述 在 D D维空间中有 N N个点。
            
            第 i i个点的坐标是 ( X i 1 , X i 2 , . . . X i D ) (X i1​,X i2​,...X iD​)。
            
            两个坐标为 ( y 1 , y 2 , … , y D ) (y 1​,y 2​,…,y D​)和 ( z 1 , z 2 . . . z D ) (z 1​,z 2​...z D​)的点之间的距离是 ( y 1
            
            −
            
            z 1 ) 2
            
            ( y 2
            
            −
            
            z 2 ) 2
            
            . . .
            
            ( y D
            
            −
            
            z D ) 2 (y 1​− z 1​) 2
            
            (y 2​− z 2​) 2
            ... + (y D​− z D​) 2
            ​。
            
            有多少对 ( i , j ) (i,j),其中 i < j i<j,满足第 i i个点和第 j j个点的距离是整数?
            
            输入 第一行一共2个整数 N , D N,D。
            
            接下来一共 N N行,每行 D D个数。
            
            输出 输出满足第 i i个点和第 j j个点的距离是整数的对数。
            
            输入数据 1 3 2 1 2 5 5 -2 8 输出数据 1 1 距离为整数的对数为1,如下
            
            第一个点和第二个点之间的距离是 ∣ 1 − 5 ∣ 2 + ∣ 2 − 5 ∣ 2
            5 ∣1−5∣ 2 +∣2−5∣ 2
            
            ​=5,是一个整数。
            
            第二个点和第三个点之间的距离是 ∣ 5 − ( − 2 ) ∣ 2 + ∣ 5 − 8 ∣ 2
            58 ∣5−(−2)∣ 2 +∣5−8∣ 2
            
            ​
            58​, 不是一个整数。
            
            第三个点和第一个点之间的距离是 ∣ − 2 − 1 ∣ 2 + ∣ 8 − 2 ∣ 2
            3 5 ∣−2−1∣ 2 +∣8−2∣ 2
            
            ​=3 5​,不是一个整数。
            
            输入数据 2 3 4 -3 7 8 2 -12 1 10 2 -2 8 9 3 输出数据 2 2 输入数据 3 5 1 1 2 3 4 5 输出数据 3 10 提示 2 ≤ N ≤ 10 2≤N≤10
            
            1 ≤ D ≤ 10 1≤D≤10
            
            − 20 ≤ X i j ≤ 20 −20≤X ij​≤20
            
            没有两个给定的点有相同的坐标。也就是说,如果 i ≠ j i  =j,那么存在 k k,满足 X i k ≠ X j k X ik​
            
             =X jk​
            
            进入在线编程模式 (Alt+E) 递交 讨论 (0) 题解 (2) 文件 统计 复制 状态 评测队列 服务状态 开发 开源 API 支持 帮助 QQ 群 关于联系我们隐私服务条款版权申诉 Language 兼容模式 主题 蜀ICP备2022008388号-1Worker 0, 49msPowered by Hydro v4.19.1 Community
            
            显示更少
             lsd[桃式显现] (方一帆) @ 5 个月前
            我才是奶龙
            
            1
            良好的距离
             查看题目
             递交
             讨论
             题解
             文件
             统计
            信息
            ID
            2136
            时间
            2000ms
            内存
            1024MiB
            难度
            3
            标签
            (无)
            递交数
            58
            已通过
            21
            上传者
             jike1994
            状态
            评测队列
            服务状态
            开发
            开源
            支持
            帮助
            联系我们
            关于
            关于
            隐私
            服务条款
            版权申诉
             Language 兼容模式 主题 
            蜀ICP备2025166542号-1Worker 0, 32msPowered by Hydro v5.0.1 Community
            • -5
              @ 2024-12-29 16:14:43
              我是奶龙
              • @ 2025-1-4 16:16:52

                我才是奶龙!

              • @ 2025-1-5 15:43:02

                我才是奶龙!

              • @ 2025-8-28 16:28:26

                首页 题库 训练 比赛 作业 讨论 评测记录 排名 主题库 许皓辰

                #A1229. 良好的距离 ID: 2136 远端评测题 2000ms 1024MiB 尝试: 43 已通过: 13 难度: 普及- 上传者:

                jike1994 题目描述 在 D D维空间中有 N N个点。

                第 i i个点的坐标是 ( X i 1 , X i 2 , . . . X i D ) (X i1 ​ ,X i2 ​ ,...X iD ​ )。

                两个坐标为 ( y 1 , y 2 , … , y D ) (y 1 ​ ,y 2 ​ ,…,y D ​ )和 ( z 1 , z 2 . . . z D ) (z 1 ​ ,z 2 ​ ...z D ​ )的点之间的距离是 ( y 1

                z 1 ) 2

                ( y 2

                z 2 ) 2

                . . .

                ( y D

                z D ) 2 (y 1 ​ − z 1 ​ ) 2

                • (y 2 ​ − z 2 ​ ) 2
                • ... + (y D ​ − z D ​ ) 2

                ​ 。

                有多少对 ( i , j ) (i,j),其中 i < j i<j,满足第 i i个点和第 j j个点的距离是整数?

                输入 第一行一共2个整数 N , D N,D。

                接下来一共 N N行,每行 D D个数。

                输出 输出满足第 i i个点和第 j j个点的距离是整数的对数。

                输入数据 1 3 2 1 2 5 5 -2 8 输出数据 1 1 距离为整数的对数为1,如下

                第一个点和第二个点之间的距离是 ∣ 1 − 5 ∣ 2 + ∣ 2 − 5 ∣ 2

                5 ∣1−5∣ 2 +∣2−5∣ 2

                ​ =5,是一个整数。

                第二个点和第三个点之间的距离是 ∣ 5 − ( − 2 ) ∣ 2 + ∣ 5 − 8 ∣ 2

                58 ∣5−(−2)∣ 2 +∣5−8∣ 2

                58 ​ , 不是一个整数。

                第三个点和第一个点之间的距离是 ∣ − 2 − 1 ∣ 2 + ∣ 8 − 2 ∣ 2

                3 5 ∣−2−1∣ 2 +∣8−2∣ 2

                ​ =3 5 ​ ,不是一个整数。

                输入数据 2 3 4 -3 7 8 2 -12 1 10 2 -2 8 9 3 输出数据 2 2 输入数据 3 5 1 1 2 3 4 5 输出数据 3 10 提示 2 ≤ N ≤ 10 2≤N≤10

                1 ≤ D ≤ 10 1≤D≤10

                − 20 ≤ X i j ≤ 20 −20≤X ij ​ ≤20

                没有两个给定的点有相同的坐标。也就是说,如果 i ≠ j i  =j,那么存在 k k,满足 X i k ≠ X j k X ik ​

                 =X jk ​

                进入在线编程模式 (Alt+E) 递交 讨论 (0) 题解 (2) 文件 统计 复制 状态 评测队列 服务状态 开发 开源 API 支持 帮助 QQ 群 关于联系我们隐私服务条款版权申诉 Language 兼容模式 主题 蜀ICP备2022008388号-1Worker 0, 49msPowered by Hydro v4.19.1 Community

              • @ 2026-1-11 9:06:35

                我才是奶龙

            • 1

            Information

            ID
            2136
            Time
            2000ms
            Memory
            1024MiB
            Difficulty
            3
            Tags
            (None)
            # Submissions
            75
            Accepted
            31
            Uploaded By