资源限制:

时间限制:1.0s 内存限制:256.0MB

问题描述:

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

输入格式:

第一行一个数n,表示n个棍子。第二行n个数,每个数表示一根棍子的长度。

输出格式:

一个数,最大的长度。

样例输入:

4
1 2 3 1

样例输出:

3

数据规模和约定:

n<=15

代码示例(含详细注释):

#include <bits/stdc++.h>
using namespace std;
int a[15];
int b[1 << 15];  //2^15
//假设有四根木棍,则 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
// 1代表取,0代表不取,即每根木棍取与不取的所有组合情况,共2^4种组合
int main() {int n;cin >> n;for (int i = n - 1; i >= 0; i--) {  //让木棍在数组中以倒序排列,这样 取0010 = 2^1 即取a[1] = 3cin >> a[i];}//原:1 2 3 1//倒序:1 3 2 1//求每一个组合的木棍的长度for (int i = 0; i < (1 << n); i++) {  //0 ~ 2^n的所有数,即所有组合取用木棍的情况(不要用pow(2,n),效率比二进制移位低,会超时)for (int j = 0; j < n; j++) {     //n根木棍if (i & (1 << j))             //i分别按位与 0001 0010 0100 1000,说明这个组合选用了这根木棒b[i] += a[j];}}//木棍分别为 1 2 3 1//0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111  //i:所有组合取用木棍的情况,0不选;1选//0000 0001 0030 0031 0200 0201 0230 0231 1000 1001 1030 1031 1200 1201 1230 1231  //实际的木棍选用情况// 0    1    3    4    2    3    5    6    1    2    4    5    3    4    6    7    //b[i]:每种组合的长度int ans = 0;//将这个组合和其它组合进行比较,如果其它组合和这个组合中没有选用相同的木棍,并且这两个组合长度相等,则符合条件,进而与最大长度比较和替换。for (int i = 0; i < (1 << n); i++) {for (int j = 0; j < (1 << n); j++) {if (!(i & j) && b[i] == b[j]) {ans = max(ans, b[i]);}}}cout << ans;return 0;
}

蓝桥杯 算法训练 ALGO-1004 无聊的逗(C++详解)相关推荐

  1. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解

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

  2. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解 - 未完善

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

  3. 蓝桥杯 算法训练 幸运的店家

    蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...

  4. 蓝桥杯 算法训练 Beaver's Calculator

    蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...

  5. 蓝桥杯 算法训练 印章

    蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...

  6. 蓝桥杯算法训练-24点(Python)

    问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...

  7. 蓝桥杯——算法训练——数字三角形

    蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...

  8. 蓝桥杯算法训练-强力党逗志芃

    持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀 题目 逗志芃励志要成为强力党,所以他将身上所以的技能点都洗掉了重新学技能.现在我们可以了解到,每个技能都有一个前提技能,只有学完了前提技能才能学习当前 ...

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

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

  10. 蓝桥杯算法训练-过河马

    蓝桥杯算法训练题解有兴趣的可以支持下. 题目 问题描述 在那个过河卒逃过了马的控制以超级超级多的走法走到了终点之后,这匹马表示它不开心了-- 于是,终于有一天,它也过河了! 由于过河马积累了许多的怨念 ...

最新文章

  1. 浏览器tab关闭事件_翻译|揭示现代浏览器原理(2):网页访问 — Chrome官方
  2. WGS84经纬度坐标转北京54高斯投影地方坐标流程
  3. 字符集编码详解【ASCII 、GB2312、GBK、GB18030、unicode、UTF-8】(转)
  4. linux和windows下的“回车符”和“换行符”
  5. Unity中Android API 28之后无法HTTP请求
  6. 知识扩展——轻量级和重量级框架的区别
  7. OGNL表达式用法详解
  8. Kafka C++客户端库librdkafka详解
  9. Android动态生成答题卡,好分数网怎么制作答题卡
  10. kvm几种快照的创建与删除
  11. linux系统下回收站,Linux怎么开启回收站功能
  12. web之qq邮箱登录界面
  13. mui+hbuilder h5+内置获取当前地理位置以及各种权限 兼容iOS/安卓
  14. vivado中实现VGA驱动学习笔记
  15. 在maven 官网上下载其他版本
  16. 5、kubernetes Scale Up/Down在线增加或减少 Pod 的副本数、Failover故障转移、用 label(标签)控制 Pod 的位置
  17. android 各个版本的发布时间和信息
  18. Python-Opencv实现魔方边缘识别
  19. albus就是要第一个出场
  20. vue学习之关于element日历calendar组件中上月,今天,下月的显示

热门文章

  1. 什么是App个性化?App个性化安装的优势是什么?
  2. sin90度=1的证明
  3. 25K~65K,一波热门技术岗位来袭,这次是你吗?
  4. 关于男人和女人的一些想法
  5. 认识3D旋转变换矩阵
  6. Verilog实现---时钟信号的90°相移
  7. 微型计算机英语怎么写,微机用英语怎么说
  8. 年终总结 | 盘点2020展望2021
  9. __weak 和 __attribute__((weak)) 关键字的使用
  10. 2021-06-21解决列表查询很慢的优化SQL定位查询慢原因优化