网易笔试题双核cpu问题

自己测试没问题,系统为什么报段错误,求大神指导
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    int n = 0;
    cin>>n;
    vector<int> data;
    data.reserve(n);
    for(int i = 0 ; i < n ;++i){
        cin>>data[i];
    }
    int len =  0;
    for(int i = 0 ; i < n ;++i){
        len += (data[i]/=1024);
    }
    int sum = len/2;
    int m[n+1][sum+1];
    for(int i = 0 ; i <= n ;i++){
        m[i][0] = 0;
    }
    for(int  j = 0 ; j <= sum ;++j){
        m[0][j] = 0 ;
    }
    for(int i = 1 ;i <= n; ++i){
        for(int  j =1 ; j <= sum ; ++j){

            if(data[i-1] > j){
                m[i][j] = m[i-1][j];
            }
            else{
                m[i][j] = m[i][j-data[i-1]] + data[i-1] > m[i-1][j] ?  m[i][j-data[i-1]] + data[i-1]:m[i-1][j];
            }
        }
    }
    cout<<(len-m[n][sum])*1024<<endl;
    return 0;
}

全部评论
话说感觉你这代码dp转移写错了,答案不对吧。
点赞 回复 分享
发布于 2017-03-26 19:01
可以这样声明数组? int m[n+1][sum+1];
点赞 回复 分享
发布于 2017-03-26 18:47
没人吗
点赞 回复 分享
发布于 2017-03-26 18:30
求指导,大神碗里来
点赞 回复 分享
发布于 2017-03-26 18:09

相关推荐

八极星:有什么不能问的,(/_\),这又不是多珍贵的机会,你有什么可失去的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务