UVA 1451 Average(斜率优化)
来源:互联网 发布:活动报名系统源码 编辑:程序博客网 时间:2024/06/09 18:59
题解紫书第八章例题8。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define rep(i,a,b) for(int i=(a);i<=(b);i++)#define ss(x) scanf("%d",&x)const int maxn=100000+10;int f[maxn],q[maxn];char s[maxn];int n,L;int compare_average(int x1,int x2,int x3,int x4) {return (f[x2]-f[x1-1])*(x4-x3+1)-(f[x4]-f[x3-1])*(x2-x1+1);}int main(){ int kase; ss(kase); while(kase--) { ss(n);ss(L); scanf("%s",s+1); f[0]=0; rep(i,1,n) f[i]=f[i-1]+s[i]-'0'; int i=0,j=0,ansL=0,ansR=L; rep(t,L,n) { while(j-i>1&&compare_average(q[j-2],t-L,q[j-1],t-L)>=0) j--;//先放进队列里,然后再调整跳出队列。 q[j++]=t-L+1; while(j-i>1&&compare_average(q[i],t,q[i+1],t)<=0) i++; int c=compare_average(q[i],t,ansL,ansR); if(c>0||(c==0&&t-q[i]<ansR-ansL)){ ansL=q[i],ansR=t; } } printf("%d %d\n",ansL,ansR); } return 0;}
0 0
- UVA 1451 Average 斜率优化
- uva 1451 Average 斜率优化
- UVA 1451 Average(斜率优化)
- UVa 1451 Average——斜率优化
- UVa 1451 Average 解题报告(斜率优化)
- 斜率优化,数形结合(Average,uva 1451)
- UVaLive LA 4726 UVa 1451 - Average (子序列最大平均数 数形结合 斜率优化 单调队列)
- POJ 2018 Best Cow Fences + UVA Live 4726 Average 斜率优化DP
- HDU 2993 MAX Average Problem 斜率优化
- 【DP+斜率优化】 hdu2993 MAX Average Problem
- HDU MAX Average Problem(斜率优化DP)
- UVALive 4726Average 单调队列+斜率优化
- [HDU2993] MAX Average Problem && 斜率优化问题
- HDU 2993 MAX Average Problem (斜率优化)
- 【LA4726】Average【斜率优化】【单调队列】
- LA 4726 Average (单调队列+斜率优化)
- uva 12594 斜率优化dp
- UVA 1451 - Average
- KEIL工程编译出现Error command-line cannot open preprocessing output output file错误
- Qt unicode字串转中文
- python学习笔记(二)
- codeforces 664B题 Rebus 题解记录了我做这道题从错到对的完整思路
- 常见数据结构(二)-树(二叉树,红黑树,B树)
- UVA 1451 Average(斜率优化)
- 第68篇Chrome扩展USB开发(四)及php及JS
- python学习笔记(三)
- 结构体
- C语言中typedef struct与struct的区别
- python学习笔记(四)
- git常用命令
- Check failed: error == cudaSuccess (8 vs. 0) invalid device function
- spark访问qfs