FZU-2218 Simple String Problem(状态压缩DP)
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<map>
#include<vector>
#include<cstring>
#include<cmath>
#define eps 1e-12
using namespace std;
typedef long long ll;
const ll mo = 1000000007, N = 2*1e3+10;
char s[N];
int dp[(1<<16)+100];
int main()
{ int t; cin>>t; while(t--) { int n, m; scanf("%d%d", &n, &m); scanf("%s", s); memset(dp, 0, sizeof(dp)); for(int i = 0; i<n; i++) { int t = 0; for(int j = i; j<n; j++) { t |= 1<<(s[j] - 'a'); dp[t] = max(dp[t], j - i + 1); } } int s = 1<<m; for(int i = 0; i<s; i++) { for(int j = 0; j<m; j++) { if((1<<j) & i) dp[i] = max(dp[i], dp[i^(1<<j)]); } } int ans = 0; for(int i = 0; i<s; i++) { ans = max(ans, dp[i]*dp[(s-1)^i]); } cout<<ans<<endl; } return 0;
}
转载于:https://www.cnblogs.com/luowentao/p/8997048.html
FZU-2218 Simple String Problem(状态压缩DP)相关推荐
- FZU - 2218 Simple String Problem(状压dp)
题目链接:点击查看 题目大意:给出一个长度为n,含有k个不同字母的字符串,我们的任务是从中挑选出两段连续的子串,要求其长度的乘积最大,还有一个限制条件是,这两个子串不能互相包含相同的字母 题目分析:因 ...
- 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)
目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...
- hdu1074 状态压缩dp+记录方案
题意: 给你一些作业,每个作业有自己的结束时间和花费时间,如果超过结束时间完成,一天扣一分,问你把n个作业完成最少的扣分,要求输出方案. 思路: 状态压缩dp,记录方案数的地方 ...
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 91. 最短Hamilton路径:位运算、状态压缩dp、dp
文章目录 题目解答 题目链接 题目解答 分析: 状态压缩dp是用二进制数来表示状态. 数据范围n = 20, 那么状态总量就是2202^{20}220个状态. 可以按照以下思路去思考: 哪些点被用过 ...
- 状态压缩dp入门 第一题 POJ 3254 Corn Fields
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6460 Accepted: 3436 Descr ...
- jzoj1768,P2704,POJ1185-[NOI2001]炮兵阵地【状态压缩dp】
正题 POJ链接:http://poj.org/problem?id=1185 jzoj链接:https://jzoj.net/senior/#main/show/1768 洛谷评测记录:https: ...
- Victor and World(spfa+状态压缩dp)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5418 Victor and World Time Limit: 4000/2000 MS (Java/ ...
- HDU4628+状态压缩DP
1 /* 2 状态压缩DP 3 dp[ i ]:达到i状态的最小step. 4 题意:每次可以去掉一个回文串,求最少几步能取完. 5 */ 6 #include<stdio.h> 7 #i ...
- HDU4026 Unlock the Cell Phone [状态压缩DP]
一开始看范围特别小就写搜索了...结果自己随便出了个4*4就过不了了.. 其实就是状态压缩DP,求哈密顿回路要多少条,只是要注意判断两点是否可以划线就可以了. #include <stdio.h ...
最新文章
- SpringBoot 部署 Jar 文件,瘦身优化指南 !
- 清除messages
- 60 Celery队列
- CentOS 6.5 LVM磁盘管理学习笔记
- 【网易云信招聘啦】216位攻城狮,呼唤7个好基友
- android http通过post请求发送一个xml
- Spring Set注入简化写法1
- 新浪微博爬虫设计(Python版)
- css border渐变_css边框渐变
- list 转set_MapStruct高级用法:List和String互转
- 大数据之-Hadoop3.x_MapReduce_数据压缩---大数据之hadoop3.x工作笔记0138
- python安装email模块,python 3.4.0电子邮件包安装:ImportError:没有名为'cStringIO'的模块...
- jdk12连接mysql_使用基于JDK12版本的JDBC读取数据库中的数据在网页(jsp)表示出来...
- mysql数据库 安装后 闪_MYSQL数据库Mysql数据库安装完成后需要进行的6个后续操作...
- python采集人脸_python获取人脸的代码分享
- layer:子父之间的数据传递
- Python selenium 实现大麦网自动购票过程
- 3款常见的网站文章采集工具推荐(2019最新)
- 加入Web前端学习还有市场吗?自己是否适合学习前端
- 日出日落时间和年均光照时长计算 java
热门文章
- IAR J-Link下载程序出现错误提示:Failed to get CPU status after 4 retries Retry?
- CTFshow 命令执行 web121
- 关于浮点数的误差理解
- poj 3045 Cow Acrobats (贪心!!不是二分,)
- SSD算法 模板 匹配
- php与mysql同步_php实现mysql同步的实现方法
- KMeans++算法理论和实现
- OpenMP在Windows下用VS使用
- 快速乘法(防止数过大相乘超出long long)
- android如何使用xml资源文件,Android-使用xml文件资源定义菜单