這種無序序列先排個序
發現序列\(a\)最終狀態是固定的,即操作完並排序後只有一種可能的序列
設\(c_i\)表示\(a_i\)加了多少次
這個時候加的總數是固定的,最優方案是\(c_i\)公升序和\(b_i\)降序後相乘
那麼要滿足最大的c盡量大
倒序加a即可
發現有貢獻的只有全域性 mex
然後左端點固定,mex有單調性
然後列舉右端點,維護mex恰好為全域性mex的左端點
然後簡單dp
考慮建出兩棵克魯斯卡爾重構樹,分別滿足x,y的lca是原樹上的x,y路徑上的最小值和最大值
然後滿足題目限制的x,y在兩棵樹上分別互為祖先
這個可以對第一棵樹求出dfs序,然後dfs第二棵樹,樹狀陣列維護x的祖先的第一棵樹的dfs序
t1
#include using namespace std;
#define ull unsigned long long
const int n = 1e6 + 4;
struct ans_ ;
int n;
int c[n];
int a[n], b[n];
dequedui;
inline bool cmp(int a, int b)
inline int read()
int main() );
}if (!dui.size()) else
}sort(c + 1, c + n + 1, cmp);
for (int i = 1; i <= n; ++i) ans += 1ull * c[i] * b[i];
cout << ans << endl;
return 0;
}
t2#include using namespace std;
const int n = 3.7e7 + 4;
const int mod = 1e9 + 7;
int n;
int mex;
int a[n];
int f[n];
int ton[n];
inline void md(int& x)
void init()
inline int read()
int main() else
for (int i = 1; i <= n; ++i) a[i] = read();
mex = 0;
init();
for (int i = 1; i <= n; ++i)
int now = 0;
init();
for (int i = 1; i <= n; ++i)
}int sum = 1;
int st = now;
now = 1;
--ton[a[st]];
for (int i = 1; i <= n; ++i) f[i] = 0;
for (int i = st; i <= n; ++i)
f[i] = sum;
}cout << f[n] << endl;
}return 0;
}
t3#include using namespace std;
const int n = 2e6 + 11;
struct q*** cc[2 * n];
struct ed_ e[n];
int n;
int f[n];
int tre[n];
int siz[n];
int dfn[n], st;
int first[n], cnt;
int sta[n], num;
long long ans;
vectormx[n];
vectormn[n];
void pre()
void insert(int x, int val)
int query(int x)
int find(int x)
void qxx(int u, int v) ;
first[u] = cnt;
return;
}inline int max_(int a, int b)
inline int min_(int a, int b)
inline bool cmpmx(ed_ a, ed_ b)
inline bool cmpmn(ed_ a, ed_ b)
inline int read()
void pre_tre()
pre();
sort(e + 1, e + n, cmpmx);
for (int x, y, j = 1; j < n; ++j)
return;
}void dfs_mn(int x)
return;
}void get_ans(int x)
insert(dfn[x], -1);
return;
}signed main() ;
}pre_tre();
dfs_mn(1);
get_ans(n);
cout << ans << endl;
return 0;
}
遊記 NOIP2021 遊記
遊 nm,湖大臨時不搞了,新的考場機位不夠,只允許 csp2021 s 1 的初中生參加,親手葬送 noip 省選。退役是不可能的,ys 說盡力讓我參加明年省選,只要實力還在,一次 noip 不算什麼。想參加wc 具體原因請看 遊記 csp2021 s 遊記 湖大突然說不搞了,ys 讓我週六下午在小...
NOIP2021 棋局 題解
由於存在相對顏色大小關係,我們考慮線段樹合併來維護這個結構。為了後續的討論的方便,我們將lv進行離散化。這裡的離散化是在對統計不產生影響時,將所有的值都變得不同。對於每個連通塊我們維護四顆線段樹分別表示表示 同時維護兩個是為了之後處理直行道路時好處理。初始化時,我們將每個點的相鄰的有互信道路且沒有點...
遊記 noip 2021 遊記
笑死,noip 遊記還沒發 河北突然有疫情了,好像要在本校考了 還我爆頹之夜 不過似乎可以從 orz4338e 手裡逃過一傑,這是好的 看著幾個月前攢出來的題單突然意識到了什麼 然而只剩不到一周了根本不珂能做完 幾次模擬賽越考越拉,非常自閉 於是開始了報復性刷題 大概是一直在口胡 直接看題解 之前一...