hdu-6024

hdu-6024

cpp 复制代码
struct node
{
    int x, c;
    bool operator<(const node &a) const
    {
        return x < a.x;
    }
};
// dp[i][0]为到第i个教室且第i个教室不建糖果店的花费前缀和,dp[i][1]为到第i个教室且第i个教室建糖果店的花费前缀和
int dp[N][2];
void solve()
{
    int n;
    while (cin >> n)
    {
        vector<node> a(n + 1);
        for (int i = 1; i <= n; i++)
        {
            cin >> a[i].x >> a[i].c;
            dp[i][0] = dp[i][1] = INF;
        }
        sort(a.begin() + 1, a.end()); // 按坐标排序
        dp[1][1] = a[1].c;
        dp[1][0] = INF;
        for (int i = 2; i <= n; i++)
        {
            int sum = 0;
            dp[i][1] = min(dp[i - 1][0], dp[i - 1][1]) + a[i].c; // i教室建店此处一定花费a[i].c,所以再加上之前较优的花费
            for (int j = i - 1; j >= 1; j--)
            {
                sum += (i - j) * (a[j + 1].x - a[j].x); // sum为从j+1教室到i教室的花费和
                dp[i][0] = min(dp[i][0], dp[j][1] + sum); // 判断j教室建店是不是最优
            }
        }
        cout << min(dp[n][0], dp[n][1]) << endl;
    }
}
相关推荐
良木生香13 小时前
【C++初阶】:泛型编程的代表作---C++初阶模板
c语言·开发语言·数据结构·c++·算法
过河卒_zh156676613 小时前
技术狂奔之后:数字虚拟人走向规则时代
人工智能·算法·aigc·生成式人工智能·算法备案
网域小星球13 小时前
C++ 从 0 入门(一)|C++ 基础语法、命名空间、引用、IO 输入输出
开发语言·c++·引用·命名空间·cin/cout
boss-dog14 小时前
3D视觉机器人中手眼标定的精度提升方法记录——ICP算法
算法·3d·机器人·手眼标定·icp
郝学胜-神的一滴14 小时前
Softmax 从入门到精通:多分类激活函数的优雅解法
人工智能·python·算法·机器学习·分类·数据挖掘
xianyinsuifeng14 小时前
C语言性能优化实战:从 printf 到 write,再到批量输出(性能提升30%+)
算法
Halo_tjn14 小时前
Java 内部类
java·开发语言·算法
开心码农1号14 小时前
Go关于切边变量本身地址和内部指向地址
前端·算法
旖-旎14 小时前
栈(验证栈序列)(5)
c++·算法·leetcode·力扣·
三毛的二哥14 小时前
障碍物遮挡判断算法
人工智能·算法·计算机视觉·3d