USACO Section2.2 Subset Sums 解题报告 【icedream61】
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】的更多相关文章
- USACO Section2.1 The Castle 解题报告
castle解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section2.1 Ordered Fractions 解题报告
frac1解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...
- USACO Section2.1 Healthy Holsteins 解题报告 【icedream61】
holstein解题报告 --------------------------------------------------------------------------------------- ...
- USACO Section2.2 Preface Numbering 解题报告 【icedream61】
preface解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.1 Hamming Codes 解题报告 【icedream61】
hamming解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.3 Controlling Companies 解题报告 【icedream61】
concom解题报告------------------------------------------------------------------------------------------ ...
- USACO Section2.3 Money Systems 解题报告 【icedream61】
money解题报告------------------------------------------------------------------------------------------- ...
- USACO Section2.3 Zero Sum 解题报告 【icedream61】
zerosum解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.3 Cow Pedigrees 解题报告 【icedream61】
nocows解题报告------------------------------------------------------------------------------------------ ...
随机推荐
- Lubuntu , ubuntu 搜索文件
使用命令行方式搜索 $ locate your_filename
- MVC中某个页面不需要引用母版页的正确写法
有些页面想使用单独的样式不想用母版页的时候,可以在开始声明下,就可以不用母版页的CSS和JS引用了语法如下: @{Layout = "";} . 非常之简单
- 【CCPC-Wannafly Winter Camp Day3 (Div1) G】排列(水题)
点此看题面 大致题意:已知 \(p\)为\(n\)的一个排列,定义\(A(p)_i=min_{j=1}^ip_j\),若用\(q_i\)表示\(p\)第\(i\)小的前缀的长度(以值为第一关键字,下标 ...
- telegram汉化和代理
telegram在Ubuntu18.04的应用商店中可以一键下载. 1.注册:用国内手机号即可,就是验证码可能很慢. 2.汉化:关注zh-CN 频道,在点击其中的安装链接即可. 3.代理: 如果你使用 ...
- EF问题集合
1. 在使用数据迁移的过程中,如果手工删除了本地数据库之后,再次尝试连接被删除的数据库,会有以下提示: System.Data.SqlClient.SqlException (0x80131904): ...
- bootstrap suggest搜索建议插件
近日因工作需要看了下此插件. 首先下载bootstrap js包.添加此插件的引用.注意css样式要引用,不能忘记. 前台页面代码,因为楼主做的是选项卡切换查询不同的结果. <tr> &l ...
- a=a+(a++);b=b+(++b);计算顺序,反汇编
a=a+(a++); 013913BC mov eax,dword ptr [a] 013913BF add eax,dword ptr [a] 013913C2 mov dword ptr [a], ...
- vue 城市搜索组件
1.实现大致是如下效果 2.搜索组件的页面结构 <template> <div> <div class="search"> ...
- 17、SpringBoot------整合dubbo
SpringBoot整合Dubbo+Zookeaper 1.安装运行zookeeper (1)下载zookeeper 官网:http://zookeeper.apache.org/ (2)解压缩 (3 ...
- Servlet学习笔记06——什么是转发,路径,状态管理?
1.include指令 (1)作用: 告诉容器,在将jsp转换成Servlet时,将 某个文件的内容插入到该指令所在的位置. (2)语法: <%@ include file="&quo ...