2018-2019 ICPC, NEERC J. Streets and Avenues in Berhattan(DP)
2024-09-04 20:55:16
题目链接:https://codeforc.es/contest/1070/problem/J
题意:给出一个长度为 k 的字符串,选出 n 个和 m 个不同位置的字符构成两个字符串,使得两个字符串相同字母的对数最少。
题解:在最优解的情况下,两个字符串相同的字母只有一个(假设有两种相同的字母,调换他们的位置变得只有一种相同字母的时候更优,可以自行草稿纸上写下不等式证明),可以枚举相同的字母,剩下的字母做 01 背包判断可以构成的最大长度即可。
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define mst(a,b) memset((a),(b),sizeof(a))
#define mp(a,b) make_pair(a,b)
#define pi acos(-1)
#define pii pair<int,int>
#define pb push_back
const int INF = 0x3f3f3f3f;
const double eps = 1e-;
const int MAXN = 2e5 + ;
const int MAXM = 1e3 + ;
const ll mod = 1e9 + ; char s[MAXN];
int cnt[], dp[MAXN]; int main() {
#ifdef local
freopen("data.txt", "r", stdin);
#endif
int t;
scanf("%d",&t);
while(t--) {
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
scanf("%s",s + );
mst(cnt, );
for(int i = ; i <= k; i++) cnt[s[i] - 'A' + ]++;
ll ans = 1ll * n * m;
for(int i = ; i <= ; i++) {
for(int j = ; j <= k; j++) dp[j] = ;
dp[] = ;
for(int j = ; j <= ; j++) {
if(i == j) continue;
for(int h = k; h >= cnt[j]; h--) dp[h] |= dp[h - cnt[j]];
}
for(int j = ; j <= k; j++) {
if(!dp[j]) continue;
int x = max(, n - j), y = max(, m - (k - cnt[i] - j));
if(x + y <= cnt[i]) ans = min(ans, 1ll * x * y);
}
}
printf("%lld\n",ans);
}
return ;
}
最新文章
- UWP 应用获取 Localhosts 访问权限
- Android Studio的简单设置:
- zoj 3795 Grouping tarjan缩点 + DGA上的最长路
- 使用Python获取Linux系统的各种信息
- html标记列表应用
- React-非dom属性-dangerouslySetInnerHTML标签
- CSS 初体验之一
- DM8168 GPIO驱动与測试程序
- 面试时,问哪些问题能试出一个Android应用开发者真正的水平?
- CentOS 6.8yum源的配置
- java的几个版本以及jre,jdk等概念——【转载】JDK、Java SE、Java EE、Java ME我该选
- 运维面试题之k8s
- webpack学习笔记(四)
- 实现CNN卷积神经网络
- MySQL5.7 GTID学习笔记
- java并发编程艺术
- Python的虚拟环境virtualenv
- HDU 1425 sort C语言实现快速排序
- 【设计模式】—— 装饰模式Decorator
- LPC43xx SGPIO Configuration -- Why not use GPDMA ?
热门文章
- 并发一:Java内存模型和Volatile
- Simple Library Management System HDU - 1497(图书管理系统)
- 数据的特征预处理?(归一化)&;(标准化)&;(缺失值)
- re(模块正则表达式)
- linux学习笔记(1) -- 关于命令的一些操作
- Elastic Search快速上手(3):搜索
- java都13了, 8的新特性你还没不会用吗
- StoneTab标签页CAD插件 3.2.3
- uni-app使用Canvas绘图
- Pattern Recognition and Machine Learning-01-Preface