博客
关于我
B. Polycarp's Practice
阅读量:598 次
发布时间:2019-03-09

本文共 2065 字,大约阅读时间需要 6 分钟。

Polycarp's practice problem can be solved efficiently by determining the optimal distribution of problems into days to maximize the total profit. Here's a structured approach to understand and solve the problem:

  • Problem Constraints and Intuition:

    • Polycarp needs to solve n problems over k days.
    • Each day, he must solve a contiguous sequence of problems from his list.
    • The profit for each day is the maximum difficulty in the solved sequence.
    • The goal is to maximize the sum of these daily profits.
  • Key Insight:

    • To maximize the total profit, we should prioritize solving the most difficult problems on separate days. This is because the maximum in each day's subset contributes directly to the total profit.
  • Algorithm Selection:

    • Sort the array of problem difficulties in descending order.
    • Select the top k elements as the daily maxima.
    • These top k values will be the maximums for each day, contributing the most to the total profit.
  • Daily Distribution Strategy:

    • After sorting the array, the largest k elements will be the daily profit contributors.
    • Distribute these elements such that each is the maximum of a contiguous segment, starting from the left of the array.
  • Implementation Steps:

    • Read input values for n, k, and the array a.
    • Sort a in descending order.
    • Sum the top k elements to get the maximum total profit.
    • Record the indices of these top k elements, ensuring they are distributed to form contiguous segments for each day.
  • Edge Cases:

    • When k equals n, every day is a single problem, and the total profit is the sum of all elements.
    • When all elements are the same, the profit is simply k times the value.
    • When the largest elements are clustered, their positions must be carefully recorded to form valid contiguous segments.
  • Output:

    • Print the total maximum profit.
    • Print the distribution of problems into days, ensuring each day's segment is contiguous and correctly sequences the sorted top k elements.
  • By following these steps, we ensure that the solution is both optimal and efficient, achieving the maximum possible total profit for Polycarp's practice.

    转载地址:http://wbhpz.baihongyu.com/

    你可能感兴趣的文章
    python | ggplot,一个超强的 Python 库!
    查看>>
    python | grab,一个强大的 Python 库!
    查看>>
    python | gunicorn,一个非常实用的 Python 库!
    查看>>
    python | h5py,一个无敌的关于 HDF5 的 Python 库!
    查看>>
    python | huey,一个非常厉害的 任务调度 Python 库!
    查看>>
    python | hypothesis,一个有趣的 Python 库!
    查看>>
    python | Indico,一个超酷的 Python 库!
    查看>>
    python | isort,一个有趣的 自动整理导入语句 的Python 库!
    查看>>
    python | jinja,一个超酷的 Python 库!
    查看>>
    python | joblib,一个强大的 Python 库!
    查看>>
    python调用git bash_Python学习第70课-用Git Bash在命令行打开sublime
    查看>>
    python | jsonschema,一个实用的 验证 JSON 数据结构 Python 库!
    查看>>
    python课程的中期报告范文_课题研究中期总结报告范文
    查看>>
    python | lxml,一个超酷的 关于XML/HTML 文档 Python 库!
    查看>>
    python | mplfinance,一个有趣的金融数据可视化 Python 库!
    查看>>
    python | nipy,一个强大的关于 神经影像数据分析 的Python 库!
    查看>>
    python | NLTK,一个强大的 自然语言处理 Python 库!
    查看>>
    python | nupic,一个强大的 处理时间序列的Python 库!
    查看>>
    python | orange3,一个神奇的 Python 库!
    查看>>
    python | pdfminer,一个神奇的 关于PDF 文件的 Python 库!
    查看>>