集美大学“第15届蓝桥杯大赛(软件类)“校内选拔赛 D矩阵选数

经典的状态压缩DP

cpp 复制代码
int dp[15][(1<<14)+10];
int a[15][15];
void solve()
{
	
	//dp[i][st]考虑到了第i行 并且当前考虑完第i行以后的选择状态是st的所有方案中的最大值
	for(int i=1;i<=13;i++)
	 for(int j=1;j<=13;j++)
	  cin>>a[i][j];
	
	for(int i=1;i<=13;i++){
		for(int j=0;j<(1<<14);j++)
		 for(int k=0;k<13;k++){
		 	if(j>>k&1)dp[i][j] = max(dp[i][j],dp[i-1][j^(1<<k)]+a[i][k+1]);
		 }
	}
	
	cout<<dp[13][(1<<14)-1];
	 
}
相关推荐
阿正的梦工坊13 小时前
【Rust】16-async/await、Future 与执行器模型
网络·算法·rust
阿正的梦工坊13 小时前
【Rust】11-Rust 所有权模型的编译期推理机制
开发语言·算法·rust
风筝在晴天搁浅13 小时前
LeetCode CodeTop 88.合并两个有序数组
算法·leetcode·职场和发展
GuWen_yue13 小时前
吃透二叉树与递归!60分钟掌握树结构核心+解题思路
javascript·算法
happymaker062613 小时前
LeetCodeHot100——3.无重复字符的最长子串
算法
nice_lcj52014 小时前
排序(2)-选择排序专题——简单选择排序与堆排序的结构优化
数据结构·算法·排序算法
nice_lcj52014 小时前
排序(4)-归并排序专题——归并排序的分治美学
java·数据结构·算法·排序算法
洛水水14 小时前
【力扣100题】83.最小栈
算法·leetcode·职场和发展
nice_lcj52014 小时前
排序(3)-第三篇:交换排序专题——从冒泡排序到快速排序的效率飞跃
java·数据结构·算法·排序算法
ywl47081208714 小时前
数据结构之链表反转算法
数据结构·算法·链表