ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. Poor Ramzi -dp+记忆化搜索
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. Poor Ramzi -dp+记忆化搜索
【Problem Description】
给你一串\(01\)字符串,将其划分,使得划分后,分别求出每组\(01\)之和后是回文的,求划分的方案数,
【Solution】
定义\(dp[l][r]\)表示,区间\([l,r]\)中满足条件的方案数是多少。\(dfs(i+1,j-1)\)表示在\(i,i+1\)之间插入一个隔板,在\(j-1,j\)之间插入一个隔板。枚举所有可能隔板的插入位置来转移即可。注意自身整体也算是一种方案。
【Code】
/*
* @Author: _Simon_
* @Date: 2019-11-07 11:31:32
* @Last Modified by: _Simon_
* @Last Modified time: 2019-11-07 11:31:32
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define maxn 205
#define INF 0x3f3f3f3f
const int mod=1e9+7;
string s;
int dp[maxn][maxn]; //dp[l][r]表示区间[l,r]的划分方案数
int dfs(int l,int r){
if(l>=r) return 1;
if(dp[l][r]) return dp[l][r];
dp[l][r]=1; //自身也是一种方案
int left=0,right=0;
for(int i=l;i<r;i++){ //枚举隔板插入的位置
left+=s[i]-'0';right=0;
for(int j=r;j>i;j--){
right+=s[j]-'0'; //记录和
if(left==right) (dp[l][r]+=dfs(i+1,j-1))%=mod; 如果满足条件,统计方案数
}
}
return dp[l][r];
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
int T;cin>>T;
while(T--){
memset(dp,0,sizeof(dp));
cin>>s;int n=s.size();
cout<<dfs(0,n-1)<<endl;
}
return 0;
}
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. Poor Ramzi -dp+记忆化搜索的更多相关文章
- ACM学习历程—POJ1088 滑雪(dp && 记忆化搜索)
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syria, Lattakia, Tishreen University, April, 30, 2018
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syr ...
- 【记忆化搜索/数位DP】zznu2175(长度为n的含有ACM的字符串)
随机字符串 题目描述 起名字什么的最麻烦,我们来生成一些随机字符串吧 生成的字符串当然是有要求的: .长度不能超过n .字符串中仅包含大写字母 .生成的字符串必须包含字符串“ACM” ok,是不是很简 ...
- GYM 100608G 记忆化搜索+概率 2014-2015 Winter Petrozavodsk Camp, Andrew Stankevich Contest 47 (ASC 47)
https://codeforces.com/gym/100608 题意: 两个人玩游戏,每个人有一个长为d的b进制数字,两个人轮流摇一个$[0,b-1]$的骰子,并将选出的数字填入自己的d个空位之中 ...
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest C(记忆化搜索)
C题 Problem C Game Map 思路: 之前暴力搜索写了好几发,一直超时,后面看其他人的题解发现要用记忆化搜索..直接暴力搜的话有太多重 复的计算. dist u 表示以u 为起点所能走的 ...
- 玲珑杯 ACM热身赛 #2.5 A 记忆化搜索+瞎搞
#include <cstdio> #include <vector> #include <iostream> #include <algorithm> ...
- ACM学习历程—ZOJ3471 Most Powerful(dp && 状态压缩 && 记忆化搜索 && 位运算)
Description Recently, researchers on Mars have discovered N powerful atoms. All of them are differen ...
- AtCoder Grand Contest 012 B Splatter Painting(记忆化搜索)
题意: 给一个包含N个顶点,M条边,无自环和重边的简单无向图,初始每个点颜色都为0,每条边的长度为1,连接着ai,bi两个节点.经过若干个操作, 每次将与某个点vi距离不超过di的所有点染成某种颜色c ...
- Atcoder Grand Contest 020 E - Encoding Subsets(记忆化搜索+复杂度分析)
Atcoder 题面传送门 & 洛谷题面传送门 首先先考虑如果没有什么子集的限制怎样计算方案数.明显就是一个区间 \(dp\),这个恰好一年前就做过类似的题目了.我们设 \(f_{l,r}\) ...
随机推荐
- liunx 定时任务工具 cron crontab
Mac下使用crontab来实现定时任务https://www.cnblogs.com/EasonJim/p/7819635.html crontab 详细用法 定时任务http://blog.chi ...
- IIS部署FLASK网站
在 Windows 平台部署基于 Python 的网站是一件非常折腾的事情,Linux/Unix 平台下有很多选择,本文记录了 Flask 部署到 IIS 的主要步骤,希望对你有所帮助. 涉及工具和平 ...
- 【Docker学习之五】Docker自定义镜像示例
环境 docker-ce-19.03.1-3.el7.x86_64 centos 7 一.创建centos+jdk+tomcat镜像 对于公用的容器比如,tomcat.nginx.mysql等应用组件 ...
- 怎么去掉织梦(dedecms)网站首页默认携带的index.html尾巴
如果你的网站带小尾巴,比如这样的 那你就要注意了,因为这会导致搜索引擎会认为和不带尾巴的页面是两个页面,都会参与排名,会分散首页的权重. 那我们怎么去除呢? 方法1: 1)在空间面板里面找到默认首页设 ...
- POJ 3624 Charm Bracelet(01背包模板题)
题目链接 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 52318 Accepted: 21912 Descriptio ...
- [Linux] 在 Ubuntu 19.10 上开启 SSH 服务并允许远程登录
在 Ubuntu 19.10 上安装 SSH,并开启服务 0.检查并确认系统当前是否已安装SSH: sudo ps -e | grep ssh 如果只有 ssh-agent 说明 ssh-server ...
- Python代码约定
建议遵守以下约定: 使用 4 个空格来缩进 永远不要混用空格和制表符 在函数之间空一行 在类之间空两行 字典,列表,元组以及参数列表中,在 , 后添加一个空格.对于字典,: 后面也添加一个空格 在赋值 ...
- JAVA–利用Filter和session防止页面重复提交
JAVA–利用Filter和session防止页面重复提交解决思路:1 用户访问表单页面,先经过过滤器,过滤器设置一个随机id作为token令牌, 并将该token放入表单隐藏域中.2 表单响应到浏览 ...
- Delphi百度文字识别【支持通用文字识别、身份证识别、银行卡识别、驾驶证识别、行驶证识别、车牌识别等功能】
作者QQ:(648437169) 点击下载➨Delphi百度文字识别 百度api文档 [Delphi百度文字识别]支持 通用文字识别.通用文字识别(高精度版).通用文字识别(含位置信 ...
- Haystack搜索框架
1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh ...