# include<stdio.h> # include<string.h> # include<cmath> # define N 60 # define V N*N int L[V],R[V];//記錄左右方向的雙向鏈表 int U[V],D[V];//記錄上下方向的雙向鏈表 int C[V];//指向其列指標頭的地址 int H[N];//行指標頭 int S[N];//記錄列鏈表中節點的總數 int size,n,m,ak; int
# include<stdio.h> # include<string.h> # define N 60 # define V N*N int L[V],R[V];//記錄左右方向的雙向鏈表 int U[V],D[V];//記錄上下方向的雙向鏈表 int C[V];//指向其列指標頭的地址 int H[N];//行指標頭 int S[N];//記錄列鏈表中節點的總數 int size,n,m,ak; int mark[N][N],visit[N]; void
C++ STL set和multiset的使用1,set的含義是集合,它是一個有序的容器,裡面的元素都是排序好的,支援插入,刪除,尋找等操作,就 像一個集合一樣。所有的操作的都是嚴格在logn時間之內完成,效率非常高。 set和multiset的區別是:set插入的元素不能相同,但是multiset可以相同。建立 multiset<ss> base;刪除:如果刪除元素a,那麼在定義的比較關係下和a相等的所有元素都會被刪除base.count( a
/*操作a b c:[a,b]區間上的節點加上c,若節點的值已經超過P(包括等於),則加上2*c最後求每個節點的值和hdu3954很類似,具體參考:http://blog.csdn.net/wsniyufang/article/details/6702560每個區間設定min_dis;當區間中有一個點超過P時,釋放lazy*/using namespace std;const int N=200001;int n,m,P;struct Node{ int L,R;//區間左右邊界
/*0代表可以填任意數e代表只能是奇數o代表只能填偶數相同字母的格子必須是同一個數e,o,0是同樣處理的,只不過e,o加入奇數或偶數,0加入全部的1-9檢查符合上述要求的解是否符合約字母同數字即可*/#include<cstdio>#include<cstring>#include<cmath>#include<vector>using namespace std;const int Row=9;const int MAX_COLOUMN =
//臨時學的tarjan離線LCA,解題報告有空補上,ps:並查集類很給力#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<climits>#include<vector>using namespace std;const int V=40010,E=V*2,Q=20010;class