首页 > 其他分享 >P1466 [USACO2.2] 集合 Subset Sums

P1466 [USACO2.2] 集合 Subset Sums

时间:2024-03-23 09:01:18浏览次数:28  
标签:Subset www cn int luogu P1466 Sums com

题目传送门:P1466 [USACO2.2] 集合 Subset Sums - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P1466

// https://www.luogu.com.cn/problem/P1466
// 背包
#include<bits/stdc++.h>

using namespace std;

int val[40], f[40][1005];//f[i][j]在前i个数中选取和能到j的方案数

int main() {
    f[0][0] = 1;
    int n, sum = 0;
    cin >> n; 
    for(int i = 1; i <= n; i++) {
        sum += i;
        val[i] = sum;
    }
    if(sum % 2) cout << "0\n";
    else {
        for(int i = 1; i <= n; i++) {
            for(int j = 1; j <= val[i]; j++) {
                if(j >= i) f[i][j] = f[i - 1][j - i] + f[i - 1][j];// 选这个数和不选
                else f[i][j] = f[i - 1][j];// 选不了
            }
        }
        cout << f[n][sum / 2] << '\n';
    }
    return 0;
}

标签:Subset,www,cn,int,luogu,P1466,Sums,com
From: https://blog.csdn.net/release_lonely/article/details/136852877

相关文章

  • Edu 12 --- Simple Subset -- 题解 (一个比较巧妙的思维算法题)
    SimpleSubset:题解:  思路解析:    题目要求任意两个数的和为质数,那我们最坏情况就是任意选择一个数,此时子集为最大。    如果子集中有两个奇数或者偶数,他们两个之和一定会被2整除,那么我们只能选择一奇一偶。    如果多个奇数都为1的话,他们两两......
  • Different Subsets For All Tuples (数学)
    DifferentSubsetsForAllTuples数学题面有一个长度为\(n\)的数列,每个位置上数字的值在\([1,m]\)范围内,则共有\(m^n\)种可能的数列。分别求出每个数列中本质不同的子序列个数(包含空序列),然后求和,答案对\(10^9+7\)取模。(\(1\len,m\le10^6\))数据范围$1<=n,m<=10^{6}$解法......
  • AT_abc169_f Knapsack for All Subsets题解
    如果我们定义\(dp[i][j]\)表示对于前i个字符而言,其子集满足条件的个数。那4么对于一个位置i而言,要么选择它贡献要么不选择,所以\(dp[i][j]=dp[i-1][j-a[i]](j>=a[i])+dp[i-1][j]\),这是每一个\(f(i)\)的函数。然后我们加上所有的\(dp[i][k](i:1到n)ans+=dp[i][k......
  • nvm安装Nodejs时报错,Could not retrieve https://npm.taobao.org/mirrors/node/latest
    1.首先要使用管理员运行命令2.在安装nvm的目录下找到settings.txt,没有就手动增加一个node_mirror:https://npm.taobao.org/mirrors/node/npm_mirror:https://npm.taobao.org/mirrors/npm/这个地方有点奇怪,安装18的时候把上面的Https://去掉以后就下载成功了3.安装19以及......
  • PostgreSQL 数据库安全之检验数据块的损坏- data_checksums 参数设置
    默认情况下,数据页不受校验和保护,但可以选择为集群启用这一功能。启用后,每个数据页都包含一个校验和,该校验和在写入该页时更新,并在每次读取该页时进行验证。只有数据页受校验和保护;内部数据结构和临时文件不是。校验和通常在使用initdb初始化集群时启用。还可以在以后的脱......
  • CF1270G Subset with Zero Sum
    G.SubsetwithZeroSum很妙。一开始冲着背包去想的,显然不行。考虑他条件给的这个\(i−n\lea_i\lei−1\)化简一下得到\[1\lei-a_i\len\]题目要去求\[\sum\limits_{i\inS}a_i=0\]把所给信息往这个式子上靠。得到\[\sum\limits_{i\inS}i=\sum......
  • AtCoder Regular Contest 168 E Subsegments with Large Sums
    洛谷传送门AtCoder传送门尝试二分答案,问题变为要求恰好选\(x\)段\(\ges\),最大化选的段数。发现我们不是很会算段数的\(\max\),因为要求段不重不漏地覆盖\([1,n]\)。考虑给每个\(\ges\)段\([l,r]\)一个\(r-l\)的代价,于是变成了算代价的\(\min\)。此时不再要求......
  • CF660E Different Subsets For All Tuples
    题意给定一个长度为\(n\)的序列。每个数字的范围为\([1,m]\)。求一共\(m^n\)种数列,每个数列种本质不同的子序列个数之和。Sol考虑用一种比较好的方式表示答案。枚举本质不同的子序列长度,枚举中间跳过的数的个数。\[m^n+\sum_{i=1}^n\sum_{j=0}^{n-i......
  • ARC169 B Subsegments with Small Sums 题解
    LinkARC169BSubsegmentswithSmallSumsQuestion\(x\)是一个序列,定义\(f(x)\)为把序列\(x\)切成几段,每段的和不能超过\(S\)的最小段数给出序列\(A=(A_1,A_2,\cdots,A_N)\)求:\[\sum_{1\lel\leN}f((A_l,A_{l+1},\cdots,A_r))\]Question先考虑一个结论,\(x\)为......
  • [AGC052C] Nondivisible Prefix Sums 题解
    题目链接点击打开链接题目解法好题!一个序列是不合法的,必定满足某些结论,我们不妨猜测一下首先如果和为\(P\)的倍数,必定不合法然后手玩几个可以发现,最极限的情况是\(P-1\)个\(1\;+\;\)\(b_i\;+\;\)\(P-b_i\)如果在这个情况下再加一个\(1\),就爆了其中\(1\)可以替......