有不用容器的大佬帮忙调下吗
查看原帖
有不用容器的大佬帮忙调下吗
1168313
tiantianT楼主2025/7/25 19:27
#include<iostream>
#include<algorithm>
using namespace std;
struct box{
    long long p, c;
    bool f;
} a[10100];
int b[10100];
long long n, m, maxs = 0, s = 0;
bool cmp(box x, box y){
    return x.c < y.c;
}
void find(){
    for(int i = 1;i <= m;i ++){
        if(!a[i].f && a[i].p != 1){
            s += a[i].c;
            b[maxs] --;
            b[1] ++;
            a[i].f = 1;
            break;
        }
    }
    
}
int main() {
    cin >> n >> m;
    for(int i = 1;i <= m;i ++){
        cin >> a[i].p >> a[i].c;
        b[a[i].p] ++;
        if(b[a[i].p] > b[maxs]){
            maxs = a[i].p;
        }
    }
    sort(a + 1, a + m + 1, cmp);
    while(maxs != 1){
        find();
        for(int i = 1;i <= n;i ++){
            if(b[i] > b[maxs]){
                maxs = i;
            }
        }
    }
    cout << s;
    return 0;
}

用结构体模拟了一下,s1错1,s2对3,s3对1

2025/7/25 19:27
加载中...