subset解题报告
------------------------------------------------------------------------------------------------------------------------------------------------
【题目】
  把1~N分成两组,让他们的和相等,请问这样的分组有多少种?
  但顺序可以颠倒,比如{3}、{2,1}和{2,1}、{3}算作一种。
【数据范围】
  1<=N<=39
【输入样例】
  7
【输出样例】
  4
------------------------------------------------------------------------------------------------------------------------------------------------
【分析】
  01背包问题。
  把每个数当做一个物品,那么有N件物品,编号i=1~N,分别对应数1~N;物品i的所占容量Ci=i。
  背包容量V=N×(N+1)÷4;显然只有N%4==1或N%4==2时本题答案为0,否则答案便是把背包放满的方案数d[V]除以2的结果了。
------------------------------------------------------------------------------------------------------------------------------------------------
【总结】
  这题见过,不过这次做第一次却是分析错了。没有想得太细,觉得代码很短就写来试试了。不过我倒是觉得,再有这种情况,如果是考试,那我就好好分析去;但如果是实际问题,我还是会试试,毕竟只需要花上一点时间,去检验一下对错,怎么想都比分析来得划算。
  自己又想了想,没想出解决方案,网上简单搜了下,看到了算法是01背包DP。于是把《背包九讲》重新温习了一遍,感觉比第一次看明白多了,很感谢崔添翼前辈!

------------------------------------------------------------------------------------------------------------------------------------------------

【代码】

 /*
ID: icedrea1
PROB: subset
LANG: C++
*/ #include <iostream>
#include <fstream>
using namespace std; int N;
long long d[+]; int main()
{
ifstream in("subset.in");
ofstream out("subset.out"); in>>N;
if(N%==||N%==) out<<<<endl;
else
{
int S=N*(N+)>>; // result is d[S,N]/2
d[]=;
for(int i=;i<=N;++i)
for(int v=S;v>=i;--v) d[v]=d[v]+d[v-i];
out<<d[S]/<<endl;
} in.close();
out.close();
return ;
}

USACO Section2.2 Subset Sums 解题报告 【icedream61】的更多相关文章

  1. USACO Section2.1 The Castle 解题报告

    castle解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...

  2. USACO Section2.1 Ordered Fractions 解题报告

    frac1解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...

  3. USACO Section2.1 Healthy Holsteins 解题报告 【icedream61】

    holstein解题报告 --------------------------------------------------------------------------------------- ...

  4. USACO Section2.2 Preface Numbering 解题报告 【icedream61】

    preface解题报告----------------------------------------------------------------------------------------- ...

  5. USACO Section2.1 Hamming Codes 解题报告 【icedream61】

    hamming解题报告----------------------------------------------------------------------------------------- ...

  6. USACO Section2.3 Controlling Companies 解题报告 【icedream61】

    concom解题报告------------------------------------------------------------------------------------------ ...

  7. USACO Section2.3 Money Systems 解题报告 【icedream61】

    money解题报告------------------------------------------------------------------------------------------- ...

  8. USACO Section2.3 Zero Sum 解题报告 【icedream61】

    zerosum解题报告----------------------------------------------------------------------------------------- ...

  9. USACO Section2.3 Cow Pedigrees 解题报告 【icedream61】

    nocows解题报告------------------------------------------------------------------------------------------ ...

随机推荐

  1. 概念:静态static相关知识

    在面向对象中,有‘静态’概念,通过关键字static进行说明, 例如: 静态属性:public static $name = '小仓鼠' 静态方法:public static function Nam ...

  2. 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据

    比如我创建了一个Sales Order(销售订单)后,如何用代码的方式取出这些通过SAP Partner determination自动填充的Involved Parties信息呢? 一种方法可以使用 ...

  3. CRSF在ASP.NET CORE MVC 的处理方式

    https://www.cnblogs.com/catcher1994/p/6720212.html

  4. xrdp 安装后 WINDOWS远程登录出错

    xrdp需要vnc作为基础服务, sudo apt-get install tightvncserver 树莓派上这个命令运行下再连就好了

  5. sql学习之创建表空间创建用户并授权

    --创建表空间语法:create tablespace [name]create tablespace hclTest--设置参数datafile 'F:/orcale/hclTest'--设置表空间 ...

  6. Vue nodejs商城项目-项目概述

    项目概况 用vue2.0 +node.js +MongonDB 做了一个商城系统 技术选型 Vue2.0+node.js+express+MongoDB+axios+vuex 构建工具 Webpack ...

  7. lambda函数,内置map()函数及filter()函数

    8.1 lambda函数 作用及意义:  1.没必要专门定义函数,给函数起名,起到精简的效果  2.简化代码的可读性 def ds(x): return 2 * x + 1 ds(5) ---11 g ...

  8. 面试-Spring理解

    转自http://hui.sohu.com/infonews/article/6331404387079946240 spring呢,是pivotal公司维护的一系列开源工具的总称,最为人所知的是sp ...

  9. Spring Cloud 入门 Eureka-Client服务提供

    前面文章介绍了如果创建“服务注册中心”,现在创建“服务提供者”,并向服务注册中心注册自己,在服务提供方中尝试着提供一个接口来获取当前所有的服务信息. 先,创建一个基本的Spring Boot应用.命名 ...

  10. Redhat 6.4 linux系统不重启识别热添加的硬盘方法

    1.1    选择虚拟机添加一块硬盘 1.2    查看系统当前磁盘信息 [root@zhongyi-test ~]# ls -l /dev/sd* brw-rw----. 1 root disk 8 ...