上一页 1 ··· 9 10 11 12 13
摘要: 题目要求硬币的数量有限制,所以可以开 b 数组记录当前该物品所取的件数。 其中 b[j] 表示要想让 f[j] = 1 ,第 i 件物品至少需要 b[j] 个。 f[i] 表示 i 能否被表示出来,能则为 1 ,否则为 0 。 总结下自己的问题: 1. b 数组要清零。 2. f 数组要赋初值。 具 阅读全文
posted @ 2020-12-04 20:42 樱雪喵 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 因为每件物品可以无限买,所以是完全背包。 三种商品重量手动赋值即可。 因为这道题求的是最大重量,所以状态转移方程改为 f[j] = max(f[j],f[j - w[i]] + w[i]) 。 #include<bits/stdc++.h> using namespace std; int w[4] 阅读全文
posted @ 2020-11-29 13:17 樱雪喵 阅读(108) 评论(0) 推荐(0) 编辑
摘要: emmm 01 背包模板... 设 f[i] 表示背包容积为 i 时所得的最大价值。 则状态转移方程为 f[j] = f[j - w[i]] + c[i] 。 #include<bits/stdc++.h> using namespace std; int w[1001],c[1001],t,m,f 阅读全文
posted @ 2020-11-29 13:09 樱雪喵 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 01背包问题。 与模板不同,这道题要求的是最小剩余空间,也就是求背包里最多能放多少东西。 所以状态转移方程变为 fi= fi - w[i] + wi 。 其中 fi 表示当背包容量为 i 时可放的最大重量。 注意要倒着循环。 #include<bits/stdc++.h> using namespa 阅读全文
posted @ 2020-11-29 08:42 樱雪喵 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 然而并不会做。 最后就照着题解码了一遍/kk 真的好长啊。看时间就知道写了多久... upd in 2022: 我现在已经找不到原题面是什么了( 不过感觉把这样一篇不算题解的东西放进“题解”里,多少有点不合适呢() #include<bits/stdc++.h> using namespace st 阅读全文
posted @ 2020-11-29 00:07 樱雪喵 阅读(386) 评论(1) 推荐(1) 编辑
摘要: 大概是我第一道没看题解写出来的 bfs 。 又写了 30min ,尽管题确实挺简单的。 总结下自己的错误: 注意判断边界和已经走过的路。 不能直接读入,要用字符串,因为矩阵里没有空格。 直接 bfs 即可。 #include<bits/stdc++.h> using namespace std; s 阅读全文
posted @ 2020-11-27 22:59 樱雪喵 阅读(186) 评论(2) 推荐(0) 编辑
摘要: 一些废话: 怎么说写完前两道题再写这道题思路就顺畅多了。但还是写了半个小时。 依然是 dfs 。。。和上两道题思路挺像的。 首先,根据 拔河比赛两边人数最多不能相差 1。 可得:如果 n 是偶数那么两组的人数就只能相等,如果 n 是奇数那么我们只要选出人数为 (n-1)/2 的一组就行了。 所以要选 阅读全文
posted @ 2020-11-27 20:46 樱雪喵 阅读(248) 评论(1) 推荐(0) 编辑
摘要: dfs。又调了一个小时,窝果然菜 需要传递的变量分别为目前搜索的数字;目前所有选中数字的和;目前所选数字个数。 见注释。 #include<bits/stdc++.h> using namespace std; int n,ans[1001];//题面似乎没给数据范围。。。 void dfs (in 阅读全文
posted @ 2020-11-21 23:06 樱雪喵 阅读(122) 评论(1) 推荐(0) 编辑
摘要: 一看就是 dfs 然而窝并不会做 调了一个多小时才调出来。漏洞连篇。(第一次写的基本没有对的地方QAQ 题解见注释。 #include<bits/stdc++.h> using namespace std; int n,r,ans[22]; void dfs(int a,int b)//a 表示当前 阅读全文
posted @ 2020-11-21 20:21 樱雪喵 阅读(73) 评论(1) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13