noip多校模擬28

2022-09-06 01:06:11 字數 1884 閱讀 6634

考試過程:這次考試,感覺不在狀態。四個題都沒有什麼正解的思路,心態也比較不好。

總體來說今天的狀態不是很好,需要及時調整。

因為我幾天前做了一道期望題,那個題是資料範圍也是比較小,而且正解是\(o(n)\)的,所以這道題我也就一直在想\(o(n)\)的做法,想了乙個多小時,沒什麼思路,就直接棄了。但是正解是\(o(n^2)\)的。

剛開始我設\(f_\)表示我拿了\(i\)個瓜子,\(j\)個瓜子皮的期望次數,但是得到的結果不對,然後根據定義顯然沒法轉移,因為我拿\(i\)個瓜子,\(j\)個瓜子皮的期望次數顯然就是\(i+j\)次,所以這樣正推不可行。

於是設\(f_\)表示目前還剩\(i\)個瓜子,\(j\)個瓜子皮的期望次數,那麼轉移方程顯然就是\(f_= \fracf_+\fracf_\).

最後還有注意的一點,題目要求輸出\(q\times r\)與\(p\)同餘,那麼也就是\(r\)與\(\frac\)同餘,也就是\(p\times inv[q]\)

**如下:

ac_code#include#define int long long

#define re register int

#define ii inline int

#define iv inline void

using namespace std;

const int mo=998244353;

const int n=2e3+10;

const int m=1e4+10;

int n,ans;

int f[n][n<<1],jc[m],pv[m],inv[m];

ii read()

while(ch>='0' and ch<='9')

return f?x:(-x);

}ii ksm(int d,int z)

return out;

}signed main()

jc[0]=1;

for(re i=1;i=0;i--) pv[i]=pv[i+1]*(i+1)%mo;

inv[0]=1;

for(re i=1;i

思路:如果我們找到朝左和朝右k個比它大的元素,那麼乙個個元素是第\(k\)當且僅當個包含了\(k-1\) 個比它大的元素,可以在\(o(k)\) 時間複雜度內解決。如何找到往左往右比它大的\(k\)個元素,我們可以把元素用雙向鍊錶連線起來,每次刪除乙個元素的時候往左往右找即可。

**如下:

ac_code#include#define int long long

#define re register int

#define ii inline int

#define iv inline void

using namespace std;

const int n=5e5+10;

int n,k,ans;

int pre[n],suf[n];

int a[n],pos[n],u1[n],u2[n];

ii read()

while(ch>='0' and ch<='9')

return f?x:(-x);

}signed main()

{ freopen("kth.in","r",stdin);

freopen("kth.out","w",stdout);

n=read(),k=read();

for(re i=1;i<=n;i++) a[i]=read(),pos[a[i]]=i;

int p=pos[1];

for(re i=1;i<=n;i++) pre[i]=i-1,suf[i]=i+1;

for(re i=1;i<=n;i++)

{ int l=0,r=0;

for(re j=pos[i];j and l

NOIP模擬99 多校31

原題3100,張口放 t1 出題人原話 思維題,合法的情況其實就是上下兩個梯形拼起來的樣子。他們的邊界都是在 i 軸上面,但是不能相交。於是我們可以嘗試兩者相交的縱座標,再列舉左邊梯形的下邊界一級右邊梯形的上邊界,對於答案的話再乘上乙個二。displaystyle sum sum sum binom...

NOIP模擬91 多校24

簽到題 然而我陣列開小直接變成暴力分。發現其實就是第一類斯特林數,然後 n 2 推就好了。感覺可以用 ntt 優化成 nlogn 但是好像並沒有什麼卵用 再說了,我也不會。include define int long long define ull unsigned long long defin...

NOIP模擬賽多校聯考 Round7題解

對任意數求分解為2的冪之和有多少種分法。奇怪的遞推。手玩小樣例得知答案序列為n級等差數列。貌似碾標算 include using namespace std namespace standardio templateinline void write t x using namespace stan...