最近翻了一下暑假的**,發現了點有用的東西。
斜堆記得是個猴子打架的題目
支援刪除和查詢的排序二叉樹樹code
#include #include #include using
namespace std;
const
int n=100000;
int f[n+10],head[n+10],lch[n+10],rch[n+10],w[n+10];
int merge(int a,int b)
int pop(int a)
int find(int x)
int hebing(int a,int b)
int main()
int m;scanf("%d",&m);
for(int i=0;iint a,b;
scanf("%d %d",&a,&b);
if(find(a)!=find(b))
else printf("-1\n");
}return 0;
}
為了解決約瑟夫問題轉化成的資料結構問題,學長教的乙個很奇怪的資料結構(其實就是平衡樹的乙個替代品?)
code
#include #include #include #define ll long
long
using
namespace std;
const
int maxn=1000000;
ll lch[maxn<<2]=,rch[maxn<<2]=,cnt[maxn<<2]=,key[maxn<<2]=;
ll top=0;
bool kill[maxn<<2]=;
int build(ll &p,ll l,ll r)
ll dfs(ll p,ll x)
if(((x<=cnt[p])&&(!kill[key[p]])||((x0))
else tmp=dfs(rch[p],x-cnt[p]-((!kill[key[p]])?1:0));
/*tmp=(((x<=cnt[p])&&(!kill[key[p]])||((x0))?
(dfs(lch[p],x)):(dfs(rch[p],x-cnt[p]-((!kill[key[p]])?1:0)));
cnt[p]-=((x<=cnt[p])?1:0);*/
//cout<
}long
int calc(long
int n,long
int m,long
int k)
return ans;
}int main()
資料結構學習記錄 兩個陣列的合併
標頭檔案的自己先定義,便於以後呼叫 定義為t11.h include stdio.h include string.h include ctype.h include malloc.h include stdlib.h atoi exit include io.h eof include math....
資料結構與演算法(19) 和為s的兩個數字
劍指 offer 57.和為s的兩個數字 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。示例 1 ...
對比兩個資料庫表結構
在專案做好後實施了以後,可能因為需求等原因需要公升級,這時候一般都是在測試系統改好後在更新到正式系統.儲存過程,檢視等可以直接通過全部刪除在建立進行更新,但是表因為正式系統裡已有資料所以無法通過該方式進行更新.只能更改表結構,而這時有可能因為更改的表結構比較多,而出現有的表忘了更新.該程式可以對比兩...