全部评论 3

  • 贪心问题,排序一下就好了。

    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    struct items{
        int time, value;
    };
    items arr[1005] = {};
    bool vis[1005] = {};
    
    bool cmp(items a, items b){
        return a.value > b.value; 
    }
    
    int main(){
        int m, n;;
        cin >> m >> n;
        for (int i=0; i<n; i++){
            cin >> arr[i].time;
        }
        for (int i=0; i<n; i++){
            cin >> arr[i].value;
        }
        sort(arr, arr+n, cmp);
        for (int i=0; i<n; i++){
            bool flag = 1;
            for(int j=arr[i].time; j>=1; j--){
                if (vis[j] == 0){
                    flag = 0;
                    vis[j] = 1;
                    break;
                }
            }
            if(flag) m -= arr[i].value;
        }
        cout << m;
        return 0;
    }
    

    1周前 来自 加拿大

    1
  • 不是哥们 你在这写论文呢

    1周前 来自 广东

    0
  • 学习讨论
    在此输入标题
    取消发布
    发帖前请仔细阅读:acgo讨论发帖规范、社区公约,如有违规行为可能会被删帖或禁言
    
    全屏
    此处输入正文(5万字以内)
    
    

    这是什么

    1周前 来自 广东

    0

热门讨论