莫名其妙的神奇背包

今天要谈论的是一堆奇形怪状、莫名其妙、精灵可爱的背包。

416.采药

最基础的01背包模板题,随随便便DP即可。
for (int i=1;i<=n;i++)
  for (int j=m;j>=a[i];j--)
   f[j]=max(f[j],f[j-a[i]]+b[i]);

417.集合求和

01背包求方案数。
for (int i=1;i<=m;i++)//从1-m枚举使用的数(m代表题目中的n)
  for (int j=n;j>=i;j--)//从n的累加和到i枚举累加和(n代表1-m的累加和)
    f[j]=f[j]+f[j-i];//f[j]的方案数为本身方案数+减去i的方案数

418.完全背包

最基础的完全背包模板题,随随便便DP即可。
for (int i=1;i<=n;i++)
  for (int j=a[i];j<=m;j++)
    f[j]=max(f[j],f[j-a[i]]+b[i]);

419.质数和分解

完全背包求方案数
这里要做一个质数的预处理
for (int i=1;i<=p;i++)//p为1-n质数的个数
   for (int j=a[i];j<=n;j++)//a[i]为一个质数
      f[j]=f[j]+f[j-a[i]];//f[j]的方案数为本身方案数+减去a[i]的方案数

420.逃亡的准备

这这这是一道多重背包题。我们可以使用神奇的二进制法来优化这个算法。

比如有一个数字叫做66。
则可以将其分解为1+2+4+8+16+32+3
通过这些神奇的数字就可以拼出1-n的所有数字。
核心代码
while (k<a1)
  {
	 	    
	for (int j=m;j>=k*b[i];j--)
	f[j]=max(f[j],f[j-k*b[i]]+k*c[i]);
	a1-=k;
	k*=2;
  }
for (int j=m;j>=a1*b[i];j--)
  {
        f[j]=max(f[j],f[j-a1*b[i]]+a1*c[i]);
  }

关于该题,如果数量*体积已经超过背包的容积,则可直接当成完全背包来做。

for (int j=b[i];j<=m;j++)
  f[j]=max(f[j],f[j-b[i]]+c[i]);
就省了一堆莫名其妙的事了。

422.竞赛真理

每个物品有两种“体积”和两种“价值”,做两遍01背包即可。
for (int i=1;i<=n;i++)
  for (int j=m;j>=min(b[i],b1[i]);j--)//min(b[i],b1[i])可以保证每次循环都有事干
   {
	if (j>=b[i])
	 f[j]=max(f[j],f[j-b[i]]+a[i]);//如果大于第一种体积,则可以选择这种
	if (j>=b1[i])
         f[j]=max(f[j],f[j-b1[i]]+a1[i]);//如果大于第二种体积,则可以选择这种
   }

423.金明的预算方案

带有依赖性的背包,分为主件附件,须选择对应主件才可选择其附件。
题目中说明尽量选择价格*重要度值高的,也就是说 价格*重要度是该物品的价值
for (int i=1;i<=n;i++)
	 if (c[i]==0)//是主件才进入循环
	  {
	  	for (int j=1;j<=a[i];j++)
	   	 h[j]=0;//清空辅助数组h
	  	for (int j=a[i];j<=m;j++)
	  	  h[j]=f[j-a[i]]+b[i];//给辅助数组赋值(h[j]表示剩下钱为j时最大价值)
	  	for (int j=1;j<=n;j++)
	  	 if (c[j]==i)//如果找到了以i为主件的一件物品
	  	  {
	  	  	for (int k=m;k>=a[i]+a[j];k--)
	  	  	  h[k]=max(h[k-a[j]]+b[j],h[k]);//做一遍01背包
	  	  }
	  	for(int j=a[i];j<=m;j++)
	  	  if (h[j]>f[j])f[j]=h[j];//取大值
	  }



数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值