问题标题: 酷町堂:2010样例不过,请纠错.(如果答案让我满意,我会悬赏40个酷町豆)

0
0
已解决
徐熙晨
徐熙晨
新手光能
新手光能
#include<bits/stdc++.h>
using namespace std;
long long a[10001],b[10001],c[10001],f[10001][10001];
queue<int>q;
int main(){
    int m,n;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i]>>b[i]>>c[i];
    }
    int t=0;
    for(int i=1;i<=n;i++){
        t++;
        for(int j=1;j<=100;j++){
            f[i][j]=a[t]*j*j+b[t]*j+c[t];
            q.push(-f[i][j]);
        }
    }
    for(int i=1;i<=m;i++){
        int tmp=q.front();
        cout<<-tmp<<" ";
        q.pop();
    }
    return 0;
}

哪错了!

@酷町喵~o( =∩ω∩= )o~ @黄俊博 @梁彦博 @梁锦程 @陆麟瑞 @所有人

徐熙晨在2018-03-24 10:53:54追加了内容

一定要指出我的错误


1
已采纳
陆麟瑞
陆麟瑞
资深天翼
资深天翼

这道题是优先队列,而你却定义了一个普通队列,思路有问题啊

1
李庚午
李庚午
中级守护
中级守护

您的思路显然错了……这道题并非是这样做的。请您认真读题,这道题的要求是“输出m个最小的函数值”,而不是“输出前m个函数的最小值”。正确的思路应当是使用优先队列的。

0
我要回答