標籤:前言本文內容翻譯 Basic vi Command, Colorado State University, 翻譯原文的大部分內容。本文介紹的是 UNIX 下的 vi 編輯器,和 Linux 下常用的 vim 會略有不同。由於 vim 是從 vi 發展而來的文字編輯器,所以本文的內容也值得一讀。我把新學到的或者值得注意的命令用黃色高亮了出來 什麼是 vi ? UNIX 作業系統的預設編輯器就是 vi (visual editor)。可見 vi
標籤:離線建樹,樹鏈剖分。#include<bits/stdc++.h>#define N 100010#define M (l+r>>1)#define P (k<<1)#define S (k<<1|1)#define L l,M,P#define R M+1,r,S#define Z int l=1,int r=n,int k=1using namespace std;int n,m;struct edge{edge* s;int v;}e[
標籤:題比較有趣,輸入輸出比較麻煩。每個點拆成兩個,線段樹維護。(這題痛點真的在輸入輸出)#include<bits/stdc++.h>#define N (1<<17)#define M (l+r>>1)#define P (k<<1)#define S (k<<1|1)#define K l,r,k#define L l,M,P#define R M+1,r,S#define Z int l=0,int r=N,int
標籤:線段樹維護兩個值四個標記,注意打標記的順序。#include<bits/stdc++.h>#define N (1<<18)#define M (l+r>>1)#define P (k<<1)#define S (k<<1|1)#define L l,M,P#define R M+1,r,S#define Z int l=1,int r=n,int k=1using namespace std;int n;typedef int
標籤:裸樹剖。#include<bits/stdc++.h>using namespace std;#define N 100010#define M (l+r>>1)#define P (k<<1)#define S (k<<1|1)#define L l,M,P#define R M+1,r,S#define Z int l=1,int r=n,int k=1typedef int ds[N];ds dp,num,p,size,son,tmp,
標籤:題面:給一個 1 到 N 的排列{Ai},詢問是否存在 1<=p1<p2<p3<p4<p5<…<pLen<=N(Len>=3),使得 Ap1,Ap2,Ap3,…ApLen 是一個等差序列。題解:http://www.cnblogs.com/zyfzyf/p/3898065.html代碼:#include<bits/stdc++.h>#define N