Light OJ 1017 Brush (III) (dp)
来源:互联网 发布:深圳网络诈骗律师 编辑:程序博客网 时间:2024/05/16 07:26
题意:平面有n个点,一次操作能去除x轴方向上宽度为w(x<=y<=x+w,x为任意值)的所有的点。问最多k次操作,能去除的点的个数的最大值。
解析:简单DP
将点按照y坐标排序,dp[k][i]为对前i个点k次操作的最大值,且第k次清除 a[i]-w<=y<=a[i]区域内的所有的点。
递推方程见代码。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,w,m,a[105];int dp[105][105];int main(){ int i,j,k,T,cas,c; scanf("%d",&cas); for(T = 1;T <= cas;T++){ scanf("%d%d%d",&n,&w,&m); for(i = 0;i < n;i++){ scanf("%d%d",&c,&a[i]); } memset(dp,0,sizeof(dp)); sort(a,a+n); int ans = 0; for(k = 1;k <= m;k++){ for(i = 0;i < n;i++){ int p,cnt = 0; for(j = i;j>=0&&a[j]>=a[i]-w;j--){ cnt++; } dp[k][i] = cnt; for(p = 0;p <= j;p++) dp[k][i] = max(dp[k][i],cnt+dp[k-1][p]); ans = max(ans,dp[k][i]); } } printf("Case %d: %d\n",T,ans); } return 0;}
0 0
- light oj 1017 - Brush (III) (dp)
- Light OJ 1017 Brush (III) (dp)
- light oj 1017 Brush (III)
- [light oj 1018]Brush(IV)[状压DP]
- [light oj 1018]Brush(IV)[状压DP]
- LightOJ 1017 Brush (III) (DP)
- lightoj 1017 - Brush (III) (DP)
- LightOJ 1017 Brush (III) 【DP】
- LightOJ 1017 Brush (III) (DP)
- Light OJ 1248 - Dice (III) 概率DP
- LightOJ 1017 - Brush (III)【一般DP】
- LightOJ 1017 - Brush (III) (dp)
- LightOJ 1017 - Brush (III)(dp)
- lightoj 1017 Brush (III) 基础DP
- lightoj 1017 - Brush (III)(dp)
- lightoj 1017 - Brush (III) 【离散化 + dp】
- LightOJ - 1017 Brush (III) (DP)
- LightOJ1017---Brush (III) (dp)
- JavaScript面向对象
- Qt中使用 setStyleSheet来设置图形界面的外观
- Java IO/NIO
- 在一个JS文件中引用另一个JS文件
- Java 多线程
- Light OJ 1017 Brush (III) (dp)
- Android-NDK编译问题
- 在release版本禁止输出NSLog内容
- 倒计时的讨论
- 图片擦除
- iOS Core Animation编程指南
- javascript 开发调试的利器(二) 获取当前执行函数及函数名称
- 从头认识Spring-1.11 注入List或Set(这个例子比较体现代码复用)
- 代码冲突解决工具BeyondCompare的在SourceTree中的配置方法