題面傳送門
三十分…
於是我只能重新想思路。然後就只得了35
3535
分。考試結束後老師叫我們自己去網上找題解,然而我發現,居然沒有任何一篇luo
gu
luogu
luog
u題解是正解。於是我準備發一篇題解來k
kk掉luo
gu
luogu
luog
u所有題解。
正解:我們先把這個峽谷想象成乙個時間軸,每個時間我們最多能帶c個糖果。
貪心思路:將右端點從小到大排序,驗證這個區間在前面的情況下能不能完成,若能完成,將這一區間內所有點減去當前糖果數。這一定是最優答案。若不能,不去管他。
但這減去又十分費時間,所以我們用線段樹來維護其最小值,因為能帶的糖果數取決與最小值。
但我們發現乙個問題:在糖果消失的時候不能減去時間,所以我們將這個區間變成左閉右開的區間。
這不就很完美的結束了嗎?
**實現:
#include
#include
#define min(a,b) ((a)<(b)?(a):(b))
using
namespace std;
int n,m,k,ans,tot,f[
2000039
],x,y,z,fs[
2003009
],sum[
2000039];
struct yyy a[
2000039
],tmp;
inline
void
read
(int
&x)inline
bool
cmp(yyy a,yyy b)
inline
void
jianshu
(int l,
int r,
int now)
register
int m=
(l+r)
>>1;
jianshu
(l,m,now<<1)
;jianshu
(m+1
,r,now<<1|
1); sum[now]
=k;}
inline
void
push
(int l,
int r,
int now)
inline
void
get(
int l,
int r,
int now)
register
int m=
(l+r)
>>1;
push
(l,r,now);if
(x<=m)
get(l,m,now<<1)
;if(y>m)
get(m+
1,r,now<<1|
1); sum[now]
=min
(sum[now<<1]
,sum[now<<1|
1]);
}inline
intfind
(int l,
int r,
int now)
intmain()
printf
("%d"
,tot)
;return0;
}
但是線段樹常數很大,於是要卡常。
我把s or
tsort
sort
手寫,加暫存器…終於卡過了時限:984ms
984ms
984ms!
**實現:
#include
#pragma gcc optimize(2)
#pragma gcc optimize("inline")
using
namespace std;
int n,m,k,ans,tot,f[
2000039
],x,y,z,fs[
2003009
],sum[
2000039];
struct yyy
} a[
2000039];
inline
void
read
(register
int&x)
inline
void
push
(register
int l,
register
int r,
register
int now)
inline
void
get(
register
int l,
register
int r,
register
int now)
register
int m=
(l+r)
>>1;
push
(l,r,now);if
(x<=m)
get(l,m,now<<1)
;if(y>m)
get(m+
1,r,now<<1|
1); sum[now]
=sum[now<<1]
1]?sum[now<<1]
:sum[now<<1|
1];}
inline
intfind
(register
int l,
register
int r,
register
int now)
inline
void
sort
(register
int l,
register
int r)
}while
(i<=j);if
(lsort
(l,j);if
(isort
(i,r);}
intmain()
printf
("%d"
,tot)
;return0;
}
然而正解是zkw
zkwzk
w線段樹?
算了,去看rsj
rsjrs
j大佬的zkw
zkwzk
w線段樹吧
(154)光照通道
光照通道 lighting channels 使動態光源僅在其光照通道發生重疊時才對物體產生影響。它主要用於動畫,使使用者能更自如地掌握actor的照亮。當前虛幻引擎支援最多 3 種光照通道。定向光源 聚光源 點光源和可被光源影響的所有 actor 靜態網格體 骨架網格體等 均預設啟用lightin...
qzezoj 1568 反覆求和
題面傳送門 這道題首先要有乙個思維的轉換 對於選擇滿足0 i n0 leq i n 0 i n 的任意下標i ii 並讓a aa陣列裡下標為i ii處的值變為sum sumsu m。把賦值的思維轉化成選擇乙個下標,把除了這個下標的所有值加到它身上 這道題正著想很難想,俗話說得好,正難則反,所以我們不...
qzezoj 1543 最快路線
題面傳送門 看到這道題,想到spf aspfa spfa 但這道題好像故意的,偏偏又路牌被拆的道路 在衢州的話負責那一段路的交警就該 了 所以我們不能只以d id i di 為tim etime time 的唯一標準。想象一下 如果下一條路是沒有路牌的,而這時過來一條路,tim etime time...