usaco 2.2.2 subset
来源:互联网 发布:三菱马达选型软件 编辑:程序博客网 时间:2024/06/04 18:24
首先写了个暴力,结果没过。
/*ID: cm750621PROG: subsetLANG: C++*/#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <iostream>using namespace std;const int size=10010;int i,j,k,m,n,ans;void bfs(int sum,int num){if(num>m)return ;if(sum==k){ans++;return ;}bfs(sum+num,num+1);bfs(sum,num+1);}int main(){freopen("subset.in","r",stdin);freopen("subset.out","w",stdout);scanf("%d",&m);n=(1+m)*m/2;if(n%2==1){printf("0");return 0;}k=n/2;bfs(0,1);printf("%d\n",ans);return 0;}
然后想了想,终于改对了
/*ID: cm750621PROG: subsetLANG: C++*/#include <cstdio>#include <cstring>long long a[40][40*(40+1)/2];int main(){freopen("subset.in", "r", stdin);freopen("subset.out", "w", stdout);int i,j,k,m,n;a[1][1]=1;scanf("%d",&n);if(n*(n+1)%4!=0){printf("0\n");return 0;}for(i=2;i<=39;i++)for(j=1;j<=i*(i+1)/2;j++){if(i>n)goto out; if(j<i)a[i][j]=a[i-1][j];elseif(j==i)a[i][j]=a[i-1][j]+1;elseif(j > i)a[i][j]=a[i-1][j]+a[i-1][j-i];} out:;printf("%lld\n",a[n][n*(n+1)/2/2]/2);return 0;}
0 0
- usaco 2.2.2 subset
- [USACO 2.2.2] Subset Sums
- USACO 2.2.2 Subset Sums
- usaco 2.2.2 subset sums
- USACO 2.2.2 Subset Sums
- usaco 2.2.2 Subset sums
- USACO 2.2.2 Subset Sums
- USACO 2.2 Subset Sums (subset)
- DP USACO 2.2.2 Subset Sums 集合
- USACO:2.2.2 Subset Sums 集合和
- USACO 2.2 Subset Sums
- [usaco]2.2 Subset Sums
- USACO 2.2 Subset Numbers
- USACO 2.2 Subset Sums
- USACO 2.2 Subset Sums
- USACO 2.2:Subset Sums
- USACO Section 2.2 Subset Sums
- USACO Section 2.2 Subset Sums
- Java内存回收
- MAC上安装使用KYLIN(OLAP工具)完整版
- 关于C++ 顶层const和底层const对拷贝操作的影响
- [Codeforces 697C] PLEASE (矩阵特征向量)
- 寻找【NOIP2016提高A组模拟7.17】
- usaco 2.2.2 subset
- hadoop平台安装搭建
- Objective-c中.m、.h、.mm文件
- 【JZOJ4637】大鱼海棠
- 【职坐标】java集合框架简介
- C#基础知识(六)——冒泡排序的书写
- linux上yum安装memcache
- 数据结构知识点
- kafka学习之路(三)——高级