蓝桥 和为T (状压)

简介: 蓝桥 和为T (状压)

题目描述
从一个大小为n的整数集中选取一些元素,使得它们的和等于给定的值T。每个元素限选一次,不能一个都不选。

数据规模和约定
1< =n< =22
T< =maxlongint
集合中任意元素的和都不超过long的范围

输入
第一行一个正整数n,表示整数集内元素的个数。
第二行n个整数,用空格隔开。
第三行一个整数T,表示要达到的和。
输出
输出有若干行,每行输出一组解,即所选取的数字,按照输入中的顺序排列。
若有多组解,优先输出不包含第n个整数的;若都包含或都不包含,优先输出不包含第n-1个整数的,依次类推。
最后一行输出总方案数。
样例输入
5
-7 -3 -2 5 9
0
样例输出
-3 -2 5
-7 -2 9
2

再次自闭,不过学长一讲就明白了。
用n位二进制来表示n个数选还是不选的状态,0表示不选,1表示选。然后就从0001到1111(对于这道题)开始暴力搜索所有状态。
由于二进制搜索状态时,在低三位没有达到最大时是不会标记第四位的,所以搜索顺序和题目要求的其实一样,直接暴力就可以了。
这种思路其实和next_permutation来暴力状态一样的道理。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;

ll a[25];
ll n, T, ans=0;

int main(){
   
    scanf("%lld", &n);
    for (int i=0; i<n; i++)
        scanf("%lld", &a[i]);
    scanf("%lld", &T);

    ll up=1<<n;    //n位二进制最大是1<<n-1
    for (ll sta=1; sta<up; sta++){
   
        ll tmp=0;
        for (int i=0; i<n; i++){
   
            if ((sta>>i)&1){
   
                tmp += a[i];    //sta从右面数,a[]从0开始数 
            }
        }
        if (tmp==T){
   
            ans++;
            for (int i=0; i<n; i++){
   
                if ((sta>>i)&1){
   
                    printf("%d ", a[i]);
                }
            }
            printf("\n");
        } 
    } 
    printf("%d\n", ans);
    return 0;
}
相关文章
|
存储 安全 Windows
PowerShell系列(六):PowerShell脚本执行策略梳理
【2月更文挑战第1篇】PowerShell 脚本执行策略用于控制何时以及何种方式执行 PowerShell 脚
|
5月前
|
数据采集 编解码 自动驾驶
世界模型 LingBot-World,正式开源!
蚂蚁灵波团队开源世界模型LingBot-World,专为交互式仿真设计。其核心LingBot-World-Base具备高保真、强动态、长时序一致性(支持近10分钟稳定生成)和实时交互能力(≈16FPS,延迟<1秒),依托可扩展数据引擎,从游戏环境学习物理与因果规律,打造具身智能、自动驾驶等领域的“数字演练场”。
1647 1
|
5月前
|
传感器 缓存 机器人
全球首个自回归视频-动作世界模型,LingBot-VA 正式开源!
蚂蚁灵波团队推出具身世界模型LingBot-VA,首创自回归视频-动作一体化建模框架,实现“边推演、边行动”。它融合视频生成与机器人控制,具备长时序记忆与少样本学习能力,在真实机器人任务中成功率较Pi0.5提升20%,仿真基准刷新SOTA。已全面开源。
835 1
 全球首个自回归视频-动作世界模型,LingBot-VA 正式开源!
|
4月前
|
人工智能 安全 Shell
OpenClaw Skills精选指南:从1700+OpenClaw Skills中筛选15个超实用款+云上部署步骤流程
2026年OpenClaw(原Clawdbot)的技能生态迎来爆发,ClawHub平台上架的Skill数量突破1700个,覆盖办公、开发、生活、创作等全场景。但对多数用户而言,面对海量技能往往无从下手,既怕装错无用技能占用资源,又担心高权限技能带来安全风险。本文在实测基础上,从1700+Skill中筛选出**15个真正实用的核心技能**,按「底座必备-工作选装-进阶拓展」三个阶段分类,附详细安装命令与配置技巧;同时补充**阿里云轻量服务器OpenClaw极简部署步骤**,从云端部署到技能安装一步到位,全程嵌入可直接复制的代码命令,兼顾新手友好性与实用性,让你快速解锁OpenClaw的全场景生产
2139 10
Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略
Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略
Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略
|
JavaScript API 数据处理
基于HarmonyOS 5.0 (Next)技术的渐变模糊效果技术实现【代码实战】
本文详细介绍如何在HarmonyOS 5.0(Next)中实现渐变模糊效果,涵盖从基础页面搭建到添加模糊、渐变效果的全过程,并通过代码实战展示具体操作步骤。文章首先介绍了使用`Stack`和`Image`控件设置背景并应用`foregroundBlurStyle`属性实现模糊效果,接着通过`linearGradient`属性融入渐变效果,使界面更加精致美观。此外,还展示了如何利用滑动条和手势等交互元素动态调整模糊与渐变效果,增强用户体验。最后,通过具体代码示例说明如何为图片、弹窗等控件添加渐变模糊效果,突显HarmonyOS的强大功能与灵活性。
688 17
|
人工智能 IDE 开发工具
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
Trae是字节跳动推出的一款免费的AI集成的开发环境,集成了Claude3.5与GPT-4o等主流AI模型,提供AI问答、智能代码生成、智能代码补全,多模态输入等功能。支持界面全中文化,为中文开发者提供了高效的开发体验
11058 11
从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
|
机器学习/深度学习 数据可视化 数据挖掘
构建可复用的 Jupyter 模板和插件:提高工作效率的最佳实践
【8月更文第29天】Jupyter Notebook 是一个广泛使用的交互式计算环境,支持多种编程语言。它不仅用于数据分析、可视化和机器学习项目,也是教学和科研的理想工具。然而,随着使用频率的增加,重复编写相似的代码和设置变得既耗时又低效。通过创建可复用的 Jupyter 模板和插件,我们可以显著提高工作效率。
694 1
|
存储 弹性计算 网络协议
深度对比阿里云服务器ECS通用型g7、g7a、g8i、g8y、g8ise和g8a性能对比
阿里云通用型ECS云服务器(g7、g7a、g8i、g8y、g8ise和g8a)具有1:4的CPU内存比,适合多种应用场景。配置从2核8G到128核512G不等,基于第三代神龙架构或CIPU架构,采用Intel、AMD及自研倚天710处理器,主频在2.55 GHz至3.7 GHz之间。支持IPv4/IPv6,具备高网络收发包PPS能力,适用于企业级应用、数据库、Web服务、AI训练、音视频处理等场景。I/O优化实例仅支持ESSD云盘,确保高性能存储。
|
Go
Golang注释与godoc详解
这篇文章详细介绍了Go语言中注释的格式、位置以及如何使用godoc工具生成和查看项目代码的注释文档。
571 4
Golang注释与godoc详解

热门文章

最新文章