题解【AcWing279】自然数拆分

2021-03-20 08:25

阅读:521

标签:wing   pair   运算   题解   char   getc   mes   ons   turn   

题解【AcWing279】自然数拆分

标签(空格分隔): DP 背包


题面

因为题目中说参与加法运算的数可以重复,由此可以想到完全背包计数问题。

完全背包计数问题与 \(01\) 背包计数问题只有一个不同: \(01\) 背包计数问题的第二维循环是倒叙循环,而完全背包计数问题的第二维循环是正序循环。

这涉及到的是循环时后效性的问题,具体的证明留给读者思考。

注意每一步计数都要取模,且最后输出要减去只有 \(n\) 一个数的一组解。

#include 
#define DEBUG fprintf(stderr, "Passing [%s] line %d\n", __FUNCTION__, __LINE__)
#define itn int
#define gI gi

using namespace std;

typedef long long LL;
typedef pair  PII;
typedef pair  PIII;

inline int gi()
{
    int f = 1, x = 0; char c = getchar();
    while (c  '9') {if (c == '-') f = -1; c = getchar();}
    while (c >= '0' && c 

题解【AcWing279】自然数拆分

标签:wing   pair   运算   题解   char   getc   mes   ons   turn   

原文地址:https://www.cnblogs.com/xsl19/p/12303844.html


评论


亲,登录后才可以留言!