hdoj 1506&&1505(City Game) dp
来源:互联网 发布:百度地图排名优化方法 编辑:程序博客网 时间:2024/05/21 14:08
// l表示从l[i]到i连续大于a[i]的最远左区间,r表示从i到r[i]连续大于a[i]的最远又区间
DP 找出 a[i] 的最远左区间和最远右区间与自己连着的比自己大的数的长度 , 然后用这个长度乘以 a[i], 乘积最大的那个就是答案
hdoj 1506
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 100000+10#define INF 0xfffffff#define ll __int64ll Max(ll x,ll y){ if(x>y) return x; return y;}ll r[N],l[N];ll a[N];int main(){ ll n; while(scanf("%I64d",&n),n) { for(int i=1;i<=n;i++) scanf("%I64d",&a[i]); a[0]=a[n+1]=-INF; l[0]=r[n+1]=0; for(int i=1;i<=n;i++) { l[i]=i; while(a[l[i]-1]>=a[i]) l[i]=l[l[i]-1]; } for(int i=n;i>=1;i--) { r[i]=i; while(a[r[i]+1]>=a[i]) r[i]=r[r[i]+1]; } ll maxn=0; for(int i=1;i<=n;i++) { maxn=Max((r[i]-l[i]+1)*a[i],maxn); } printf("%I64d\n",maxn); } return 0;}
hdoj 1505是1506的加强版,对于矩阵的每一行采取同样的操作
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 1000+10char a[N][N];int dp[N][N];int r[N],l[N];int main(){ int T; scanf("%d",&T); while(T--) { int n,m; int maxn=0; scanf("%d%d",&n,&m); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { scanf(" %c",&a[i][j]); if(a[i][j]=='R') dp[i][j]=0; else dp[i][j]=dp[i-1][j]+1; } } for(int i=1;i<=n;i++) { dp[i][0]=dp[i][m+1]=-1; l[0]=r[m+1]=0; for(int j=1;j<=m;j++) { l[j]=j; while(dp[i][l[j]-1]>=dp[i][j]) l[j]=l[l[j]-1]; } for(int j=m;j>=1;j--) { r[j]=j; while(dp[i][r[j]+1]>=dp[i][j]) r[j]=r[r[j]+1]; } for(int j=1;j<=m;j++) { maxn=max(maxn,(r[j]-l[j]+1)*3*dp[i][j]); } } printf("%d\n",maxn); } return 0;}
0 0
- hdoj 1506&&1505(City Game) dp
- HDOJ 1505 City Game
- hdoj 1505 City Game 【dp or 单调栈】
- hdu 1505 city game(1506加强版)dp
- hdu 1505 City Game(dp)
- HDU 1505:City Game(悬线DP)
- HDU 1505 City Game(DP)
- HDU 1505 City Game(DP)
- hdu 1505 City Game(dp)
- HDU 1505 City Game(dp)
- HDU-1505-City Game(DP)
- hdu 1505 dp City Game
- HDU 1505 City Game (DP)
- hdu 1505 City Game(DP)
- hdu 1505 City Game(DP)
- hdu 1505 City Game dp
- HDU 1505 City Game(DP)
- hdu 1505 City Game dp
- android gridview 行高设置
- c++ 十进制转换十六进制
- 黑马程序员——集合框架
- block 实现原理(内存管理详解)
- Activity的启动模式
- hdoj 1506&&1505(City Game) dp
- 单片机英文缩写的英文全称及中文名称
- 基于HTK中文普通话语音识别DEMO,LilyMandarinSpeechRecognition V1.0
- android中AIDL
- 软件版本
- c++调HttpAnalyzer进行抓包及加载tlb失败的解决方法
- runtime 运行时机制 完全解读
- HTTP协议 (六) 状态码详解
- php 正则表达去除空格跟换行