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;
      }
      
      • 1
        @ 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';
        }
        
        • 0
          @ 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; }

          
          
          • 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>
            • -2
              @ 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
              标签
              递交数
              450
              已通过
              221
              上传者