★Subset Sums 集合
对于从 1 到 N 的连续整集合合,能划分成两个子集合,且保证每个集合的数字和是相等的.
举个例子,如果 N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字和是相等的:
{3} and {1,2}
26
这是唯一一种分发(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数)
如果 N=7,有四种方法能划分集合{1,2,3,4,5,6,7},每一种分发的子集合各数字和是相等的:
{1,6,7} and {2,3,4,5} {注 1+6+7=2+3+4+5}
{2,5,7} and {1,3,4,6}
{3,4,7} and {1,2,5,6}
{1,2,4,7} and {3,5,6}
给出 N,你的程序应该输出划分方案总数,如果不存在这样的划分方案,则输出 0.程序不能预存结果
直接输出.
PROGRAM NAME: subset
INPUT FORMAT
输入文件只有一行,且只有一个整数 N
SAMPLE INPUT (file subset.in)
7
OUTPUT FORMAT
输出划分方案总数,如果不存在则输出 0.
SAMPLE OUTPUT (file subset.out)

4

一开始想着的爆搜但是觉得爆搜时间负复杂度太高,因为这是在dp章节但是我怎么想着dp就是的dp不出来,然后没办法只有爆搜,结果喜闻乐见,超时。于是百度发现这个跟01背包联系到了一起,(dp的好难想啊好烦)。dp[k]=dp[k]+dp[k-i];这个式子表示第i件物品放或不放不放的话就等于之前的dp[k]放的话应该等于之前的dp[k-i];再放i刚好k.

/*
ID:jinbo wu
TASK: subset
LANG:C++
*/
#include<bits/stdc++.h>
using namespace std;
long long dp[500];
int main()
{freopen("subset.in","r",stdin);freopen("subset.out","w",stdout);int n;scanf("%d",&n);dp[0]=1;int temp=n*(n+1)/2;if(temp%2){printf("0\n");return 0;}temp/=2;for(int i=1;i<=n;i++){for(int k=temp;k>=i;k--)dp[k]=dp[k]+dp[k-i];}printf("%lld\n",dp[temp]/2);}

usaco ★Subset Sums 集合相关推荐

  1. 洛谷P1466 集合 Subset Sums

    P1466 集合 Subset Sums 162通过 308提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 对于从1到N (1 ...

  2. USACO 2.2.2 Subset Sums解题报告

    分类:DP,递推,记忆化搜索 作者:ACShiryu 时间:2011-7-15 Subset Sums JRM For many sets of consecutive integers from 1 ...

  3. Codeforces 348C:Subset Sums

    Codeforces 348C:Subset Sums 题目链接:http://codeforces.com/contest/348/problem/C 题目大意:给出$n$个数,$m$个集合(每个集 ...

  4. 集合 Subset Sums

    题目描述 对于从1到N的连续整集合合,能划分成两个子集合,且保证每个集合的数字和是相等的. 举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字和是相等的: {3} and ...

  5. P1466 集合 Subset Sums 搜索+递推+背包三种做法

    题目描述 对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的.举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子 ...

  6. usaco 2.1.4 Subset Sums 【母函数】

    (1+x)*(1+x^2)*(1+x^3)*--*x^n   则 x^(n*(n+1)/2) 的系数一半为ans /*ID: w.x.f.g1PROG: subsetLANG: C++ */#incl ...

  7. USACO-Section2.2 Subset Sums

    2017-9-1 题目描述 将1到n总共n个数分成两个数总和相同的集合,求出所有的种数 解答 一看到直接深搜,共2^n次方,剪枝只到36就超时了,最后用动归 代码 /* ID: 18795871 PR ...

  8. Subset Sums and Knapsack

    The Problem 问题属于dynamics programming大类. Given nnn items {1,2,...,n}\{1,2,...,n\}{1,2,...,n}, and eac ...

  9. 学校作业-Usaco DP水题

    好吧,因为USACO挂掉了,所以我写的所有代码都不保证正确性[好的,这么简单的题,再不写对,你就可以滚粗了! 第一题是USACO 2.2.2 ★Subset Sums 集合  对于从 1 到 N 的连 ...

最新文章

  1. 使用Arduino模块实施无线信号的重放攻击
  2. 吴恩达 coursera ML 第十六课总结+作业答案
  3. 服务器第二代型号,SK Hynix公开第二代服务器用SSD
  4. 23种设计模式(五)单一职责之装饰模式
  5. 使用猴子测试工具(1)
  6. mac安装win10_mac磁盘空间 mac安装win10分割多少磁盘空间合适
  7. spring的注入和直接new一个对象有什么不同?
  8. 中山大学2014年数学分析考研试题
  9. 牛津计算机科学要求,牛津布鲁克斯大学计算机科学本科申请条件.pdf
  10. matlab chan算法定位,求Chan算法解析
  11. 智能窗帘控制(光、红外、蓝牙)
  12. python 类的执行中保部存值_c/c++关于内存分配的知识(非常详细的比较,且VirtualAlloc分配内直接在进程的地址空间中保留一快内存)...
  13. 2022-08-22 第六小组 瞒春 学习笔记
  14. 计算机网络协议(五)——DNS、HTTPDNS
  15. 还弄不懂相对路径和绝对路径,这篇文章带你简单剖析
  16. 浅谈border-radius对border的影响
  17. tplink 有良知的路由器厂商
  18. Javafx+MySQL 学生成绩管理系统
  19. 天猫实时销量接口用于商品数据分析,超详细的接口介绍
  20. Silverlight WebOS案例2.0版本(基于Silverlight4开发的Web操作系统)

热门文章

  1. docker打包镜像出现python安装包超时的现象
  2. PyTorch学习之六个学习率调整策略
  3. [PyTorch] rnn,lstm,gru中输入输出维度
  4. pass基础架构分析
  5. 将编译器pass添加到Relay
  6. TVM Operator Inventory (TOPI)简介
  7. 华为4D成像雷达、智能驾驶平台MDC 810
  8. 自动机器学习(AutoML)
  9. 什么是GStreamer?
  10. 图像处理 100 问!!