main
黄海 2 years ago
parent 2af705fa0d
commit 5ff0ff7979

@ -14,13 +14,13 @@ int find(int x) {
}
int main() {
cin >> n >> m >> sum;
scanf("%d %d %d", &n, &m, &sum);
// 初始化并查集
for (int i = 1; i <= n; i++) p[i] = i;
// 读入每个云朵的价钱(体积)和价值
for (int i = 1; i <= n; i++)
cin >> v[i] >> w[i];
scanf("%d %d", &v[i], &w[i]);
while (m--) {
int a, b;
@ -35,7 +35,7 @@ int main() {
}
// 01背包
// 注意这里不能认为一维的能AC二维的替代写法就一定能AC
// 这是因为这里的判断p[i]==i,导致i不一定是连的,
// 这是因为这里的判断p[i]==i,导致i不一定是连的,
// 所以f[i][j]=f[i-1][j]这句话就不一定对
// 所以看来终极版本的01背包一维解法还是有一定价值的。
for (int i = 1; i <= n; i++)

@ -51,8 +51,8 @@ using namespace std;
const int N = 10010;
int n, m, sum; // 有 n 朵云m 个搭配Joe有 sum 的钱。
int v[N], w[N]; // 表示 i 朵云的价钱和价值
int p[N];
int f[N];
int p[N]; // 并查集数组
int f[N]; // 01背包数组
// 最简并查集
int find(int x) {
@ -61,13 +61,13 @@ int find(int x) {
}
int main() {
cin >> n >> m >> sum;
scanf("%d %d %d", &n, &m, &sum);
// 初始化并查集
for (int i = 1; i <= n; i++) p[i] = i;
// 读入每个云朵的价钱(体积)和价值
for (int i = 1; i <= n; i++)
cin >> v[i] >> w[i];
scanf("%d %d", &v[i], &w[i]);
while (m--) {
int a, b;
@ -82,7 +82,7 @@ int main() {
}
// 01背包
// 注意这里不能认为一维的能AC二维的替代写法就一定能AC
// 这是因为这里的判断p[i]==i,导致i不一定是连的,
// 这是因为这里的判断p[i]==i,导致i不一定是连的,
// 所以f[i][j]=f[i-1][j]这句话就不一定对
// 所以看来终极版本的01背包一维解法还是有一定价值的。
for (int i = 1; i <= n; i++)

Loading…
Cancel
Save