• c++ 贪心法


    先看第1049题:

    1049. 取款

    题目描述

    你是一个银行小职员,你的日常工作就是根据客户要求,从银行里为他们提取特定数额的纸币。已知客户需要提取n元,你需要用最少的纸币数量凑出n元,请问最少要几张?

    注意你所在国家只有以下面值的纸币:1元,2元,3元,9元。

    贪心思路

    先取面额大的钞票,尽量多

    代码

    1. #include
    2. using namespace std;
    3. const int N=4;
    4. int money[N]={9,3,2,1};
    5. int main(){
    6. freopen("withdraw.in","r",stdin);
    7. freopen("withdraw.out","w",stdout);
    8. int n,ans=0;
    9. cin>>n;
    10. for(int i=0;i
    11. ans+=n/money[i];
    12. n%=money[i];
    13. }
    14. cout<
    15. return 0;
    16. }

    简简单单的呢!

    oh no   其实,这个贪心法有反例    只不过不容易发现     这种贪心法是错的

    以面值为25 20 10 5 1为例:

    发现错误

    哈哈哈,这就是我说的“反例

    所以:有时的面值不能贪心!!!

     再来看第436题

    436. 高智商罪犯

    题目描述

    共n个罪犯排成一排,第i个人智商为xi,现在需要将他们依次分组押运,每一组只可以安排相邻的若干个罪犯。为防止高智商罪犯联合逃脱,必须保证每一组的智商总和不超过m,求最少要分几组?如果无法完成要求输出0

    代码

    1. #include
    2. using namespace std;
    3. const int N=10000;
    4. int n,a,w[N];
    5. int main(){
    6. freopen("criminal.in","r",stdin);
    7. freopen("criminal.out","w",stdout);
    8. cin>>n>>a;
    9. for(int i=0;i>w[i];
    10. for(int i=0;i
    11. if(w[i]>a) {
    12. cout<<0<
    13. return 0;
    14. }
    15. int ans=1,sum=0;
    16. for(int i=0;i
    17. {
    18. sum+=w[i];
    19. if(sum>a) {
    20. ans++;
    21. sum=w[i];
    22. }
    23. }
    24. cout<
    25. return 0;
    26. }

    1050. 防御塔

    题目描述

    敌人有n架轰炸机依次向你飞来,第i架飞机高度为h[i]。你需要用防御塔发出防空导弹炸毁敌机。

    你的防御塔有一个优点:第一枚导弹可以打中任意高度。

    但是,你的防御塔也有一个缺陷:之后每次导弹的高度要比上一枚导弹低。

    为了击中所有敌机,请问最少要安排几个防御塔?

    代码

    1. #include
    2. using namespace std;
    3. const int N=1009;
    4. int n,h[N],d[N];
    5. int cnt=0;
    6. int main(){
    7. freopen("towerdefense.in","r",stdin);
    8. freopen("towerdefense.out","w",stdout);
    9. cin>>n;
    10. for(int i=0;i>h[i];
    11. int j;
    12. for(int i=0;i
    13. for(j=0;j
    14. if(d[j]>h[i]) break;
    15. d[j]=h[i];
    16. if(j==cnt) cnt++;
    17. }
    18. cout<
    19. return 0;
    20. }

    下课!

     

  • 相关阅读:
    断言(assert)的用法
    无线传感器网络:排队论(Queueing Theory)模型
    spring中自定义过滤器
    刚来的00后真的卷,听说工作还没两年,跳到我们公司直接起薪20k...
    23云计算全国职业技能大赛容器云-容器编排
    【无标题】算法不能盲目刷!!算法修炼手册(持续更新)
    vaspkit用POSCAR生成INCAR、KPOINTS文件
    弘玑RPA x 流程挖掘,构筑超自动化的坚实底座
    C++_pen_类
    新手学习STM32还是ESP32
  • 原文地址:https://blog.csdn.net/zhang040818/article/details/132645595