摘要:
总结1. Objects in a set are immutable; if you want to modify an object, you need to:a. make a copy of the object from the setb. modify the copyc. remove the original object from the object, andd. insert the copy into the set2. Each associative container is parameterized on Key and an ordering relation 阅读全文
摘要:
题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可思路1. 朴素背包问题2. 假设 dp[i][j] 表示前 i 件物品拼成 j 分的最少邮票数dp[i][j] = min(dp[i-1][j], dp[i-1][j-value[i]]+1)3. 转化成一维背包 dp[v] = min(dp[v], dp[v-value[i]]+1)代码 未通过九度测试#include #include #include using namespace std;const int INF .. 阅读全文
摘要:
目的:将中缀表达式(即标准形式的表达式)转换为后缀式。例子:a+b*c+(d*e+f)*g转换成abc*+de*f+g*+转换原则1. 遇到操作数, 直接输出2. 操作符的优先级为 () 最大, * / 次之, +- 最小. 遇到操作符后, 假如操作符堆栈为空, 则直接压入操作符, 否则判断当前操作符与栈顶操作符的优先关系, 假如栈顶操作符的优先级大于 等于当前操作符的优先级, 那么弹出栈顶操作符, 持续弹出, 直到栈顶操作符优先级小于当前操作符优先级或栈为空. 最后将当前操作符入栈3. 如果遇到右括号, 那么将栈顶操作符弹出, 持续弹出直到遇到左括号, 左括号弹出但不输出4. 表达式读入完毕 阅读全文