zoukankan      html  css  js  c++  java
  • 【优先队列】Function

    Function

    题目描述

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

    输入

    第一行两个正整数n,m。
    下面n行,每行三个整数a,b,c分别代表二次函数的二次项,一次项,常数项系数。
    1≤n≤m≤100,000
    1≤a≤1,000
    −1,000≤b,c≤1,000

    输出

    一行一个整数表示答案。

    样例输入

    2 3
    1 1 1
    2 2 2

    样例输出

    13


    【队友的思路】

      每次先把m当成每一份,然后先给n个,剩余的m-n就给当前增长多的那个即可.

    【队友的代码】

     

     1 #pragma GCC optimize(2)
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 typedef long long ll;
     5  
     6 struct node{
     7     ll a, b, c;
     8     ll x, val, pri;
     9  
    10     bool operator < ( const node & rhs )const {
    11         return pri > rhs.pri ;
    12     }
    13 };
    14 priority_queue<node> Q;
    15 int main()
    16 {
    17     int n, m;
    18     scanf("%d%d",&n,&m);
    19     for(int i=1;i<=n;i++)
    20     {
    21         node tmp ;
    22         scanf("%lld%lld%lld",&tmp.a,&tmp.b,&tmp.c);
    23         tmp.x=1;
    24         tmp.pri = 2*tmp.a*tmp.x+tmp.a+tmp.b;
    25         tmp.val = tmp.a*tmp.x*tmp.x+tmp.b*tmp.x+tmp.c;
    26         Q.push(tmp);
    27         //cout<<tmp.val<<endl;
    28     }
    29     for(int i=1;i<=m-n;i++)
    30     {
    31         node tmp=Q.top();
    32         Q.pop();
    33         tmp.x ++ ;
    34         tmp.pri = 2 * tmp.a * tmp.x + tmp.a + tmp.b;
    35         tmp.val = tmp.a * tmp.x * tmp.x + tmp.b * tmp.x + tmp.c;
    36         Q.push(tmp);
    37  
    38     }
    39     ll Ans = 0;
    40     while(!Q.empty())
    41     {
    42         node tmp = Q.top();
    43         Q.pop();
    44         Ans += tmp.val;
    45     }
    46     printf("%lld
    ",Ans);
    47  
    48  
    49     return 0;
    50 }
    View Code
  • 相关阅读:
    bzoj 4017: 小Q的无敌异或
    [TJOI2014] Alice and Bob
    [TJOI2014] 上升子序列
    bzoj 3261: 最大异或和
    bzoj3087: Coci2009 misolovke
    bzoj3521: [Poi2014]Salad Bar
    bzoj4032: [HEOI2015]最短不公共子串
    bzoj1027: [JSOI2007]合金
    bzoj4637: 期望
    bzoj3919: [Baltic2014]portals
  • 原文地址:https://www.cnblogs.com/Osea/p/11569218.html
Copyright © 2011-2022 走看看