如何提高博客访问量?
什么是贪心?
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
贪心是最容易理解的算法思想;把整个问题分解成多个步骤,在每个步骤都选取当前步骤的最优方案,直到所有步骤结束,每一步都不考虑对后续步骤的影响,在后续步骤中也不再回头改变前面的选择。
- 例题1:有n个数组,从每个数组里面选一个数,使选择的数总和最大。
- 例题2:用10元,5元,1元纸币凑n元,求最少用多少张?
#include <bits/stdc++.h>
using namespace std;
int main () {
int n;
scanf("%d",&n);
int ans = n / 10 + (n % 10) / 5 + n % 10 % 5;
printf("%d",ans);
}
- 例题3:用11元,5元,1元纸币凑n元,求最少用多少张?
#include <bits/stdc++.h>
using namespace std;
int main () {
int n;
scanf("%d",&n);
int ans = 1000000000;
for (int i = 0; i <= n/11 ; ++i) {
int left = n - i * 11;
ans = min(ans ,i + left/5 + left % 5 );
}
printf("%d\n",ans);
}
- A - Sasha and His Trip:N个城市编号1-N,第i个城市油价i元,油箱容量为v升,每个城市之间路程消耗1升油,求从1到N的最少成本
- B - Emotes:N个表情,每个表情有愉悦值a[i],使用m个表情,每个表情不能连续使用超过k次,求最大愉悦值