链接:

https://vjudge.net/problem/HDU-6546

题意:

wls 有 n 个二次函数 Fi(x) = aix2 + bix + ci (1 ≤ i ≤ n).

现在他想在∑ni=1xi = m 且 x 为正整数的条件下求∑ni=1Fi(xi)的最小值。

请求出这个最小值。

思路:

优先队列维护每个函数f(x+1)-f(x)的值,每次取最小的去增加x的值。

代码:

#include <bits/stdc++.h>
using namespace std; typedef long long LL;
const int MAXN = 1e5+10; struct Node
{
int a, b, c;
int x;
LL sum, sub;
bool operator < (const Node& that) const
{
return this->sub > that.sub;
}
void Update()
{
sum = a*x*x+b*x+c;
sub = a*(x+1)*(x+1)+b*(x+1)+c-sum;
}
Node(int aa, int bb, int cc, int xx):a(aa), b(bb), c(cc),x(xx){}
};
int n, m; int main()
{
scanf("%d %d", &n, &m);
int a, b, c;
priority_queue<Node> que;
for (int i = 1;i <= n;i++)
{
scanf("%d %d %d", &a, &b, &c);
Node node(a, b, c, 1);
node.Update();
que.emplace(node);
}
LL res = 0;
m -= n;
while (m--)
{
Node now = que.top();
que.pop();
now.x++;
now.Update();
que.emplace(now);
}
while (!que.empty())
{
res += que.top().sum;
que.pop();
}
printf("%lld\n", res); return 0;
}

HDU-6546-Function(贪心)的更多相关文章

  1. HDU 5608 function [杜教筛]

    HDU 5608 function 题意:数论函数满足\(N^2-3N+2=\sum_{d|N} f(d)\),求前缀和 裸题-连卷上\(1\)都告诉你了 预处理\(S(n)\)的话反演一下用枚举倍数 ...

  2. HDU 5608 - function

    HDU 5608 - function 套路题 图片来自: https://blog.csdn.net/V5ZSQ/article/details/52116285 杜教筛思想,根号递归下去. 先搞出 ...

  3. Hdu 4864(Task 贪心)(Java实现)

    Hdu 4864(Task 贪心) 原题链接 题意:给定n台机器和m个任务,任务和机器都有工作时间值和工作等级值,一个机器只能执行一个任务,且执行任务的条件位机器的两个值都大于等于任务的值,每完成一个 ...

  4. HDU 6038 - Function | 2017 Multi-University Training Contest 1

    /* HDU 6038 - Function [ 置换,构图 ] 题意: 给出两组排列 a[], b[] 问 满足 f(i) = b[f(a[i])] 的 f 的数目 分析: 假设 a[] = {2, ...

  5. 洛谷P1464 Function  HDU P1579 Function Run Fun

    洛谷P1464 Function HDU P1579 Function Run Fun 题目描述 对于一个递归函数w(a,b,c) 如果a≤0 or b≤0 or c≤0就返回值11. 如果a> ...

  6. D - 淡黄的长裙 HDU - 4221(贪心)

    D - 淡黄的长裙 HDU - 4221(贪心) James is almost mad! Currently, he was assigned a lot of works to do, so ma ...

  7. Function HDU - 6546 (数学,贪心)

    wls 有 n 个二次函数 Fi(x) = aix2 + bix + ci (1 ≤ i ≤ n). 现在他想在∑ni=1xi = m 且 x 为正整数的条件下求∑ni=1Fi(xi)的最小值. 请求 ...

  8. hdu 2037简单贪心--活动安排问题

    活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子.该问题要求高效地安排一系列争用某一公共资源的活动.贪心算法提供了一个简单.漂亮的方法使得尽可能多的活动 ...

  9. HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可 ...

  10. HDU 4310 Hero (贪心算法)

    A - Hero Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Sta ...

随机推荐

  1. 慕课网_文件传输基础——Java IO流

    第1章 文件的编码 1-1 文件的编码 (15:07) 第2章 File 类的使用 2-1 File 类常用 API 介绍 (10:50) import java.io.File; import ja ...

  2. 之前写的页面导出Excel表格

    废话不多说,直接上代码 <%@ page language="java" import="java.util.*" pageEncoding=" ...

  3. AppDomain介绍

    一.建立控制台项目 二.更改Program为ADSetp 三.去掉命名空间AppDomain.CurrentDomain 四.贴代码 using System; using System.IO; us ...

  4. 多网卡的bond模式-把多个物理网卡绑定成一个逻辑上的网卡

    参考: 多网卡的7种bond模式原理 如何实现网卡bond

  5. document与Object的关系

    window与Objet 1. window.__proto__ === Window.prototype 2. window.__proto__.__proto__ === 窗口属性(WindowP ...

  6. 认识react, 并简单与vue对比

    应用场景: 负责场景下的高性能 重用组件库,组件组合 中文官网:https://reactjs.org.cn/doc/in... 特点: 声明式编码(不需要关心如何实现,只需要关注在哪里做什么) 组件 ...

  7. npm 关联 git包

    npm 关联 git包 由于现在项目越做越多,很多公共的部分相互公用,需要尽可能早地提炼出来,这样便可以在其他项目进行引用,而不是每次建一个项目就需要进行拷贝,这样太痛苦了,因而想通过类似npm包管理 ...

  8. C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler还是...

    原文:C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler还是... 原文由Rector首发于 码友网 之 <C#/.NET/.NET ...

  9. homebrew学习(四)之取消homebrew自动更新

    homebrew自动更新 使用brew install /brew cask install安装软件总是先updating HomeBrew…,速度很慢 取消homebrew自动更新 方法一:使用命令 ...

  10. npm学习(六)之如何创建 Node.js 模块

    如何创建 Node.js 模块 Node.js 模块是一种可以发布到 npm 的包.当你创建一个新模块时,创建 package.json 文件是第一步. 你可以使用 npm init 命令创建 pac ...