矩阵消除游戏(状压+dfs)

高斯消除矩阵 矩阵运算 初始矩阵 (a11a12a13a21a22a23a31a32a33)=(b1b2b3)\begin{pmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} &... 阅读详情

矩阵消除游戏

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述 

牛妹在玩一个名为矩阵消除的游戏,矩阵的大小是nn行mm列,第ii行第jj列的单元格的权值为ai,jai,j​,牛妹可以进行kk个回合的游戏,在每个回合,牛妹可以选择一行或者选择一列,然后将这一行或者这一列的所有单元格中的权值变为00,同时牛妹的分数会加上这一行或者这一列中的所有单元格的权值的和。

牛妹想最大化她的得分,球球你帮帮她吧!

输入描述:

第一行三个整数n,m,kn,m,k
接下来nn行每行mm个整数表示矩阵中各个单元格的权值。

输出描述:

输出一个整数表示牛妹能获得的最大分数。

示例1

输入

复制

3 3 2
101 1 102
1 202 1
100 8 100

输出

复制

414

备注:

 

1≤n,m≤151≤n,m≤15

1≤ai,j≤1e61≤ai,j​≤1e6

1≤k≤n∗m1≤k≤n∗m

int n,m,k;
int a[20][20];
int l[20];
int ans=0;
int get_cnt(int x){//状压储存选中的行
    int res=0;
    while (x) {
        res+=x&1;
        x>>=1;
    }
    return res;
}
void solve(int id,int cnt,int x){ //id是正在处理的行 cnt是已经选中的行 x是需要的行
    int now=get_cnt(cnt);
    int t=cnt;
    if(n-id+1<x-now) return;
    if(now==x){
        int res=0;
        for(int i=1;i<=n;i++,t>>=1){
            if(t&1){
                for(int j=1;j<=m;j++){
                    res+=a[i][j];
                }
            }
        }
        for(int j=1;j<=m;j++){
            t=cnt;
            l[j]=0;
            for(int i=1;i<=n;i++,t>>=1){
                if(!(t&1)){
                    l[j]+=a[i][j];
                }
            }
        }
        sort(l+1,l+1+m,greater<int>());
        for(int i=1;i<=k-x;i++){
            res+=l[i];
        }
        ans=max(ans,res);
        return;
    }
    solve(id+1,cnt,x);
    solve(id+1,cnt|(1<<(id-1)),x);
}
int main(){
    cin>>n>>m>>k;
    int sum=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
            sum+=a[i][j];
        }
    }
    if(k>=n||k>=m){
        cout<<sum<<endl;
        return 0;
    }
    for(int x=0;x<=k;x++){ //x是需要的行 k-x就是需要的列
        solve(1,0,x);
    }
    cout<<ans;
}

C#宝石消除游戏:开发详解与实践 在.NET平台上,Winform为开发者提供了一种高效且易于理解的方式来创建桌面应用程序。使用Winform,可以快速搭建出具有丰富交互功能的用户界面,并通过事件处理逻辑来响应用户的点击、输入等操作。二维数组是数组的数组,也可以被看作是矩阵,是游戏开发中常见的数据结构,它由行和列构成。对于宝石消除游戏而言,二维数组用于表示游戏网格,其中的每个元素可以代表一种宝石。 阅读详情

相关推荐

银河麒麟V10 SP3下NFS客户端挂载失败?5个常见问题排查与修复

本文针对银河麒麟V10 SP3系统中NFS客户端挂载失败的常见问题,提供了5个实战排查方案。从基础服务状态检查到防火墙配置、版本兼容性、/etc/fstab设置及权限映射,详细解析了问题根源与解决方案,帮助用户快速恢复NFS文件共享功能。

weixin_42525005的博客 361

二维数组

1.加强Foreach循环: 语法:for(数据类型 当前遍历元素的一个指代:数组名){ 循环体 } 注意:Foreach循环只能用来循环访问数组或者集合中的元素。不能对数组中的元素进行修改,增加,删除。 Foreach循环只能用来访问数组中的元素。for循环可以对数组中的元素作任意操作。 案例: public class ForeachTest{ public static void mai...

weixin_43905026的博客 1572

C#操作SQLite数据库帮助类——SQLiteHelper

using System; using System.Collections.Generic; using System.Data.SQLite; using System.Data; namespace Com.ZCWL.Rock.Helper { public class SQLiteHelper { private static string connectionString =

跟健哥出去走走 2万+

矩阵消除(二进制枚举,贪心)

题目传送门 文章目录思路:AC代码: 思路: 题目说我们选某几列,某几行,使得我们获得的权值最大。 那么我们二进制枚举行,例如有4*4的矩阵,k=4, 1010表示,1行和第4行需要选,剩下2个选列,对应行置为0。那么再取处理后的矩阵的权值和前2大的列即可 AC代码: #include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 200; int a[maxn][maxn]; LL

qq_45769627的博客 783

基于python+mediapipe的手势拖动识别(无gpu)

手势点方块拖动

weixin_38029956的博客 5982

【MagicDrive环境配置】新手配俩星期版

1.创建一个新的环境conda create -n newdrive python==3.82.激活该环境conda activate newdrive3.下载MagicDrive源码 git clone --recursive https://github.com/cure-lab/MagicDrive.git,如果出现时间超时八成是网的问题,直接自己下载解压就好3.我的cuda版本是11.7,但11.7导致后续安装有冲突,因此进入。

m0_46261292的博客 2203

数位染色(状压枚举/dfs)

(1)思路: x的范围不超过1e18,所以x最多只有19位数字。O(n2^n)状压枚举每位选或不选即可通过。(每个位置上两种状态0或1,多少位置,2的多少次方)还需要遍历n; 代码中有注释,可以先看一遍代码,方便理解 (2)测试数据 1234567 (3)代码(状压—状态压缩) // 状压基本模板 #include <bits/stdc++.h> using namespace std; #define ll long long int zt[22]; //代表每一位上的数字,等下..

小郑在路上 976

手把手教你学Simulink--基于新能源与储能系统的场景实例:压缩空气储能(CAES)系统热力学建模

本文介绍了使用Simulink进行压缩空气储能(CAES)系统热力学建模的详细步骤。系统模型包含压缩机、储气装置、膨胀机、热交换器和控制器等核心模块,通过MATLAB函数计算各部件参数,并设置仿真条件。文章详细说明了从模型创建到性能评估的完整流程,包括压缩/膨胀过程的能量转换、温度压力变化等关键指标分析。该建模方法可验证设计方案的有效性,并为系统优化提供参考,适用于新能源与储能领域的研究与应用。

MHD0815的博客 9174

[NC200190]矩阵消除游戏

题目: [NC200190]矩阵消除游戏 ,哈哈,我们今天来看一道稍微复杂一点的贪心题嘛,这是选自牛客上的一道题,好了,我们一起来看看题意吧: 题目描述是复制的,可能有部分显示不对,我就把题目链接放下面! 题目链接: [NC200190]矩阵消除游戏 题目描述 牛妹在玩一个名为矩阵消除的游戏,矩阵的大小是{n}n行{m}m列,第{i}i行第{j}j列的单元格的权值为a i,j,牛妹可以进行{k}k个回合的游戏,在每个回合,牛妹可以选择一行或者选择一列,然后将这一行或者这一列的所有单元格中的权值变为0,

小知识吖 4612

mybaits-plus通用CRUD详解及代码案例

文章目录mybaitsplus通用CRUD插入操作方法定义测试用例mybaitsplus主键生成策略设置自增主键设置输入主键:UUID:ID_WORKER_STR:ID_WORKER:更新操作根据id更新方法定义:方法步骤根据条件更新方法定义:更新步骤:根据条件更新(可以更新NULL)删除操作根据id删除方法定义:删除步骤:根据 entity 条件删除方法定义:删除步骤:根据ID 批量删除方法定义:删除步骤:查询操作根据id查询方法定义:查询步骤:根据id批量查询方法定义:查询步骤:根据 entity 条件

流楚丶格念的博客 3405

Python 爬虫实战:网站反爬机制绕过终极指南(技术原理 + 实战代码 + 避坑技巧)

在 Python 爬虫的世界里,反爬机制是每一个爬虫开发者都必须面对的挑战。网站为了保护自身数据不被恶意爬取,会设置各种反爬机制,这使得爬虫开发变得更加复杂和有趣。本文将详细介绍常见的网站反爬机制及其绕过方法,结合技术原理、实战代码和避坑技巧,帮助你成为一名优秀的爬虫开发者。

u014481728的博客 1004

C 矩阵消除游戏

链接:https://ac.nowcoder.com/acm/contest/4090/C 牛妹在玩一个名为矩阵消除的游戏,矩阵的大小是{n}n行{m}m列,第{i}i行第{j}j列的单元格的权值为a_{i,j}ai,j​,牛妹可以进行{k}k个回合的游戏,在每个回合,牛妹可以选择一行或者选择一列,然后将这一行或者这一列的所有单元格中的权值变为{0}0,同时牛妹的分数会加上这一行或者这一列中的所...

Luoriliming的博客 795

智能制造——解读AI+工业设备预测性维护解决方案【附全文阅读】

摘要:本方案面向设备密集型制造企业,提供基于AI的预测性维护解决方案。通过工业物联网、大数据和AI算法,整合传感器数据与专家知识库,构建异常检测、故障诊断等模型,实现设备台账管理、智能点检等核心功能。方案配套软硬件工具矩阵,已在锂电子等行业落地应用,可降低维护成本30%以上,减少非计划停机50%,助力企业智能化转型。

cdfunlove的博客 138

【2014广州市选day1】JZOJ2020年9月12日提高B组T3 消除游戏

【2014广州市选day1】JZOJ9月12日提高B组T3 消除游戏 题目 Description 相信大家玩过很多网络上的消除类型的游戏,一般来说就是在一个大拼图内找出相同的部分进行最大程度的消除操作。下面我们给出一个拼图以及消除规则,请你找到最大限度的消除方案。 【拼图组成】 拼图为 N行 * M列 的矩阵,每个格子中都放着一个数字,范围是0到9。例如: 4*5 矩阵: 【消除规则】 我们可以从拼图的任意一个格子(坐标【X,Y】)出发,消除该格子的数字,然后,向格子X坐标正负1,Y坐标正负1的范围,寻

LZX_lzx的博客 159

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

矩阵消除游戏--牛客练习赛58

题意: 牛妹在玩一个名为矩阵消除的游戏,矩阵的大小是n行m列,第i行第j列的单元格的权值为ai,j,a_{i,j},ai,j​,,牛妹可以进行k个回合的游戏,在每个回合,牛妹可以选择一行或者选择一列,然后将这一行或者这一列的所有单元格中的权值变为0,同时牛妹的分数会加上这一行或者这一列中的所有单元格的权值的和。 牛妹想最大化她的得分,球球你帮帮她吧! 题解: 如果这个题想直接暴力对所有行和列进行dfs的话,这样应该是会超时的,试了好几种方法,都T了,很遗憾。 这题无论是dfs或者是二进制枚举,核心都是,枚举

xxxxxiao123的博客 348

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

水果消除(搜索之DFS)

题目描述 “水果消除”是一款手机游戏,相信大家都玩过或玩过类似的游戏。 下面是“水果消除”游戏的一种初始状态。 消除的基本规则:如果有2个或2个以上的相同水果连在一起,则可以点选并消除。 请问在某一种状态下,有几种可以点选并消除的选择方案。 输入 先输入一个整数n,表示放水果的格子总数为n*n。n取3到1000之间的整数(含3和1000)。

feng_zhiyu的博客 598

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

汉字消除微信小游戏实现教程

本文详细介绍了基于Unity引擎开发汉字主题休闲游戏《汉字碰碰消》的实现方案。游戏包含汉字找不同、消除、识别、找梗等7种玩法,重点阐述了核心功能模块的实现逻辑:1)找不同玩法通过相似字形替换算法生成差异点;2)消除玩法采用DFS算法检测三连组合;3)汉字识别基于拆解字典验证输入;4)找梗玩法实现热梗匹配验证。文章还提供了性能优化建议(对象池、资源压缩)和扩展方向(社交功能、文化科普),为开发者实现同类项目提供完整技术参考。

kyh1003381120的博客 953

枚举(矩阵消除、七段数码管)

目录 矩阵消除: 题目: 思路: 代码: 七段数码管(蓝桥杯题目) 大致题意: 思路: 代码: 矩阵消除: 题目: 牛妹在玩一个名为矩阵消除的游戏,矩阵的大小是行列,第行第列的单元格的权值为, 牛妹可以进行个回合的游戏,在每个回合,牛妹可以选择一行或者选择一列, 然后将这一行或者这一列的所有单元格中的权值变为,同时牛妹的分数会加上这一行或者这一列中的所有单元格的权值的和。 牛妹想最大化她的得分,球球你帮帮她吧! 输入描述: 第一行三个整数 接下来行每行个整数表示矩阵..

m0_50623076的博客 284

【2014广州市选day1】消除游戏【蒟蒻的小题解】

Description 相信大家玩过很多网络上的消除类型的游戏,一般来说就是在一个大拼图内找出相同的部分进行最大程度的消除操作。下面我们给出一个拼图以及消除规则,请你找到最大限度的消除方案。 【拼图组成】 拼图为 N行 * M列 的矩阵,每个格子中都放着一个数字,范围是0到9。例如: 4*5 矩阵: 【消除规则】 我们可以从拼图的任意一个格子(坐标【X,Y】)出发,消除该格子的数字,然后,向格子X坐标正负1,Y坐标正负1的范围,寻找和原来格子相同的数字(不能找已经消除过的格子),一并消除,然后在新的格子继

qq_49972640的博客 283

【牛客练习赛58-C】矩阵消除游戏(dfs+状态标记)

题目传送门 题目 思路 之前做过的题,又不会做了????。 基本思路就是枚举+dfs。枚举选择x(x∈[0,k]x\in[0,k]x∈[0,k])行,那么还需要选择k-x列。 通过dfs来计算n行里面选择哪x行,通过二进制(1个int型整数)来标记选了哪些行,进行必要的剪枝。确定了要选的x行后,剩下则需要计算删除该x行后,每一列的和,取和最大的k-x列,统计答案,并更新答案。 注意,判断int型每一位上是0还是1时,最好用>>而不是用<<,否则会超时。 玄学问题,和底层的硬件实现和c

Cassie_zkq的博客 526

CCF201512-2 消除类游戏

CCF201512-2 消除类游戏 解题思路及解题代码

青春无问西东 岁月自成芳华 880

[NOIP2011] 玛雅游戏(回溯)

题目描述 Mayan puzzle 是最近流行起来的一个游戏。游戏界面是一个7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上。游戏通关是指在规定的步数内消除所有的方块,消除方块的规则如下: 1、 每步移动可以且仅可以沿横向(即向左或向右)拖动某一方块一格:当拖动这一方块时,如果拖动后到达的位置(以下称目标位置)也有方块,那么这两个方块

Anonymity的博客 675

NKOJ 2440 数字消除游戏【迭代加深+剪枝】

问题描述 在一个n*n的方形棋盘上玩消除游戏,棋盘上布满了数字。 每一步,玩家可以任选一个数字x,用它填充坐标为(1,1)格子所在连通区域,该区域的数字都会变成x。(如果两个数字相同且相邻,我们称这两个数字连通。相邻是上下左右四方向)。 当整个棋盘的数字都相同时,就可以将整个棋盘上的数字消除掉,游戏结束。 问,最少需要几次操作就能消除所有数字。 输入格式 有若干组测试数据(不超过20组),对...

Yucohny 479

ccf 2015-12-2 消除类游戏(模拟)

思路:按题意模拟,因为提前消除会对后面的判断有影响,所以多开一个数组用来消除,用原数组作比较。(一开始打算dfs,后面发现没必要) 代码: #include<iostream> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const int N = 35; int a[N][N],b[N][N]; int nex[4][2]={{0,1},{0,-1},{

smilng的博客 145

伪C++开发小游戏---连连看

几个月之前就想要开发一个连连看小游戏,但是当时在算法这一步上面卡住了,之后也就不了了之。暑假末期将至,突然又想起了这个想法,正好这时候也有了一点思路,打了十几个小时终于最后做出了一个差不多的模样,写一篇笔记记录一下。

weixin_60360239的博客 2417
上一篇: CCF-CSP 第23次认证考试 202109-3脉冲神经网络(模拟)(100分)
下一篇: 数列互质(莫队离线算法)
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值