洛谷 P2085 最小函数值
来源:互联网 发布:知乎 如何钓鱼 编辑:程序博客网 时间:2024/06/05 20:15
本来是8.3 模拟考 因为昨天沈阳蜜汁暴雨预警 导致变成8.4模拟考
第一题
因为a,b,c都为正整数
所以
对称轴一定在原点左侧而且在x正半轴上单调递增
因此 不要想太多 不需要考虑原点位置问题= . =
首先是暴力算法 时间复杂度(nmlog(mn))
将n个函数从1==》m的值全部求出
再神奇地用sort排序输出前m个
接下来是n*m算法
这题优化的思想是贪心
即求出每一个函数当前的最优解 之间相互比较
然后 将取出最优解的那个函数的未知数值+1 接着进行下一次比较
这样做的好处是是每一步取最优解 只需要比较m*n次即可
其实这道题好像还可以使用最小堆=。=
只不过我不会用
代码如下
#include<cstdio>#include<queue>#include<algorithm>#include<cstring>using namespace std;int n,m;int ans[1000005];int res[10005];//每个函数当前的最小值 int sum=0x3f3f3f,big;int a[10005];int b[10005];int c[10005];int len[10005];int main(){freopen("minval.in","r",stdin);freopen("minval.out","w",stdout);memset(ans,0,sizeof(ans));scanf("%d%d",&n,&m);for (int i=1;i<=n;i++){scanf("%d%d%d",&a[i],&b[i],&c[i]);len[i]=1;//代表未知数大小 }for (int k=1;k<=n;k++){res[k]=a[k]*len[k]*len[k]+b[k]*len[k]+c[k];}for (int j=1;j<=m;j++){for (int i=1;i<=n;i++){if (sum>res[i]){big=i;//标记最小值所在函数方便操作 sum=res[i];}if (i==n){len[big]++;//更新未知数大小 res[big]=a[big]*len[big]*len[big]+b[big]*len[big]+c[big];//更新函数的值 ans[j]=sum;big=0;sum=0x3f3f3f;}}}for (int d=1;d<=m;d++){printf("%d ",ans[d]);}return 0;}
阅读全文
1 0
- 洛谷 P2085 最小函数值
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值(minval)
- 洛谷 P2085 最小函数值(minval)
- LUOGU P2085 最小函数值
- 洛谷P2085最小函数值STL模板解题报告
- [luogu]P2085最小函数值-堆排的玄学运用
- 洛谷2085 最小函数值
- 洛谷 堆专题 最小函数值
- 最小函数值 洛谷2085 堆
- 【堆】最小函数值
- 【堆】最小函数值
- 最小函数值(minval)
- 最小函数值
- 最小函数值
- SSL1411最小函数值
- 网友亲身经历的数据勒索事件_原来还有这么多种姿势长见识了!
- 常用网址
- C++中的各种预处理的表示
- 设计模式之双向适配器模式
- IntelliJ Idea 常用快捷键列表
- 洛谷 P2085 最小函数值
- 安装MySql-Python遇到的错误及解决方法
- 删除子串
- 非对称加密与数字签名
- WIN7 添加本地打印机为灰色怎么办
- 安装Linux必备知识点
- 海量数据存储--分库分表策略详解
- (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- 安装MySql-Python遇到的错误及解决方法