(切)糕(动归)

本文介绍了一种解决集合划分计数问题的方法,该问题要求计算给定一系列数值时,能够划分成多少组使得每组的价值(最大值减最小值)之和小于特定阈值k。文章提出了一种动态规划解决方案,并提供了完整的C++代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(切)糕(动归)

一个集合的价值为其中的最大数减去最小数。给定n个数,请问有多少种划分集合的方案,使得集合的总价值小于k?

我们先把所有元素排好序。由于一个数必须被选,我们可以定义状态\(f[i][j][k]\),表示选到第i个数,未结束集合数为j,集合总价值为k的方案数。由于一个数可以开启一个集合,关闭一个集合,中继当前的任何一个集合,也可以独占一个集合,因此一共有四种转移:\(f[i][j][k]=\begin{aligned} f[i-1][j-1][k-(a[i]-a[i-1])*(j-1)] \\ +f[i-1][j][k-(a[i]-a[i-1])*j]*j \\ +f[i-1][j+1][k-(a[i]-a[i-1])*(j+1)]*(j+1) \\ +f[i-1][j][k-(a[i]-a[i-1])*j] \end{aligned}\)

似乎这是一种集合计数题的常见套路呢……

#include <cstdio>
#include <algorithm>
using namespace std;

typedef long long LL;
const LL maxn=205, maxk=1005, mod=1e9+7;
LL f[maxn][maxn][maxk];
LL a[maxn], n, K;

void up(LL i1, LL j1, LL k1, LL i2, LL j2, LL k2, LL x){
    if (i2<0||j2<0||k2<0) return;
    f[i1][j1][k1]+=f[i2][j2][k2]*x; f[i1][j1][k1]%=mod;
}

int main(){
    scanf("%lld%lld", &n, &K);
    for (LL i=1; i<=n; ++i) scanf("%lld", &a[i]);
    sort(a+1, a+n+1);
    f[0][0][0]=1;
    for (LL i=1; i<=n; ++i)
    for (LL j=0; j<=n; ++j)
    for (LL k=0; k<=K; ++k){
        up(i,j,k,i-1,j-1,k-(a[i]-a[i-1])*(j-1),1);
        up(i,j,k,i-1,j,k-(a[i]-a[i-1])*j,j);
        up(i,j,k,i-1,j,k-(a[i]-a[i-1])*j,1);
        up(i,j,k,i-1,j+1,k-(a[i]-a[i-1])*(j+1),j+1);
    } LL ans=0;
    for (LL k=0; k<=K; ++k) ans+=f[n][0][k], ans%=mod;
    printf("%lld\n", ans);
    return 0;
}

安拉胡阿克巴!

转载于:https://www.cnblogs.com/MyNameIsPc/p/9351092.html

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自/手进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自进料分别降低41.2%、54.3%、40.0%;手进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值