洛谷P1063 能量项链 #include <iostream>using namespace std;int dp[101][101], num[101], n, Max;int main(){ cin >> n; for (int i = 0; i < n; i++) cin >> num[i]; for (int i = 2; i <= n; i++) //i是合并珠子的数量 f
洛谷P1016 旅行家的预算 #include <iostream>#include<cstdio>using namespace std;int main(){ double p[8], d[8]; double d1, c, d2, x; int n; double min = 0; cin >> d1 >> c >> d2 >> p[0] >> n; d[0] = 0; d
洛谷P1006 传纸条 #include <iostream>using namespace std;int map[64][64], dp[64][64][64][64];int main(){ int m, n; cin >> m >> n; for (int i = 1; i <= m; i++) for (int j = 1; j <= n; j++) cin >> map[i][j];
洛谷P1004 方格取数 #include<iostream>using namespace std;int map[11][11], dp[11][11][11][11];int main(){ int n, x, y, m; cin >> n; while (1) { cin >> x >> y >> m; if (x == 0 && y == 0 && m == 0) break; map[x][y]
洛谷P1045 麦森数 #include <iostream>#include <cmath>using namespace std;int a[1000];int main(){ a[0] = 1; int p, num = 1; cin >> p; for (int i = 0; i < p; i++) { for (int j = 0; j < num; j++) a[j] = a[
洛谷P1195 口袋的天空 #include <iostream>#include <algorithm>using namespace std;struct Edge{ int x, y, l; Edge(int x = 0, int y = 0, int l = 0) :x(x), y(y), l(l) {}}edge[200005];int dis[200005];bool cmp(Edge x, Edge y){ return x.l < y.l;}
1044 栈 卡特兰,Catalan#include <iostream>using namespace std;long int C(int x, int y){ long int t = 1; for (int i = 1; i <= y; i++) { t = t * (x - i + 1)/ i; } return t;}int main(){ int n; cin >> n; cou
洛谷P1023 税收与补贴问题 #include <iostream>#include <cmath>int inf = 100000;double a[100000][2];using namespace std;int main(){ int n, m = 1; cin >> n; cin >> a[0][0] >> a[0][1]; while (1) { double t0, t1;
洛谷P1002 过河卒 #include <iostream>using namespace std;long long map[24][24];int main(){ int n, m, a, b; cin >> n >> m >> a >> b; map[a][b] = -1; if (a - 2 >= 0 && b - 1 >= 0) map[a - 2][b - 1] = -
HDU二叉搜索树 #include <iostream>#include <cstring>using namespace std;char a[16];struct node{ int v; node* l; node* r; node(int v = 0, node* l = NULL, node* r = NULL) { this->v = v; this->l = l; this
洛谷 导弹拦截 复杂度n²#include <iostream>using namespace std;int a[100001], dp[100001];int main(){ int n = 0, max = 0; while (cin >> a[n]) n++; for (int i = 0; i < n; i++) { if (i == 0) dp[i] = 1; else
HDU1159 最长公共子序列 #include <iostream>using namespace std;char s1[1024], s2[1024];int dp[1024][1024];int main(){ while (cin >> s1 >> s2) { int len1 = strlen(s1), len2 = strlen(s2); for (int i = 1; i <= len1; i++)
洛谷P1111 修复公路 #include <iostream>#include <algorithm>using namespace std;int s[2000];struct Map{ int x, y, t;}map[100000];bool cmp(Map& x, Map& y){ return x.t < y.t;}int find(int x){ if (s[x] == x) return x; s[x] = fin
洛谷P1364 医院设置 #include <iostream>using namespace std;int dis[200][200];int s[200], l[200], r[200];int inf = 9999999;int main(){ int n, w, u, v, min = inf; cin >> n; for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++)
洛谷P3367 【模板】并查集 #include <iostream>using namespace std;int s[1000001];int find(int x){ if (x == s[x]) return x; s[x] = find(s[x]); return s[x];}int main(){ int n, m; cin >> n >> m; for (int i = 0; i < m; i++)
HDU3635 Dragon Balls #pragma warning(disable:4996)#include <cstdio>#include <iostream>using namespace std;int s[1204];int book[1024][2];int find(int x){ if (s[x] == x) return x; else { s[x] = find(s[x]); book[s[x]][1] += book[x][1]
HDU 1710 Binary Tree Traversals(给出前序中序输出后序) #pragma warning(disable:4996)#include <iostream>#include <cstdio>using namespace std;struct node{ node* r, * l; int v; node(int v = 0, node* r = NULL, node* l = NULL): v(v), l(l), r(r) {};};int xian[1024];int zhong[1024];
洛谷P1305 新二叉树 #include <iostream>#include <queue>using namespace std;struct Node{ char v; Node* l, * r; Node(char v = '\0', Node* l = NULL, Node* r = NULL) { this->v = v; this->l = l; this->r = r; }
P1102 A-B 数对 #include <iostream>#include <algorithm> using namespace std;int a[2000001];int main(){ long n, c, num = 0; cin >> n >> c; for (int i = 0; i < n; i++) cin >> a[i]; sort(a, a + n); for
P2240 部分背包问题 #include #include #includeusing namespace std;struct Gold{double m;double v;double d;}gold[101];int book[101];bool cmp(Gold x, Gold y){return x.d > y.d;}int main(){int n, t;cin >> n >> t;double V = 0;for (int i = 0; i <