dp Jzoj P5770 可愛精靈寶貝

2022-09-18 00:57:13 字數 1499 閱讀 3130

description

branimirko是乙個對可愛精靈寶貝十分痴迷的玩家。最近,他閒得沒事組織了一場捉精靈的遊戲。遊戲在一條街道上舉行,街道上一側有一排房子,從左到右房子標號由1到n。

剛開始玩家在k號房子前。有m個精靈,第i只精靈在第a[i]棟房子前,分值是b[i],以及它在t[i]秒內(含)存在,之後消失。branimirko可以選擇移動至相鄰的房子,耗時1秒。抓住精靈不需要時間,精靈被抓住後消失。時間從第1秒開始。branimirko能最多獲得多少分值和。

input

輸入的第1行為三個正整數n,k,m。

接下來m行描述精靈的資訊,分別為a[i],b[i],t[i]。

output

輸出branimirko能最多獲得多少分值和。

sample input

10 5 4

1 30 4

3 5 7

7 10 12

9 100 23

sample output

115

data constraint

20%的資料:m≤10

40%的資料:m≤20

k≤n≤1000,m≤100,a[i] ≤n,b[i] ≤100,t[i] ≤2000,所有數為正整數。

hint

很遺憾,它恰好不能抓住在一號房子前的精靈。

如果t[1]改成5,答案就是145

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

namespace

std;

7struct edgee[1010];8

int f[2005][103][103][2

],n,m,k,ans,mx,w;

9bool cmp(edge x,edge y)

10int dis(int x,int y)

11int

main()12;

18 sort(e+1,e+m+1

,cmp);

19 memset(f,-63,sizeof

(f));

20for (int i=1;i<=m;i++)

21if (e[i].a==k&&e[i].b==0

) 22 w=i;

23 f[0][w][w][0]=f[0][w][w][1]=0;24

for (int i=w-1;i>=1;i--)

2530

for (int i=w+1;i<=m;i++)

3136

for (int i=1;i<=mx;i++)

37for (int l=1;l<=w-1;l++)

38for (int r=w+1;r<=m;r++)

3944 printf("%d"

,ans);

45return0;

46 }

577 員工獎金

選出所有 bonus 1000 的員工的 name 及其 bonus。employee 表單 bonus 表單 輸出示例 題目條件 mysql drop table ifexists bonus create table bonus empid int 11 notnull bonus int 11...

狀壓dp JZOJ P3632 舞伴

description n 個男孩,n 個女孩,男孩和女孩可能是朋友,也可能不是朋友。現在要組成n 對舞伴,要求每對舞 伴都是一男一女,且他們是朋友。統計不同配對方案的數量,因為結果很大,所以只要求除以m 的餘數。input 第1 行,2 個整數n,m。接下來n 行,每行n 個整數aij,表示第i ...

樹形dp Jzoj P3347 樹的難題

description input 輸入檔案 為split.in 第一行 包含 乙個正整數 t,表示有t組測試資料 接下來 依次是 t組測試數 據。每組測試數 據的第一行包含個正整數n。第二行包含 n個 0 1 2之一 的整數,依次 表示點 1到點 n的顏色。其中0表示黑色,1表示白色,2表示灰色。...