P1466 集合 Subset Sums【洛谷算法习题】

发布时间:2026/7/12 20:15:15

P1466 集合 Subset Sums【洛谷算法习题】
P1466 集合 Subset Sums网页链接P1466 集合 Subset Sums题目描述对于从1 ∼ n 1\sim n1∼n的连续整数集合能划分成两个子集合且保证每个集合的数字和是相等的。举个例子如果n 3 n3n3对于{ 1 , 2 , 3 } \{1,2,3\}{1,2,3}能划分成两个子集合每个子集合的所有数字和是相等的{ 3 } \{3\}{3}和{ 1 , 2 } \{1,2\}{1,2}是唯一一种分法交换集合位置被认为是同一种划分方案因此不会增加划分方案总数如果n 7 n7n7有四种方法能划分集合{ 1 , 2 , 3 , 4 , 5 , 6 , 7 } \{1,2,3,4,5,6,7 \}{1,2,3,4,5,6,7}每一种分法的子集合各数字和是相等的{ 1 , 6 , 7 } \{1,6,7\}{1,6,7}和{ 2 , 3 , 4 , 5 } \{2,3,4,5\}{2,3,4,5}{ 2 , 5 , 7 } \{2,5,7\}{2,5,7}和{ 1 , 3 , 4 , 6 } \{1,3,4,6\}{1,3,4,6}{ 3 , 4 , 7 } \{3,4,7\}{3,4,7}和{ 1 , 2 , 5 , 6 } \{1,2,5,6\}{1,2,5,6}{ 1 , 2 , 4 , 7 } \{1,2,4,7\}{1,2,4,7}和{ 3 , 5 , 6 } \{3,5,6\}{3,5,6}给出n nn你的程序应该输出划分方案总数。输入格式输入文件只有一行且只有一个整数n nn。输出格式输出划分方案总数。输入输出样例 #1输入 #17输出 #14说明/提示【数据范围】对于100 % 100\%100%的数据1 ≤ n ≤ 39 1\le n \le 391≤n≤39。翻译来自 NOCOW。USACO 2.2解题思路本题是01背包方案计数的经典应用题通过将等和划分问题转化为子集和计数问题使用动态规划高效求解。问题等价转化将 1~n 的整数集合划分为两个和相等的子集可按以下步骤推导计算全集总和s u m n ( n 1 ) 2 sum \frac{n(n1)}{2}sum2n(n1)​。若 sum 为奇数无法平分答案直接为 0。若 sum 为偶数设每个子集的目标和为t a r g e t s u m 2 target \frac{sum}{2}target2sum​。问题转化为从 1~n 中选出若干个数和恰好为 target求这样的子集总数。由于交换两个子集视为同一种划分方案最终答案等于子集总数除以 2。动态规划求解子集和计数采用01背包模型统计方案数状态定义dp[i][j]表示从前 i 个数中选取若干个和恰好为 j 的方案总数。初始边界dp[0][0] 1即不选任何数时和为 0 的方案有 1 种空集。状态转移对第 i 个数数值为 i有两种选择不选该数方案数继承自前 i-1 个数的结果即dp[i][j] dp[i-1][j]。选该数若 j ≥ i则加上前 i-1 个数和为 j-i 的方案数即dp[i][j] dp[i-1][j-i]。结果输出若总和为奇数直接输出 0。否则总子集方案数为dp[n][target]最终划分方案数为dp[n][target] / 2。算法时间复杂度为O ( n 2 ) O(n^2)O(n2)空间复杂度为O ( n 2 ) O(n^2)O(n2)n 最大为 39计算量极小完全满足题目要求。总结核心逻辑将等和划分问题转化为子集和计数问题通过01背包动态规划统计符合目标和的子集总数再除以2得到最终划分方案数。关键操作总和奇偶性预判、01背包方案计数递推、对称划分去重处理。效率保障n最大39总运算量仅千级运行开销极低。代码简要说明数组初始化a数组存储 1~n 的数值dp二维数组用于存储方案数全局数组默认初始化为 0手动设置dp[0][0] 1作为初始边界。DP递推外层遍历每个数字内层遍历所有可能的和按01背包规则更新方案数。奇偶判定若n*(n1)不能被 4 整除即总和为奇数直接输出 0否则输出dp[n][target]其中target n*(n1)/4。代码特性说明内层循环 j 从 1 开始未显式维护dp[i][0] 1因此仅统计了必须包含数字1的子集方案数。利用本题连续整数的数学性质目标和为总和一半时包含1的子集数恰好等于不包含1的子集数因此统计结果刚好等于总方案数的一半即最终答案。标准通用写法应从 j0 开始循环以维护空集方案最后将总方案数除以2逻辑更严谨且适用于任意数值集合。输入优化关闭流同步并解绑 tie提升输入输出效率。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll INF1e18;constll M1e610;constll mod1e97;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll n;cinn;ll a[45];for(ll i1;in;i)a[i]i;ll dp[45][2010]{};dp[0][0]1;for(ll i1;in;i)for(ll j1;jn*(n1)/2;j){dp[i][j]dp[i-1][j];if(ja[i])dp[i][j]dp[i-1][j-a[i]];}if(n*(n1)%40)coutdp[n][n*(n1)/4]endl;elsecout0endl;return0;}

相关新闻

小R排数字【牛客tracker  每日一题】

小R排数字【牛客tracker 每日一题】

2026/7/12 20:15:15

小R排数字 时间限制:1秒 空间限制:512M 网页链接 牛客tracker 牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有…

2026亚太EMBA优势测评 科学选型指南

2026亚太EMBA优势测评 科学选型指南

2026/7/12 20:15:15

当前亚太EMBA市场项目繁多,高管择校常陷入排名盲从、资质混淆、需求错配的困境,且不同项目在师资、课程、认证等方面差异显著。本文结合行业公开数据与项目真实信息,从行业分析、选型标准、项目测评等维度,为高管理性选型提供参考…

级联调用延迟飙升90%?揭秘OpenAI+LangChain+自研Agent三级协同的4ms低延迟调度协议

级联调用延迟飙升90%?揭秘OpenAI+LangChain+自研Agent三级协同的4ms低延迟调度协议

2026/7/12 20:15:15

更多请点击: https://kaifayun.com 第一章:级联调用延迟飙升90%?揭秘OpenAILangChain自研Agent三级协同的4ms低延迟调度协议 当OpenAI API响应时间稳定在320ms、LangChain编排链路引入额外180ms开销时,自研Agent层却将端到端P99…

Open Source Candies生态系统分析:开源项目如何利用免费服务成长

Open Source Candies生态系统分析:开源项目如何利用免费服务成长

2026/7/12 22:15:20

Open Source Candies生态系统分析:开源项目如何利用免费服务成长 【免费下载链接】opensource-candies Free stuff for open source projects 项目地址: https://gitcode.com/gh_mirrors/op/opensource-candies 在开源项目的成长过程中,资源和工具…

Orchestra工具生态系统全解析:从内置工具到自定义工具开发

Orchestra工具生态系统全解析:从内置工具到自定义工具开发

2026/7/12 22:15:20

Orchestra工具生态系统全解析:从内置工具到自定义工具开发 【免费下载链接】orchestra Cognitive Architectures for Multi-Agent Teams 项目地址: https://gitcode.com/gh_mirrors/orchestr/orchestra Orchestra是一个强大的多智能体协作框架,其…

Osg 开发一:OpenSceneGraph 介绍及开发环境设置

Osg 开发一:OpenSceneGraph 介绍及开发环境设置

2026/7/12 22:15:20

文章目录一 OpenSceneGraph 简介1 什么是 OpenSceneGraph2 OSG 中国3 OSG 组成模块二 OSG 开发1 开发环境2 环境设置3 Hello OSG 工程其他一 OpenSceneGraph 简介 1 什么是 OpenSceneGraph OSG 是一个开源的场景图形管理开发库,主要为图形图像应用程序的开发提供场…

60.微服务架构介绍

60.微服务架构介绍

2026/7/12 22:15:20

highcharter地图可视化完全手册:从基础地图到高级地理信息展示

highcharter地图可视化完全手册:从基础地图到高级地理信息展示

2026/7/12 22:15:20

highcharter地图可视化完全手册:从基础地图到高级地理信息展示 【免费下载链接】highcharter R wrapper for highcharts 项目地址: https://gitcode.com/gh_mirrors/hi/highcharter 想要在R语言中创建专业级的地图可视化吗?highcharter作为R的Hig…

Element Plus性能优化实战指南:三步实现高效组件库访问与开发体验

Element Plus性能优化实战指南:三步实现高效组件库访问与开发体验

2026/7/12 22:05:19

Element Plus性能优化实战指南:三步实现高效组件库访问与开发体验 【免费下载链接】element-plus 🎉 A Vue.js 3 UI Library made by Element team 项目地址: https://gitcode.com/GitHub_Trending/el/element-plus Element Plus作为Vue.js 3生态…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/12 0:03:42

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/12 0:03:42

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…