題面傳送門
還好的一道題。
這麼大的資料範圍肯定考慮\(o(nlogn)\)
考慮暴力怎麼打,顯然是對於每個甜點依次加入當前序號,最後判斷。
新增每個序號可以線段樹搞,但是問題是最後下推時仍然會是\(o(n^2)\)的複雜度
我們可以適當降低正確率來確保時間複雜度。
考慮雜湊,然後就是線段樹一段區間乘base和加上乙個數,選取適當的模數(我因為選了998244357被卡掉5分)和hase即可。
**實現:
#include#define base 5
#define mod 1000000007
#define l(x) x<<1
#define r(x) x<<1|1
#define ci const int &
using namespace std;
int n,m,k,x,y,z,ans;
long long fj[800039],fc[800039],st;
inline void js(ci l=1,ci r=n,ci now=1)
inline void push(int x)
inline void get(int x,int y,int z,ci l=1,ci r=n,ci now=1)
push(now);int m=l+r>>1;
if(x<=m)get(x,y,z,l,m,l(now));
if(y>m) get(x,y,z,m+1,r,r(now));
}inline void find(ci l=1,ci r=n,ci now=1)
push(now);int m=l+r>>1;find(l,m,l(now));find(m+1,r,r(now));
}int main()
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...
NOIP模擬賽 老師
題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...
NOIP模擬賽 分錢
題目描述 兩個人在街上撿到了一些錢,這些錢共有n張,他們等了很久也沒有等來失主,於是決定把錢平分。但錢可能無法平分。他們先把能夠平分的錢盡量先平分了,使得剩下不能平分的錢盡量少。這些不能平分的錢怎麼辦呢他?他們決定拿去賭場裡面賭一把。他們運氣太好了,那些不能平分的錢變成了雙倍,於是他們就把那個錢分了...