La violencia de Dota del hermano Xu

Inserte la descripción de la imagen aquí
Idea: En primer lugar, podemos encontrar que el rango de datos es relativamente pequeño, por lo que podemos tomar un método violento para atravesar directamente cada posición en la línea para encontrar el daño y encontrar el valor más pequeño.

#include <bits/stdc++.h>
using namespace std;
int n,m;
struct node{
    
    
    int index;
    int x;
};
int main()
{
    
    
    while(cin>>n>>m){
    
    
        node no[n+10];
        for(int i=0;i<m;i++){
    
    
            cin>>no[i].index>>no[i].x;
        }
        long long min1 = 99999999999;
        for(int i=0;i<=n;i++){
    
    
            int cnt = 0;
            for(int j=0;j<m;j++){
    
    
                cnt+= abs(i-no[j].index)*no[j].x;
            }
            if(cnt<min1) min1 = cnt;
        }
        cout<<min1<<endl;
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_43811879/article/details/109604667
Recomendado
Clasificación