傳送門:
【題解】
按二進位制位分開,對於每一位,用「起床困難症候群」的方法貪心做。
寫棵lct,維護正反兩種權值,每個維護2種,代表全0的輸出和全1的輸出。
然後直接上lct即可。
權值的合併有點trick,可以參考**,需要壓位。
# include # includeview code# include
# include
//# include
using
namespace
std;
typedef
long
long
ll;typedef
long
double
ld;typedef unsigned
long
long
ull;
const
int m = 1e5 + 10
;const
int mod = 1e9+7
;int
n, m, k;
struct
node
node (ull p0, ull p1) : p0(p0), p1(p1) {}
friend node
operator +(node a, node b)
};inline node deal(
intop, ull x)
struct
lct
inline
void pushrev(int
x) inline
void down(int
x) # undef ls
# undef rs
inline
bool isrt(int
x) inline
void rotate(int
x)
intst[m];
inline
void splay(int
x) rotate(x);}}
inline
int access(int
x)
return
t; }
inline
void makeroot(int
x)
inline
void link(int x, int
y) }t;
# define bit(x, i) (((x) >> (i)) & 1
) int
main()
for (int i=1, u, v; ii)
intop, x, y; ull z, tx, ty, ans, t;
while(m--)
}printf(
"%llu\n
", ans);
} else
}return0;
}
Luogu3613 睡覺困難症候群
luogu題面 這道題是noi起床困難綜合症改編而來的 思路是一樣的 這道題我們考慮用lct維護,每個節點維護兩個值 乙個為中序遍歷這棵子樹的ans0,ans1 分別表示0和inf 二進位制下全為1 跑的答案 另乙個為中序遍歷的反向遍歷這棵子樹的ans0,ans1 還要記得儲存這個點的初始操作 考慮...
luogu3613 睡覺困難症候群
題目背景 剛立完flag我就掛了wc和thuwc。時間限制0.5s,空間限制128mb 因為claris大佬幫助一周目由乃通過了deus的題,所以一周目的由乃前往二周目世界找雪輝去了 由於二周目世界被破壞殆盡,所以由乃和雪輝天天都忙著重建世界 其實和mc差不多吧 deus看到了題問她,總是被告知無可...
BZOJ4811 睡覺困難症候群
給你乙個有n個點的樹,每個點的包括乙個位運算opt和乙個權值x,位運算有 l,三種,分別用1,2,3表示。每次詢問包含三個數x,y,z,初始選定乙個數v。然後v依次經過從x到y的所有節點,每經過乙個點i,v就變成v optixi,所以他想問你,最後到y時,希望得到的值盡可能大,求最大值?給定的初始值...