洛谷P8148題解

2022-09-21 00:24:10 字數 842 閱讀 8701

本文同步更新於洛谷部落格

\(a\) 為長度為 \(n\) 的非負整數序列,滿足 \(\forall 1。現無序地給出可重集 \(s=\^ra_k|1\le l\le r\le n\}\),試還原 \(a\)。

先宣告一下,\(a\) 為給定的序列,\(b\) 為還原後的 \(a\),\(c_\) 為 \(\sum_^jb_k\),\(s\) 為 stl 容器 multiset,下述區間的長度均大於 \(1\)。

由於給定的數是無序的,所以先對 \(a\) 排序。若 \(a_i\) 在 \(s\) **現過,則它為 \(b\) 某一段區間的和,將其從 \(s\) 中刪掉即可;若 \(a_i\) 沒在 \(s\) **現過,不妨假設 \(b_j=a_i\),我們將所有以 \(j\) 結尾的 \(b\) 的區間和放入 \(s\) 中即可。

#includeusing namespace std;

#define rint register int

const int maxn=2001005;

inline int read()

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

return x*f;

}int n,m,x,a[maxn],b[2005],c[2005],cnt;

multisets;

multiset::iterator pos;

int main()

else

}for(rint i=1;i<=n;i++)

printf("%d ",b[i]);

return 0;

}

洛谷 P1101 題解

這道題可以用深搜 回溯 來寫,相信大部分人都是這麼想的,但是有些人可能在一些地方饒了半天,所以這裡就貼一下我的思路,個人覺得自己的很好懂,除了tx和ty那裡,但是tx和ty的那種用法對於輸出路徑的題目一般很實用 這個算是比較簡單的吧,題目裡給出了具體要找的字串,我們要做的就是對它進行8個方向的搜尋,...

洛谷 P1169 題解

請你在乙個黑白矩陣中選出乙個長方形 含正方形 和正方形的子矩陣,使得所有相鄰的點顏色不一樣。矩陣大小 兩條邊都 2000 2000 2 000輸入 3 31 0 1 0 1 0 1 0 0輸出4 6解釋給定矩陣 正方形 長方形 我的控制台是萌萌噠 ffc0cb粉色 乙個小技巧 如果您的控制台是像我的...

題解 洛谷 P3332

題目描述 權值線段樹套線段樹板子題 首先觀察題目,判斷為二維偏序問題 操作1為區間修改,所以一定是外部線段樹維護權值,內部線段樹維護所在區間,否則時間複雜度 qwq 為方便查詢,雜湊時我採用雜湊每個數的相反數的方法將求第k大轉換為求第k小 詢問可以直接想到的做法就是二分答案,查詢1 ans在區間內的...