6 条题解

  • 6
    @ 2022-7-2 17:25:43

    这题,不是和 选址问题 一样吗?

    只不过加了个 T 而已,一道㵘题,建议先做 选址问题

    代码:

    #include <cstdio>
    #include <algorithm>
    using namespace std;
    
    int T , n , a[30005];
    
    int pd(int x){ //计算距离总和
    	int rrr = 0;
    	for(int i = 1;i <= n;i++)
    		rrr += abs(x - a[i]);
    	return rrr;
    }
    
    int main(void){
    	scanf("%d" , &T);
    	while(T--){
    		scanf("%d" , &n);
    		for(int i = 1;i <= n;i++)
    			scanf("%d" , &a[i]);
    		sort(a + 1 , a + n + 1); //排序
    		printf("%d\n" , pd(a[(n + 1) >> 1])); //把商店放在中间
    	}
    	
    }
    
    • 1
      @ 2023-6-10 12:53:45
      #include <bits/stdc++.h>
      using namespace std;
      int n, a[100000], t;
      int s (int x)
      {
      	int num = 0;
      	for (int i = 1; i <= n; i++)
      		num += abs(x - a[i]);
      	return num;
      }
      int main()
      {
      	cin >> t;
          for (int j = 0; j < t; j++)
          {
              cin >> n;
          	for (int i = 1;i <= n;i++)
      	    	cin >> a[i];
          	sort(a + 1 , a + n + 1);
      	    cout << s(a[(n + 1) >> 1])<<endl;
          }
      	return 0;
      }
      
      • 0
        @ 2023-5-28 9:51:48

        感谢森林?

        #include <bits/stdc++.h>
        using namespace std;
        int a[100001];
        int main(){   
            int n,mid=0,ans=0,t;
            cin>>t;
            for(int k=1;k<=t;k++){//10~21行可用于上一题
                cin>>n;
                for(int i=1;i<=n;i++)
                    cin>>a[i];
                sort(a+1,a+n+1);
                if(n%2==0){
                    mid=a[n/2];
                }else{
                    mid=a[(n+1)/2];
                }
                for(int i=1;i<=n;i++){
                    ans+=abs(mid-a[i]);
                }cout<<ans<<endl;
                ans=0;
                memset(a,0,sizeof(a));
            }
            
            return 0;
        }
        
        
        
        
        </span>
        • 0
          @ 2022-8-22 10:28:05
          for (int i=1;i<=t;i++)
          {
              cin>>n;
              for (int j=1;j<=n;j++)
                  cin>>a[j];
              sort(a+1,a+n+1);//排序
              ans=0;
              for (int j=1;j<=n;j++)
                  ans+=abs(a[(n+1)/2]-a[j]);//求距离和
              cout<<ans<<'\n';
          }
          
          • -1
            @ 2023-9-3 17:51:27

            using #include 《iostream.》

            int pd(int x){ int rrr = 0; for(int i = 1;i <= n;i++) rrr += abs(x - a[i]); return rrr; }

            
            
            • -3
              @ 2022-4-24 16:12:53

              鼓励大家写题解,但注意题解格式。

              给代码两端加上这个会舒服一些

              ```cpp

              你的代码

              ```

              </span>

              这个点在键盘的左上角tab上面那个键,注意切换输入法

              #include<iostream>
              using namespace std;
              int main()
              {
                  int n;
                  cin>>n;//这是一个注释
                  return 0;
              } 
              

              请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

              抄袭题解一经发现直接取消成绩。

              • 1

              信息

              ID
              1039
              时间
              1000ms
              内存
              256MiB
              难度
              4
              标签
              递交数
              406
              已通过
              200
              上传者