codeforces544E

用blender为模型贴图并在gazebo中显示 用blender为模型贴图并在gazebo中显示 首先我用的是最新的blender2.92版本,附上链接https://www.blender.org/download/。并设置好简体中文。语言可以在编辑->偏好设置->界面里面设置。 首先界面右上角的摄像头,方块,灯光三个场景全都删除。 接着导入stl格式的模型文件,下面以tianbot_mini上面的激光雷达的模型为例。 导入激光雷达模型后,点击进入上方的UV Editing按钮进入UV编辑界面 此时我面看见网格化的激光雷达模型 阅读详情

You have multiset of n strings of the same length, consisting of lowercase English letters. We will say that those strings are easy to remember if for each string there is some position i and some letter c of the English alphabet, such that this string is the only string in the multiset that has letter c in position i.

For example, a multiset of strings {“abc”, “aba”, “adc”, “ada”} are not easy to remember. And multiset {“abc”, “ada”, “ssa”} is easy to remember because:

the first string is the only string that has character c in position 3;
the second string is the only string that has character d in position 2;
the third string is the only string that has character s in position 2.
You want to change your multiset a little so that it is easy to remember. For aij coins, you can change character in the j-th position of the i-th string into any other lowercase letter of the English alphabet. Find what is the minimum sum you should pay in order to make the multiset of strings easy to remember.

Input
The first line contains two integers n, m (1 ≤ n, m ≤ 20) — the number of strings in the multiset and the length of the strings respectively. Next n lines contain the strings of the multiset, consisting only of lowercase English letters, each string’s length is m.

Next n lines contain m integers each, the i-th of them contains integers ai1, ai2, …, aim (0 ≤ aij ≤ 106).

Output
Print a single number — the answer to the problem.

Example
Input
4 5
abcde
abcde
abcde
abcde
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
Output
3
Input
4 3
abc
aba
adc
ada
10 10 10
10 1 10
10 10 10
10 1 10
Output
2
Input
3 3
abc
ada
ssa
1 1 1
1 1 1
1 1 1
Output
0

这种矩阵DP的,数据小的阶乘又无法接受的,要考虑状压DP,矩阵上面就直接考虑横向转移和竖向转移。
每次找最低位DP即可。

%:pragma GCC optimize(4)
using namespace std;
#include<bits/stdc++.h>
#define N 30
int dp[1<<25];
int n,m;
int a[N][N];
#define r(x) scanf("%d",&x)
#define F(i,a,b) for(int i=a;i<=b;i++) 
int qi[N][N];
int st[N][N];
char c[N][N];
int lowbit(int x)
{
    return (x&(-x));
}
int main()
{
    r(n);r(m);
    for(int i=1;i<=n;i++) scanf("%s",c[i]+1);
    F(i,1,n)
    F(j,1,m) 
    r(a[i][j]);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            int it=-2e9,sum=0;
            for(int k=1;k<=n;k++)
            {
                if(c[k][j]==c[i][j])
                {
                    st[i][j]|=(1<<(k-1));
                    sum+=a[k][j];
                    it=max(it,a[k][j]);
                } 
            }
            sum-=it;
            qi[i][j]=sum;
                    }
    }
    for(int i=0;i<=(1<<n)-1;i++) dp[i]=2e9;//初值赋太大 
    dp[0]=0;
    for(int i=0;i<=(1<<n)-1;i++)
    {
        int k;
        for(k=0;k<=n;k++)
        if(!((1<<k)&i))
        {
            break;
        }
        for(int j=1;j<=m;j++)
        {
            dp[i|(1<<k)]=min(dp[i|(1<<k)],dp[i]+a[k+1][j]);
            dp[i|st[k+1][j]]=min(dp[i]+qi[k+1][j],dp[i|st[k+1][j]]);
        }
    }
    cout<<dp[(1<<n)-1]<<endl;
}
别再手动更新Excel了!用Jira看板管理你的个人项目(附保姆级配置流程) 本文详细介绍了如何利用Jira看板替代Excel进行个人项目管理,提供从注册到配置的保姆级教程。通过极简看板模式、自动化规则和数据分析功能,帮助用户实现任务可视化、协作高效化和提醒自动化,大幅提升个人工作效率。特别适合需要管理复杂个人项目的用户。 阅读详情

相关推荐

通达信股本变迁文件(gbbq)解密方法

近年来A股市场跌宕起伏真特么精彩,本人愚钝,被整爆仓,损失惨重 痛定思痛,认为交易这种对纪律要求极高,且必须完全排除情绪影响的勾当,还是应该交给程序来干 数据哪里来呢?当然是拿来主义。。。问券商的交易软件要呗 到处查资料,得知通达信的权息文件数据齐全,不仅含有除权除息数据,还含有限售解禁、增发、可转债上市等股本变化数据 ——这对于某些对成交量变化敏感的交易模型是非常重要的

不甘碌碌老,结庐铸宝刀 2万+

Codeforces544E:Remembering Strings(状态压缩)

You have multiset of n strings of the same length, consisting of lowercase English letters. We will say that those strings are easy to remember if for each string there is some position i and some l

ACM!荣耀之路! 1792

H3C VRF实验

POP-vpn-instance-RT1]route-distinguisher 11:11 # VPN实例-RT1的路由区分器值11:11。配置路由泄露,其实就是在一个VPN示例中添加另一个VPN实例的下一跳,比如在VPN实例RT1中添加去往SRV的默认路由。但是也有了一个新的问题,那就是RT1、RT2和RT3也能互访了,这让VPN实例变得没有意义了。[POP]ip vpn-instance RT1 #配置vpn实例-RT1。绑定了VPN实例,所以要把路由添加到VPN实例POP中。

m0_68698993的博客 4024

[CF544E]Remembering Strings_状压dp

E. Remembering Strings 题目大意: You have multiset of n strings of the same length, consisting of lowercase English letters. We will say that those strings are easy to remember if for each string...

dianan0938的博客 235

11. TI MSPM0G3507 DMA传输实战:ADC数据自动搬运与电压采集

本文以TI MSPM0G3507为例,详细讲解了如何利用DMA(直接存储器访问)实现ADC数据的自动搬运与电压采集。通过实战演示,解放CPU资源,提升系统实时性与效率,适用于电赛备赛及嵌入式开发中的数据采集场景。

weixin_42465140的博客 131

终端效率神器:Tmux 安装与使用全指南

终端效率神器:Tmux 安装与使用全指南

身在被窝_心在编程 1358

Codeforces 544E Remembering Strings 状压dp

题目链接 题意: 给定n个长度均为m的字符串 下面n行给出字符串 下面n*m的矩阵表示把对应的字母修改成其他字母的花费。 问: 对于一个字符串,若它是easy to remembering 当 它存在一个字母,使得这个字母在这一列是独一无二的。 要使得n个字符串都是easy to remembering 的最小花费。 第一个样例是把第一列的4个a中3个a修改成别的字母,所以花费为3

九野的博客 1480

PX4|Gazebo模型加载失败排查指南:从环境变量到资源路径的全面解析

本文针对PX4与Gazebo联合仿真中常见的'Unable to get model name'错误,提供了从环境变量配置、资源路径排查到网络访问问题的全面解决方案。详细解析了GZ_SIM_RESOURCE_PATH等关键变量的作用与设置方法,并给出了离线模型库部署等一劳永逸的修复指南,帮助开发者彻底解决无人机模型加载失败问题。

weixin_29243063的博客 1228

CodeForces 544E - Remembering Strings(状压DP)

题目链接 https://cn.vjudge.net/problem/CodeForces-544E 【题意】 给定n个长度均为m的字符串,再给出一个n行m列的矩阵,矩阵和字符串对应的位置代表把该位置的字符改成其它字符所需要的代价,现在要求对于任意一个字符串,总存在某一列使得该字符串在该列的字符在整个列中是唯一的,求把所有字符串修改成满足上述要求的字符串的最小代价是多少?(n,m&lt;=20...

Change the world by program. 516

UE5 Niagara基础知识讲解

在UE5版本中,Niagara粒子系统引入了许多可添加的模块,分别用于控制发射器的生成和更新、粒子的生成和更新以及渲染效果。本文采用虚幻5.2.1版本,以图文方式对Niagara基础知识进行讲解。

一碗清深的博客 2468

WiFi偏门协议(四):增强的传输机制802.11aa

区分Unicast和Multicast的优先级,以及设定不同的重传次数,以细化EDCA机制。 SCS(StreamClassification Service) 如上图,在VI,VO内各自又增加了一个queue, 对应不同的MAC header。VI和VO内的两个queue可以分别对应UC和MC。这样就提供了同一个AC内的更细粒度的优先级区分。当然还可以使用Drop Eligibility Indication子域来区分不同的重传次数。 改善Multicast数据传...

reekyli的专栏 1790

CF 544E(状压

题目:若干长度相同的字符串,如果一个字符串至少有一个字符与其他字符串这一位的字符都不一样,那它就是好记的,现在问把整合集合都变成好记的最小花费。 思路:虽然一看就是状压,但是有些地方没理清楚导致一直过不了,首先因为最多有20个字符串而字符集有26,改一个字符肯定可以不与其他字符冲突。然后状态转移中分改变单个字符和该列同种字符两种情况。注意改整列的时候即使已经不冲突的串也要改,因为该列的...

aduqw1129的博客 198

RK3568平台(USB篇)USB HUB集线器

hub,集线器,连接在host与device之间的一种用于usb接口扩展的usb设备。可以将一个usb上行接口扩展为多个下行接口,使得一个host可以同时与多个device连接。一般来说,一块hub桥接芯片可扩展4个usb接口,而市面上的一拖七hub,其实使用了两块hub桥接芯片,其中一块hub桥接芯片的上行端口连接到另一块hub桥接芯片的下行端口。hub的上行端口面向host,下行端口面向device。在下行端口上,hub提供了设备接入检测和设备移除检测的能力,并给下行端口供电。

weixin_49303682的博客 964

Codeforces Round #544 (Div. 3):E. K Balanced Teams

题目链接:http://codeforces.com/contest/1133/problem/E 题意:现在有n个人,你需要组k个队伍出来,每个队伍里面两两之间人能力值的差值不能大于5,问你最多能够选多少个人出来组队。 解题心得: 很明显是一个dp题,先对所有人按照能力排序,便于在找能力值的时候二分查找。 dp[i][j]表示在前j个人,能够组i个队伍可以选择的最大的人数,转移方程也很简单 -...

二营长的意大利炮友 319

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

cf Codeforces Round #544 E. K Balanced Teams

原题: E. K Balanced Teams time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output You are a coach at your local university. There are n students und...

@fei 448

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Codeforces Round #544 (Div. 3)(A、B、C、D、E、F1、F2)

比赛名称 Codeforces Round #544 (Div. 3) 比赛链接 https://codeforces.com/contest/1133 比赛情况 解题数:4/74/74/7 补题数:7/77/77/7 排名:968968968 比赛总结 自从自己上了 176817681768 分以来,打了很多场,状态都非常差,都很自闭,真的不知道为什么。 也许是因为这种比赛有很多不确定性?? 但...

Nitrogens的博客 633

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Codeforces 544E K Balanced Teams (DP)

题目: You are a coach at your local university. There arennstudents under your supervision, the programming skill of theii-th student isaiai. You have to formkkteams for yet another new progra...

weixin_30892037的博客 173

【Codeforces Round #544 (Div. 3) E. K Balanced Teams】DP

E. K Balanced Teams 题意 给你n个数,分成k组,要求每组内最大值与最小值的差值不超过5。求k组最多可以放多少个数。 1≤n,k≤50001 \leq n,k \leq 50001≤n,k≤5000 做法 首先对数组排序,我们可以预处理每个数最多可以向左扩展的长度。 之后我们用dp[i][j]dp[i][j]dp[i][j]表示前i个数分为j组最多可以放多少个数。 对于每个i,...

lajiyuan的博客 551

Codeforces Round #544 (Div. 3) E. K Balanced Teams

题意: 有n个数字,要你分成k组,要求每组内最大值与最小值的差值不超过5。求k组最多可以放多少个数。 思路: 线性DP,预计算出这个数字作为右端点时取的数字的个数,然后考虑每个数字取或者不取。 Code: #include <bits/stdc++.h> using namespace std; int a[5005], b[5005], dp[5005][5005], n...

JZK-Keven 的博客 424

Codeforces Round #544 (Div. 3) E. K Balanced Teams // dp

https://codeforces.com/contest/1133/problem/E 求分成k组,使得每一组max-min小于5的最多的可选人数。 先排序(下面都是基于排好序的操作) 定义dp[i][j] (排好序第i个人前,已有j组的最大人数) dp[i][j]=max(dp[i-1][j],dp[p[i]-1][j-1]+i-p[i]+1); 其中 p[i] 表示第i...

Rshs 210

Codeforces Round #544 (Div. 3)E. K Balanced Teams

time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output You are a coach at your local university. There arennstudents under your supervi...

WhileTrue 259

【Codeforces Round #544 (Div. 3)】 A B C D E F1 F2

这场A是最失误的地方 能int读入 却用char数组读入 感觉失策了 A 题意 给你开始时间和结尾时间 问你这两个时间的中间时间是什么 做法 做法显然 骚操作在此 #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;iostream&gt; #include &lt;queue&gt; #include &lt;cm...

我是谁 --- 卡比兽 184

Codeforces Round #544 (Div. 3) 题解

Codeforces Round #544 (Div. 3) D. Zero Quantity Maximization 题目链接:https://codeforces.com/contest/1133/problem/D 题意: 给出ai,bi,然后让你确定一个数d,令ci=d*ai+bi,问怎么确定这个d,有最多的ci为0。 题解: 这个题其实不难,但是我没做起,哎...

dft539533的博客 189

【Codeforces Round #544 (Div. 3)】 A.B.C.D.E.F1.F2.

前言 这场由于大号都不算分,于是开新号打,开场还算顺利,但是由于D题的坑点较多,有点慌,导致E题也开始乱提交,最后没时间做F2。打div3打成这样是不应该的。 biu-biubiu rating+=168rating+=168rating+=168 1500-&gt;1668 A. Middle of the Contest 题意 输出两个时间的中间时间。 做法 由于两个时间在同一天,直接转换...

lajiyuan的博客 1071

Codeforces Round #544 (Div. 3) E. K Balanced Teams(DP)

time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard output You are a coach at your local university. There are n students under your supervision, the pro...

张洪基 256
上一篇: codefores544D
下一篇: HDU4750
Timsei
博客等级 码龄10年 344粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值