社区讨论

为何用vector做不行啊? 求解代码哪里写错了

P1090[NOIP 2004 提高组] 合并果子参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi5hhw28
此快照首次捕获于
2025/11/19 12:10
4 个月前
此快照最后确认于
2025/11/19 12:10
4 个月前
查看原帖
CPP
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    int a,x,i,n,total=0;
    vector<int> v(10002);
    scanf("%d",&n);
    for(i=0;i<=n-1;i++)
       scanf("%d",&v[i]);
    sort(v.begin(),v.end());
    while(n>1)
    {
        x=v[0]+v[1];
        v.erase(v.begin()+1);
        v.erase(v.begin()+2);
        total=total+x;
        n=n-2;
        a=1;
        for(i=1;i<=n;i++)
        {
            if(v[i]<x) a++;
            else break;
        }
        v.insert(v.begin()+a,x);
        n++;
    }
    printf("%d",total);
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...