洛谷4月月賽R2

2022-04-06 19:37:35 字數 2716 閱讀 9191

打醬油...

線性篩約數和就可以\(o(n)\)了...

#include #include #include #include #include #include using namespace std;

typedef long long ll;

const int n=1e6+5;

inline ll read()

while(c>='0' && c<='9')

return x*f;

}bool notp[n]; int p[n/10], lp[n]; ll si[n];

void sieve(int n)

lp[t] = p[j];

si[t] = si[i] * (1 + p[j]);}}

for(int i=1; i<=n; i++) si[i] += si[i-1];

}int n;

int main()

卡讀題...

容易發現就是求區間出現次數最多的權值

把區間眾數的分塊複製上t掉了,怒寫莫隊

#include #include #include #include #include using namespace std;

typedef long long ll;

const int n=2e5+5, mo = 998244353;

inline ll read()

while(c>='0' && c<='9')

return x*f;

}int n, q, a[n], ans[n], mp[n], pos[n], block;

struct meow

} q[n];

int c[n], d[n], l, r, now;

inline void add(int x)

inline void del(int x)

void modui()

}int main()

不會...我多項式除了算卷積什麼都不會...

update:現在會了,在另一篇文章上

題意:支援區間加,區間乘,單店詢問,撤銷某次操作

一眼感覺可以用線段樹分治做,然後寫寫寫,拍了幾組資料不對啊...

然後調了兩個小時,突然發現,因為有乘標記,每個操作不是獨立的!,這還分治什麼啊。

感覺其他的做法都很神奇

放乙個錯誤的**

#include #include #include #include #include using namespace std;

typedef long long ll;

const int n=2e5+5, mo = 998244353;

inline ll read()

while(c>='0' && c<='9')

return x*f;

}int n, m, op, l, r, d, p, ans[n];

struct meow

};typedef vectorvm;

vm a;

meow st[n]; int top;

inline void mod(ll &x)

inline int pow(ll a, int b)

namespace seg } t[n<<2];

inline void _add(int x, ll d)

inline void _mul(int x, ll d)

inline void pushdn(int x)

if(t[x].a)

} void add(int x, int l, int r, int ql, int qr, ll d)

} void mul(int x, int l, int r, int ql, int qr, ll d)

} int que(int x, int l, int r, int p) }

#undef mid

} inline void add(int l, int r, int d)

inline void mul(int l, int r, int d)

void recov(int bot)

}int q;

void cdq(int l, int r, vm &a)

else if(now.t <= mid) b.push_back(now);

else if(mid < now.s) c.push_back(now);

else

} if(l != r)

recov(bot);

}int main() );

if(op == 2) l=read(), r=read(), d=read(), a.push_back( (meow) );

if(op == 3) p=read(), a.push_back( (meow) );

if(op == 4) p=read()-1, a[p].t = i, a.push_back( (meow) );

} for(int i=0; ifor(int i=0; icdq(1, m, a);

for(int i=1; i<=q; i++)

//printf("\n\n%lld", ((ll)1e18 % mo + mo) %mo);

}

洛谷 9月月賽

題目描述 眾所周知,在一些特殊的部門,如果密碼能夠讓乙個人就解開,就會非常不安全。pic pre invoked code,預生成密碼 誕生了。這個密碼比較安全,是因為它必須由三個人保管。系統首先預先生成三個大整數a b c,計算出它們的與and 或or 和sum並儲存,然後將a b c分別告訴這三...

洛谷5月月賽

n堆石子,每次可以從第i堆中取走乙個當且僅當ni ni 1 第0堆視作0個 拿不了就輸了。問先手贏還是後手贏。奇偶性問題。不管如何分布,必定全部被拿完。include inline char gc return s inline int read while c 0 c 9 return x f i...

洛谷10月月賽R2 浴谷八連測R3 T1

qaq 我愛珂朵莉。sum i 表示1 i的東西搬到1的總花費 dis i 表示1 i距離1的總距離 q i 表示1 i東西的數量 當x l的時候 sum r sum l 1 為l r東西搬到1的花費 減去dis x q r q l 1 就是答案。當x r的時候 dis x q r q l 1 su...