当前位置: 首页 > article >正文

P8687 [蓝桥杯 2019 省 A] 糖果

      ~~~~~      P8687 [蓝桥杯 2019 省 A] 糖果       ~~~~~      总题单链接

思路

      ~~~~~      发现 k ≤ 20 , m ≤ 20 k\le20,m\le 20 k20,m20,考虑状压DP。

      ~~~~~      预处理 g [ i ] g[i] g[i] 表示第 i i i 包糖有哪几种糖果。

      ~~~~~       d p [ i ] dp[i] dp[i] 表示在 i i i 状态下最少要买几包糖。

      ~~~~~      对于第 i i i 包糖,枚举所有状态 j j j d p [ g [ i ] ∣ j ] = m i n ( d p [ g [ i ] ∣ j ] , d p [ j ] + 1 ) dp[g[i]|j]=min(dp[g[i]|j],dp[j]+1) dp[g[i]j]=min(dp[g[i]j],dp[j]+1)

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;

ll n,m,Q,g[105],dp[(1ll<<20)+5];

signed main(){
	ios::sync_with_stdio(false);
	
	cin>>n>>m>>Q;
	for(ll i=1;i<=n;i++){
		for(ll j=1;j<=Q;j++){
			ll k;cin>>k;
			g[i]|=(1ll<<(k-1));
		}
	}
	
	memset(dp,0x3f,sizeof(dp));
	dp[0]=0;
	
	for(ll i=1;i<=n;i++)
		for(ll j=(1ll<<m)-1;j>=0;j--)
			dp[g[i]|j]=min(dp[g[i]|j],dp[j]+1);
	
	cout<<(dp[(1ll<<m)-1]<=n?dp[(1ll<<m)-1]:-1);
	
	return 0;
}

http://www.kler.cn/a/292865.html

相关文章:

  • 使用Python实现定期从API获取数据并存储到数据库的完整指南
  • java导出pdf
  • 【金融风控】特征评估与筛选详解
  • 鸿蒙next版开发:订阅应用事件(ArkTS)
  • Apache ECharts
  • 7天用Go从零实现分布式缓存GeeCache(学习)(3)
  • 苹果mac数据恢复概率大吗 mac数据恢复专业软件哪个好用
  • Pyspark DataFrame常用操作函数和示例
  • javascript中数组遍历的所有方法
  • 云计算之云原生(下)
  • 【电机控制】TC275芯片——ADC外设驱动的配置与实现
  • RK3566/RK3568 Android 11 动态禁止/启用APP
  • 深度学习(二)-损失函数+梯度下降
  • SprinBoot+Vue食堂预约点餐微信小程序的设计与实现
  • 数据手册参数识别后手动确认
  • FFmpeg源码:av_rescale_rnd、av_rescale_q_rnd、av_rescale_q、av_add_stable函数分析
  • 手机扬声器音量总是不够大?试试“扬声器助推器”吧
  • 仕考网:公务员笔试和面试哪个难?
  • CSS-transform【下】(3D转换)【看这一篇就够了!!!】
  • 记录|as string和ToString()的区别
  • 编程式路由跳转
  • opencv轮廓近似,模板匹配
  • 10款好用的电脑监控软件推荐丨2024年干货整理,赶紧码住!
  • 睿赛德科技携手先楫共创RISC-V生态|RT-Thread EtherCAT主从站方案大放异彩
  • 挑战亿级数据:安企CMS性能优化的探索之路
  • JSON 包裹 PDF 流的编码问题