public double quickmul(double x, long n)
return res;
}
詳見 樹狀陣列知識const int max_n = 1e5+5;
int par[max_n * 2];
int rank[max_n * 2];
void init(int n)
}int find(int x) else
}void unite(int x, int y) else
}bool same(int a, int b)
int n;
int a[1005],c[1005]; //對應原陣列和樹狀陣列
int lowbit(int x)
void updata(int i,int k)
}int getsum(int i)
return res;
}
基礎背景: 給定乙個v體積的為盒子,你有n個物品,每個物品的體積 和 價值 分別為vi、wi,求在不超過v的條件下,盡可能讓盒子中的物品總價值大。每種物品只能選1次或者0次。
#includeusing namespace std;
const int n = 5050;
int v, n;
int v[n], w[n];
int main()
} cout << f[v] << "\n"; // f[v]最優解
return 0;
}
基礎背景: 前提條件與0-1揹包一致,不同的是,完全揹包中,每種物品能有無窮個供選。
#includeusing namespace std;
const int n = 5050;
int v, n;
int v[n], w[n];
int main()
} cout << f[v] << "\n"; // f[v]最優解
return 0;
}
基礎背景:給定乙個v體積的為盒子,你有n個物品,每個物品的體積、價值、個數,分別為vi、wi、ci,求在不超過v的條件下,盡可能使盒子中的物品總價值最大。每種物品可以選0-ci次。
待補充
/**
trie字典樹模板
*/public class trie
} node root;
public trie()
// 構建trie樹
public void insert(string s)
p.end = true;
} // 查詢是否存在匹配串
public boolean query(string s)
return p.end;
}}
資料結構與演算法 KMP演算法模板
kmp演算法指的是字串模式匹配演算法,問題是 在主串t中找到第一次出現完整子串p時的起始位置。該演算法是三位大牛 d.e.knuth j.h.morris和v.r.pratt同時發現的,以其名字首字母命名。下面是kmp演算法的c 版本 include include include using na...
資料結構 資料結構演算法
分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...
STL模板類 資料結構與演算法
stl提供了一些模板類,實現了 資料結構 中的一些資料結構型別 在寫 時用到棧,佇列等資料結構時可以充分利用stl模板類,會發現特別好用。想起c語言中用陣列實現棧和佇列,簡直就是噩夢。c 是世界上最好的語言。just kidding 順序容器 動態陣列 vector deque 鍊錶list 關聯容...