灵感来源于一篇文章:无聊的逗【蓝桥杯】-pudn.com

因为是从n个棍里选若干个,已经选过的棍不能再选,所以首先对数组序列进行排序,然后给所有元素赋一个状态,1为可用,0为不可用

如果要从n个棍里沾两个长度一样长并且最长的,所有每根沾棍的长度不可能比所有棍长度之和的一半长,所以舍弃那些不符合要求的棍,保持沾棍的长度小于等于所以棍长之和的一半,答案就出来了。

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    int sum(int arr[][15],int n);    //求和函数声明 
    int n,sum2,arr[2][15],num=0,j=1;   //sum2为数列和,num为最大长度 ,j为计数 
    cin>>n;
    for(int i=0;i<n;i++){             //状态复制,1为可用,0为不可用 
        cin>>arr[0][i];
        arr[1][i] = 1;
    }
    sort(arr[0],arr[0]+n);          //排序 
    sum2 = sum(arr,n);
    while(j<=n)
    {
        int i=n-j;     
        for(;i>=0;i--){
            if(arr[0][i]>sum2/2){        //如果这根棍子比所有棍子和的一半还长,舍弃它 
                arr[1][i] = 0;            //状态赋0 
                sum2 = sum(arr,n);        //重新计算长度 
                continue;
            }
            if(arr[1][i]==1){         //如果状态为1,计算和 
                num += arr[0][i];
            }
            if(num>sum2/2){           //如果num加到比和的一半长了,减掉刚刚加的那根棍子,使num始终小于所有棍的一半 
                num -=arr[0][i];
                continue;
            }
            arr[1][i] = 0;
        }
        j++;
    }
    cout<<num<<endl;
    return 0;
}

int sum(int arr[][15],int n)    //求和函数 
{
    int sum1=0;
    for(int i=0;i<n;i++){
        if(arr[1][i]==1)
            sum1 += arr[0][i];
    }
    return sum1;
}

蓝桥杯 无聊的逗 C++相关推荐

  1. 蓝桥杯 无聊的逗(java)

    无聊的逗 问题描述 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在 ...

  2. 蓝桥杯 无聊的逗 Python题解

    题目: 问题描述 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两 ...

  3. 蓝桥杯 算法训练 逗志芃的危机

    蓝桥杯 算法训练 逗志芃的危机 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 逗志芃又一次面临了危机.逗志芃的妹子是个聪明绝顶的人,相比之下逗志芃就很菜了.现在她妹子要和 ...

  4. 蓝桥杯 强力党逗志芃 链式前向星结构的树形dp

    // 蓝桥杯 强力党逗志芃 // 采用树形dp,树以链式前向星形式存储#include <iostream> using namespace std;int power[205]; // ...

  5. 蓝桥杯算法训练-逗志芃的危机

    每日更新蓝桥杯题解, 有兴趣关注一波呀 文章目录 题目描述 题解 java代码 C++代码 题目描述 逗志芃又一次面临了危机.逗志芃的妹子是个聪明绝顶的人,相比之下逗志芃就很菜了.现在她妹子要和他玩一 ...

  6. 蓝桥杯——基础练习——逗志芃的暴走

    问题描述 逗志芃是有妹子的现充,但是有时候妹子就是烦恼.因为逗志芃太逗了,所以这段时间妹子对逗志芃发动了技能无理取闹,妹子要去玩很多的景点.由于逗志芃之前抽机花费了太多的时间,不久以后又要微积分考试了 ...

  7. 蓝桥杯——算法基础 逗志芃的暴走PYTHON

    问题描述 逗志芃是有妹子的现充,但是有时候妹子就是烦恼.因为逗志芃太逗了,所以这段时间妹子对逗志芃发动了技能无理取闹,妹子要去玩很多的景点.由于逗志芃之前抽机花费了太多的时间,不久以后又要微积分考试了 ...

  8. 蓝桥杯算法训练——逗志凡的危机——动态规划+递归

    算法训练 逗志芃的危机 题目描述 逗志芃又一次面临了危机.逗志芃的妹子是个聪明绝顶的人,相比之下逗志芃就很菜了.现在她妹子要和他玩一个游戏,这个游戏是这样的:一共有n个数(n是偶数)写成一行,然后两个 ...

  9. 蓝桥杯 算法训练 逗志芃的危机(Java)

    问题描述 逗志芃又一次面临了危机.逗志芃的妹子是个聪明绝顶的人,相比之下逗志芃就很菜了.现在她妹子要和他玩一个游戏,这个游戏是这样的:一共有n个数(n是偶数)写成一行,然后两个人轮流取数,每次只能从最 ...

最新文章

  1. 聚类分析:创建,可视化以及可解释性
  2. java小数点的代码_java小数位的例子
  3. mysql查询语句习题._MySql数据库基本select查询语句练习题,初学者易懂。
  4. 杜克大学是原来英国Durham人去建立的 MIT和哈佛的是原来Cambridge的人去建立的
  5. 3-间隔插入排序C实现(希尔排序铺垫)
  6. django本地安装mysql_django使用mysql(本地环境下)_MySQL
  7. android 创建文件夹_Android 动画小记
  8. chrome和火狐获取资源
  9. 新工作上班九天心得(附 bootstrap分页写法)
  10. 【Computer Organization笔记22】虚拟存储器:段式存储,页式存储
  11. pytorch 深入理解 tensor.scatter_ ()用法
  12. python三天速成_python学习第三天
  13. cocos2d-x 之 简单数据存储——Userdefault
  14. SublimeLinter 3中使用jshint
  15. python100例详解-Python 经典算法100及解析(小结)
  16. 外贸询盘通开篇我的十年SEO探索路
  17. 如何打开.chm文件
  18. JavaScript工具函数(一)
  19. raid5硬盘插到计算机读取,【哭着写下这篇文章】win2008软raid5变成2个磁盘组的数据恢复...
  20. SAP ABAP BASE64 MD5 加解密

热门文章

  1. 软件测试入职2个月想辞职了
  2. python 购物车_python之购物车
  3. Java获取一年有多少周、某周的第一天和最后一天.
  4. Golang 随笔杂谈
  5. stable diffusion prompts
  6. Go实战--golang实现MP4视频文件服务器 nareix/joy4
  7. Grpc protoc的简单使用
  8. 北斗导航 | 完好性监测中的统计分析方法
  9. cisco路由器ios升级宝典
  10. matlab光学仿真——菲涅尔透镜优化代码