• b_hw/pdd_任务最大得分(堆/multiset)


    T 组, 每一组商品 p 的 p[i][0] 表示价值,p[i][1] 表示下架时间,问怎么卖,才能让价值最大。

    int T; cin >> T;
        while (T--) {
            int n; cin >> n;
            vector<pair<int, int>> a(n);
            for (int i = 0; i < n; ++i) {
                int s, t; cin >> s >> t;
                a[i] = {s, t}; //第二维是结束时间
            }
            sort(a.begin(), a.end(), [&](auto& A, auto& B) {
                return A.second < B.second || (A.second == B.second && A.first > B.first);
            });
    
            multiset<int> st;
            int now = 0;
            for (int i = 0; i < n; ++i) {
                if (a[i].second != now) {
                    now++;
                    st.insert(a[i].first);
                } else if (a[i].first > (*st.begin())) {
                    st.erase(st.begin());
                    st.insert(a[i].first);
                }
            }
            int ans = 0;
            for (auto it = st.begin(); it != st.end(); it++) {
                ans += *it;
            }
            cout << ans << '
    ';
        }
    

    [1,2,15]
    [1,3,14]
    [3,4,9]
    4
    1

    输出23, 路线1-3-4.虽然不经过2,但是1可以到2,所以算能到达。
    输入如上,前三行分别代表景点1到景点2之间有路,距离为15,景点1到景点3之间有路,距离为14,景点3到景点4之间有路,距离为9。
    接下来输入一共有多少个景点,下一行是起始景点。问是否能逛完,可以的话求最长路径,否则输出-1.景点数小于100,路径长度小于100,两个景点间路径数小于5000.
    这个输入处理麻烦,因为格式不一致而且不确定有多少

  • 相关阅读:
    ios开源项目2
    Cocoa 框架 For iOS(一) 框架的介绍
    iPhone开源项目大全
    8款iOS的日历开源代码
    二维码扫描工具和开发包 ZBar
    图文解释XCode常用快捷键的使用
    常用的iOS高效开源类库
    static_cast
    [转]SecureCRT rz 上传文件失败问题
    Linux中的EAGAIN含义
  • 原文地址:https://www.cnblogs.com/wdt1/p/15125986.html
Copyright © 2020-2023  润新知