题解【洛谷 P1466 [USACO2.2]集合 Subset Sums】
2024-09-01 15:10:14
设 \(sum=1+2+3+4+\dots+n=\dfrac{n(n+1)}{2}\)。
- 如果 \(2\nmid sum\),则显然没有方案。
- 如果 \(2\mid sum\),则这两个集合的和必为 \(\dfrac{sum}{2}\)。
将 \(\dfrac{sum}{2}\) 作为容量跑 0-1 背包即可。
Code:
#include<iostream>
using namespace std;
const int N=45,SUM=785;
typedef long long ll; //必须开 long long/dk
ll dp[SUM],n,sum;
int main()
{
cin>>n;
sum=(1+n)*n/2; //计算 sum
if (sum&1){cout<<0;return 0;} //特判
sum/=2; dp[0]=1; //初始化
for (int i=1;i<=n;i++)
for (int j=sum;j>=0;j--)
if (j>=i) dp[j]+=dp[j-i]; //i 为重量,价值为 0,算方案数要将 max 换成 sum。
cout<<dp[sum]/2; //输出要 /2
return 0;
}
最新文章
- BZOJ 3339 &;&; BZOJ 3585 莫队+权值分块
- 一个ORM的实现(附源代码)
- iOS内存管理个人总结
- git diff获取差异文件中文乱码的解决办法
- iOS开发UI篇—Date Picker和UITool Bar控件简单介绍
- MVC增删查改,从数据库到后台,到前端,整个复习一下
- linux下的mount命令的用法详解
- ace-min.css
- 转载 How to Encrypt connection string in web.config
- C /CLI思辨录[阅读记录]
- Swift - 07 - 布尔类型
- C++中string类的基本用法
- QT使用WOL实现远程一键开机(局域网)
- Qt线程同步操作用QWaitCondition QMutex
- cuda学习3-共享内存和同步
- JVM笔记5-对象的访问定位。
- WebService之soap类型的服务和rest类型的服务
- 轻量Pythonweb - flask+jinja2
- fiddler 笔记-重定向
- (数论 最大公约数 最小公倍数) codeVs 1012 最大公约数和最小公倍数问题
热门文章
- 论文解读(ClusterSCL)《ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs》
- 使用Husky提升你的项目规范
- TinyMCE简介
- CentOS7防火墙firewalld的配置
- 一文看懂 ZooKeeper ,面试再也不用背八股(文末送PDF)
- C#实现登录功能(连接SQLServer数据库)
- SpringBoot实现基于token的登录验证
- bind-utils-测试域名解析
- pandas:聚合统计、数据分箱、分组可视化
- 最大流&;最小割&;费用流模版