P4242 NOIP2016 DAY2 憤怒的小鳥

2021-08-08 14:16:06 字數 923 閱讀 4596

輸入格式

輸出格式

對每個關卡依次輸出一行答案。

輸出的每一行包含乙個正整數,表示相應的關卡中,消滅所有小豬最少需要的小鳥數量。

狀壓dp

先兩兩枚舉鳥座標求出拋物線表示式並列舉可擊殺數量,將其視作乙個商品存入,然後揹包dp。

注意精度 用rep來限制精度查

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define maxn 20

#define maxn1 270001

#define maxn2 500

#define inf 1e9

const

double rep=1e-7;

struct node;

node pos[maxn];

int v[maxn2],f[maxn1];

int t,n,m;

int full;

int num,mc,cnt;

void work()

}v[cnt]=val;

} }

for(i=1;i<=n;i++)

} void dp()

} }

} int main()

}

洛谷P2827,NOIP2016 蚯蚓

傳送門 考慮優先佇列 但是蚯蚓的長度是變化的,如果每一次操作都修改所有蚯蚓的長度,必然超時.但是每一次所有蚯蚓中,只有被斬斷生成的兩個沒有 q,其它所有蚯蚓長度均 q.不難想到,用優先佇列 兩個值 len表示被壓入優先佇列時的長度,t表示被壓入優先佇列的時間,如果當前時間為i,那麼當前蚯蚓的實際長度...

P2827 NOIP2016 提高組 佇列

題意 傳送門 p2827 noip2016 提高組 蚯蚓 題解容易想到使用二叉堆維護長度的最大值,由於每次新產生之外的蚯蚓長度都增加 q qq,而難以修改已經在堆中的元素,那麼對新產生的蚯蚓長度減 q qq,可以使長度的相互關係保持不變。時間複雜度 o m log n o m log n o mlo...

洛谷P2827 NOIP2016 蚯蚓

題目描述 輸入 輸出 思路分析 70分寫法 看到每次取出最大值,第一眼想到的就是優先佇列,我們可以每一次取完隊首元素後將其分開後兩段的長度進行計算,再放入佇列之中即可 但題目中要求,除被切開的蚯蚓外,其餘蚯蚓長度要變長,每次把隊中元素取出並加上q再放入隊中?不用說我們也知道這是不行的,那我們可以 考...