之所以補這題,是因為第一次使用rope,這是乙個可持久化平衡樹。
不過本題沒有用到可持久化就是了,平衡樹的split和merge。
#include
using namespace __gnu_cxx;
下標從0開始,不可以cin,可以cout
由於rope的底層實現,insert,erase,get都是logn的
reverse是o(n)的,所以構造兩個rope來做
push_back(x) 在末尾新增x
insert(pos,x) 在pos插入x
erase(pos,x) 從pos開始刪除x個
replace(pos,x) 從pos開始換成x
substr(pos,x) 提取pos開始x個
at(x)/[x] 訪問第x個元素
rope*his[maxn], his[i]=new rope(*his[i-1]) 可持久化陣列
#define others
#ifdef poj
#include
#include
#include
#include
#include
#include
#include
#include
#include
#endif // poj
#ifdef others
#include
#include
#endif // others
//#define file
#define all(x) x.begin(), x.end()
using
namespace
std;
using
namespace __gnu_cxx;
#define eps 1e-8
const
double pi = acos(-1.0);
typedef
long
long ll;
typedef
long
long ll;
typedef
unsigned
long
long ull;
void umax(int &a, int b)
void umin(int &a, int b)
int dcmp(double x)
void file()
const ll mod = 1e9+7;
ll powmod(ll a,ll b) return res;}
namespace solver
for (int i = 1; i <= m; i++)
for (int i = 0; i < str.size(); i++)
printf("%d%c", str[i], i == str.size() - 1?'\n':' ');
}}int main()
/*1,2,4,6,9,13,17,21,26,32,38,45,53,61,69,77,86,96,106,117,129,141,153,166,180,194,209,225,241,257,273,
*/
牛客多校第5場D Drop Voicing
有乙個1 n的排列,有以下兩種操作 drop 2 將倒數第二個數放到開頭,前面的數向後平移 invert 將倒數第二個數放到開頭,前面的數向後平移 若干連續的drop 2稱為multi drop。計算要使該排列排成1 n所需的最少的multi drop的數量。首先invert可以無條件使用,那麼就可...
牛客多校第5場 G題 subsequence1
題意 乙個s的串中有多少個比t大的子串行 不連續的 要取模。題解 純dp的題目。建立乙個三維dp i j 3 i,j代表了s的前i項有多少種子序列能匹配t的前j個數字。最後乙個維度3,代表有三個矩陣,乙個是s的前i項有多少種子序列能大於t的前j個數字 2 乙個是s的前i項有多少種子序列能等於t的前j...
2018牛客多校3
h diff prime pairs 1 3 1 5 1 7 1 11.2 3 2 5 2 7 2 11.3 3 3 5 3 7 3 11.4 3 4 5 4 7 4 11.打個素數表 用素數篩一遍 includeusing namespace std bool a 11111111 int zs ...