bzoj1499 NOI2005 瑰麗華爾茲

2022-05-21 14:12:08 字數 753 閱讀 2862

(題目鏈結)

給出乙個n*m的地圖,剛開始人在(x,y),每次給出一段區間(l,r,t),表示在時間[l,r]內,可以使人向4個方向(t)移動一格。求最大可以移動多少格。

考慮每一列(上下移)或者一行(左右移)的情況。以右移為例,我們可以很快列出dp方程:f[i][x][y]=max(f[i][x][y],f[i-1][x][j]+y-j)。這個dp方程我們可以用單調佇列維護,所以複雜度就是nmk的。

// bzoj1499

#include#include#include#include#include#include#define ll long long

#define inf 2147483640

#define pi acos(-1.0)

#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);

using namespace std;

const int maxn=300;

int xx=,yy=;

int q[maxn],p[maxn],f[2][maxn][maxn];

int n,m,l,ans,x,y,k;

char a[maxn][maxn];

void dp(int d,int x,int y,int t)

}int main()

printf("%d",ans);

return 0;

}

BZOJ1499 NOI2005 瑰麗華爾茲

bzoj luogu 首先有乙個很顯然的 o nmt 的 dp 設 dp t i j 表示 t 時刻鋼琴移動到 i,j 位置的最長滑動距離。轉移分滑動以及不動兩種,判一下障礙物就可以了。這樣有50分。然後發現100 的資料中 k le200 而且在每一段中轉移都是完全一樣的,就考慮把 o nmt 的...

BZOJ1499 NOI2005 瑰麗華爾茲

有乙個字元矩陣,表示能走,x 表示不能走,給出起點的座標,起點有一座鋼琴,每單位時間可以移動一格,共有k個時間段,然後再給出每個時間段起始時間和結束時間,以及當前時間段能夠移動的方向。而在某個時間,可以控制鋼琴不動,鋼琴不能走到 x 而且不能走出矩陣 求出鋼琴最多能走多少格 一眼dp題 設f t i...

bzoj 2005 Noi2010 能量採集

description 棟棟有一塊長方形的地,他在地上種了一種能量植物,這種植物可以採集太陽光的能量。在這些植物採集能量後,棟棟再使用乙個能量匯集機器把這些植物採集到的能量匯集到一起。棟棟的植物種得非常整齊,一共有n列,每列有m棵,植物的橫豎間距都一樣,因此對於每一棵植物,棟棟可以用乙個座標 x,y...