**莫隊:
題目傳送門:
首先答案肯定是\(\frac\),\(cnt_i\)表示第\(i\)種顏色的襪子的個數。
所以我們每次移動左右端點的時候,把當前新增或者刪去的襪子的顏色的襪子對應的\(cnt_i*(cnt_i-1)\)從答案裡面挖掉,然後讓\(cnt_i\)加上或者減一,然後再把\(cnt_i*(cnt_i-1)\)加進答案裡面去就行了。
時間複雜度:\(o(n\sqrt)\)
空間複雜度:\(o(n)\)
**如下:
#include #include #include using namespace std;
typedef long long ll;
const int maxn=5e4+5;
ll ans;
int n,m,block;
int a[maxn],cnt[maxn],bel[maxn];
int read()
struct query
}q[maxn];
void change(int col,int v)
bool cmp(query a,query b)
sort(q+1,q+m+1,cmp);
for(int i=1;i<=m;i++)
}return 0;
}
BZOJ 2048 2009國家集訓隊 書堆
第一行正整數 n m ou tput 一行 有換行符 l 表示水平延伸最遠的整數距離 不大於答案的最大整數 sa mple inpu t 樣例 1 i nput 1100 o utpu t 49 2 in put 2 100 ou tput 74 s ampl eout put n 10 18 資料...
字符集 國家字符集及NLS LANG執行庫
unicode編碼方案 三個實施標準 utf 8,usc 2,utf 16 oracle資料庫字符集 字符集character set 國家字符集national character set 字符集主要作用 用於儲存varchar2,char,clob,long型別資料 標示表名,列名,以及pl s...
BZOJ2144 國家集訓隊 跳跳棋
跳跳棋是在一條數軸上進行的。棋子只能擺在整點上。每個點不能擺超過乙個棋子。我們用跳跳棋來做乙個簡單的遊戲 棋盤上有3顆棋子,分別在a,b,c這三個位置。我們要通過最少的跳動把他們的位置移動成x,y,z。棋子是沒有區別的 跳動的規則很簡單,任意選一顆棋子,對一顆中軸棋子跳動。跳動後兩顆棋子距離不變。一...