第六届福建省大学生程序设计竞赛——G Simple String Problem(状态压缩dp)
来源:互联网 发布:淘宝买家留言怎么修改 编辑:程序博客网 时间:2024/04/30 13:26
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2218
题目大意:
解题思路:
PS: 因为这道题目自己当时没有做出来,是下来一位巨巨给的题解,其实我的代码也和他的也就差不多了,几乎是一样的了。他真的有一万种方法AC,真心膜拜。所以,我只是为了来贴代码,记录下这道状态压缩dp。
Show me the code!
#include <cstdio>using namespace std;const int maxn = 2000;int dp[1 << 16];char str[maxn];int max(int a, int b) { return a >= b ? a : b;}void fill(int *s, int *e, int val) {while (s != e) {*s = val; s++;}}int main() { int T; scanf("%d", &T); while (T--) { int N, M; scanf("%d%d%s", &N, &M, str); fill(dp, dp + (1 << M), 0); for (int a = 0; a < N; ++a) { for (int b = a, t = 0; b < N; ++b) { t |= 1 << (str[b] - 'a'); dp[t] = max(dp[t], b - a + 1); } } for (int a = 0; a < 1 << M; ++a) { for (int b = 0; b < M; ++b) { if (a >> b & 1) { dp[a] = max(dp[a], dp[a ^ (1 << b)]); } } } int res = 0; for (int a = 0; a < 1 << M; ++a) { res = max(res, dp[a] * dp[(1 << M) - 1 ^ a]); } printf("%d\n", res); } return 0;}
0 0
- 第六届福建省大学生程序设计竞赛——G Simple String Problem(状态压缩dp)
- FZU Problem 2221 RunningMan(思维考查)——第六届福建省大学生程序设计竞赛-重现赛
- 第六届福建省大学生程序设计竞赛(FZU2212—FZU2221)
- 第六届福建省大学生程序设计竞赛 Problem J RunningMan【数学】
- FOJ 2214 Knapsack problem 第六届福建省大学生程序设计竞赛 C 01背包DP变种
- FZU Problem 2214 Knapsack problem(01背包,超大背包)——第六届福建省大学生程序设计竞赛-重现赛
- 第六届福建省大学生程序设计竞赛
- FZU Problem 2213 Common Tangents(简单几何,分类讨论)——第六届福建省大学生程序设计竞赛-重现赛
- FZU Problem 2212 Super Mobile Charger(贪心,排序)——第六届福建省大学生程序设计竞赛-重现赛
- FZU Problem 2216 The Longest Straight(二分答案+树状数组)——第六届福建省大学生程序设计竞赛-重现赛
- 第六届福建省大学生程序设计竞赛 Problem C Knapsack problem【背包问题】
- 第六届福建省大学生程序设计竞赛-重现赛,Problem C Knapsack problem【大背包】
- 第六届福建省大学生程序设计竞赛——E The Longest Straight(尺取法)
- 第六届福建省大学生程序设计竞赛 Problem A Super Mobile Charger【模拟】
- 第六届福建省大学生程序设计竞赛 Problem B Common Tangents【几何】
- 第六届福建省大学生程序设计竞赛-重现赛,Problem B Common Tangents【数学几何】
- 第六届福建省大学生程序设计竞赛-重现赛,Problem J RunningMan
- 第六届福建省大学生程序设计竞赛 Problem E The Longest Straight
- 《Effective java》读书记录-第4条-通过私有构造器强化不可实例化的能力
- 项目在使用easyui时遇到的问题
- 使用schemaExport自动生成表结构
- Linux为什么最多能分4个四个主分区的解释(windows也一样吧)
- TabHost的两种用法-Android学习笔记
- 第六届福建省大学生程序设计竞赛——G Simple String Problem(状态压缩dp)
- WebView的使用
- Spring整合mybatis
- Elasticsearch学习笔记(一)简介
- Apache Thrift - 可伸缩的跨语言服务开发框架
- Unreal Engine 4 Console Variables and Commands
- (java)Count and Say
- android权限大全
- 手把手教你使用Git