按照國際慣例先發題目鏈結
woc從4月就開始做這sb題。最開始30分公升到65分不管了,直到最近幾天公升到85分,再到今天ac。激動的心情自然是那些一遍就a或者一小時以內就a的神犇難以想象的。
下面說說主要幾個分段。
# 35分
按題意用堆模擬。每次暴力修改蚯蚓長度,於是get**:tle藍。
# 65分
考慮到暴力修改消耗的時間複雜度過大,於是考慮偷懶。既然我們不能暴力增長已經存進堆的蚯蚓長度,那就剪短將要存進堆的蚯蚓長度。將目前蚯蚓增加的長度記為mark,從堆裡取出來的蚯蚓長度+mark,要存進堆的蚯蚓長度-mark再-q。每次迴圈mark+=q。
# 100分
先忽略mark和q。蚯蚓肯定是越切越短,那我們還用堆幹嘛?直接開三個佇列存蚯蚓,第乙個佇列存輸入的蚯蚓,對於切出來的每條蚯蚓,長的放第二個佇列,短的放第三個佇列。
可以得到三個佇列都是單調遞減的。取出的蚯蚓從三個佇列的隊頭取最大的。這樣就轉化為普通佇列解法。
**如下
#include#include#include
#include
#include
using
namespace
std;
bool cmp(int a,int b)
inline
long
long
read()
while
(isdigit(ch))
return num*f;
}inline
long
long swap(long
long a,long
long b)
long
long
mark;
long
long
n,m,q,u,v,t;
long
long que[10000000
];long
long f[10000000],d[10000000],fh=1,dh=1,ft,dt,qt=1
;int
main()
printf("\n
");for(int i=1;i<=n+m;++i)
return0;
}
蚯蚓 P2827 蚯蚓
本題中,我們將用符號 c lfloor c rfloor c 表示對c向下取整,例如 3.0 3.1 3.9 3 lfloor 3.0 rfloor lfloor 3.1 rfloor lfloor 3.9 rfloor 3 3 0 3.1 3 9 3。蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓...
洛谷 2827 蚯蚓
有n只stupid蚯蚓,每次把最長的切成兩條蚯蚓,切口比例會給出 詢問第t次,第2t次 切割的蚯蚓的原長度,把最終的長度排序後輸出看起來像是大根堆是不是,然而只能拿85分 事實上根本不用堆注意到,先切割的蚯蚓的切割後的長度必定大與後切割的 也就是自帶單調性 然後就和平了因為用了sigma這個東西,所...
題解 LuoGu2827 蚯蚓
原題傳送門 此題非常優先佇列,非常裸 但是資料規模似乎在暗示我們甚至有o n o n o n 寫法驚訝地發現題目中的乙個隱含性質 先切的蚯蚓一定比對應的後切的蚯蚓長 維護3個佇列,分別表示沒切過,p,1 p p,1 p p,1 p 3組蚯蚓 因為單調,每次比一比隊首彈出,隊尾插入 再是用到乙個思想,...