題意:n個點,對於每個點i,都有一條連向i+1的有向邊,另外有m條其他的有向邊,有q個詢問(u,v)求u到v的最短路。
當uv的處理方法很相似。分兩種情況,分別離線處理一次就可以了。
//#pragma comment(linker, "/stack:102400000,102400000")
#include #include #include #include #include #include #include #include #include using namespace std;
typedef long long ll;
typedef pairpii;
#define inf (1ll<<60)
#define ll(x) (x<<1)
#define rr(x) (x<<1|1)
#define mid(a,b) (a+((b-a)>>1))
const int n=100005;
ll a[n],sum[n],ans[n*2];
struct op
op(int st,int ed,int w) :
st(st),ed(ed),w(w) {}
};bool cmpst(const op &a,const op &b)
void build(int lft,int rht,int ind)
}void updata(int pos,ll valu,int lft,int rht,int ind)
}ll query(int st,int ed,int lft,int rht,int ind)
}}seg;
int main()
seg.build(1,n,1);
sort(qa.begin(),qa.end(),cmped);
sort(ra.begin(),ra.end(),cmped);
len1=(int)qa.size();
len2=(int)ra.size();
int ind=0;
for(int i=0;i
zoj 3724 樹狀陣列經典
問題 n個點,對於每個點i,都有一條連向i 1的有向邊,另外有m條其他的有向邊,有q個詢問 u,v 求u到v的最短路 將m條有向邊和q個詢問對所表示的點對一起排序,u,v u大的排前,u一樣的v小的排前,u和v一樣大的先處理插入的再處理詢問的 邊插入邊詢問 樹狀陣列裡存的是右端點在v之後的詢問的結果...
3724 unix紀元 標準庫時間函式的應用
i m a programmer,damnit.i don t write code.the anti programming programmer 在一些簡單的題目中經常有一些進行時間轉化的題目,如3724 unix紀元,當然可以自己寫 進行轉換,也可以時候標準c的相關的一些庫函式。time t ...
按順序輸出ZOJ
description 讀入乙個字串,字串中包含zoj三個字元,個數不一定相等,按zoj的順序輸出,當某個字元用完時,剩下的仍然按照zoj的順序輸出。input 題目包含多組用例,每組用例佔一行,包含zoj三個字元,當輸入 e 時表示輸入結束。1 length 100。output 對於每組輸入,請...