bzoj1055玩具取名——区间DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1055
区间DP,注意初始化!!
因为没记忆化,TLE了一晚上,区间DP尤其要注意不重复递归!!!!!
代码如下:
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int const MAXN=80,LEN=205; int p[5][5][MAXN],a[LEN],top[5],ln,tp[5][5]; char dc[LEN]; bool can[LEN][LEN][5],flag,f[5],vis[LEN][LEN]; int in(char c) {if(c=='W')return 1;if(c=='I')return 2;if(c=='N')return 3;if(c=='G')return 4; } char out(int x) {flag=1;if(x==1)return 'W';if(x==2)return 'I';if(x==3)return 'N';if(x==4)return 'G'; } void cl(int i,char c[]) {int k1=in(c[0]),k2=in(c[1]);p[k1][k2][++tp[k1][k2]]=i; } //void find0(int x,int y) //{ // for(int i=1;i<=tp[x][y];i++) // f[p[x][y][i]]=1; //} //void find(int l,int r,int x,int y) //{ // for(int i=1;i<=tp[x][y];i++) // can[l][r][p[x][y][i]]=1; //} void dp(int l,int r) {if(vis[l][r])return;//大剪枝!!!!! vis[l][r]=1;if(r==l) // { // find(l,r,a[l],a[r]);return; // }for(int k=l;k<r;k++){dp(l,k);dp(k+1,r);for(int x=1;x<=4;x++)for(int y=1;y<=4;y++)if(can[l][k][x]&&can[k+1][r][y])for(int i=1;i<=tp[x][y];i++)can[l][r][p[x][y][i]]=1; // find(l,r,x,y); } } int main() {for(int i=1;i<=4;i++)scanf("%d",&top[i]);for(int i=1;i<=4;i++)for(int j=1;j<=top[i];j++){cin>>dc;cl(i,dc);}cin>>dc;ln=strlen(dc);for(int i=1;i<=ln;i++)//初始化 {can[i][i][in(dc[i-1])]=1; // p[dc[i-1]][dc[i-1]][++tp[dc[i-1]][dc[i-1]]]=in(dc[i-1]); }for(int k=1;k<ln;k++){dp(1,k);dp(k+1,ln);for(int x=1;x<=4;x++)for(int y=1;y<=4;y++)if(can[1][k][x]&&can[k+1][ln][y])for(int i=1;i<=tp[x][y];i++)f[p[x][y][i]]=1; // find0(x,y); }for(int i=1;i<=4;i++)if(f[i])printf("%c",out(i));if(!flag)printf("The name is wrong!");return 0; }
转载于:https://www.cnblogs.com/Zinn/p/8661317.html
bzoj1055玩具取名——区间DP相关推荐
- BZOJ1055: [HAOI2008]玩具取名[区间DP]
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1588 Solved: 925 [Submit][Sta ...
- bzoj1055 [HAOI2008]玩具取名 区间DP
问题描述 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后 他会根据自己的喜好,将名字中任意一个字母用"WING"中任意两个字母 ...
- 「BZOJ1055」[HAOI2008] 玩具取名 - 区间动规 - 记忆化搜索
->戳我进原题 [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2486 Solved: 1448 Descript ...
- bzoj 1055: [HAOI2008]玩具取名(区间DP)
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2010 Solved: 1177 [Submit][St ...
- BZOJ 1055 [HAOI2008]玩具取名
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1119 Solved: 653 [Submit][Sta ...
- [HAOI2008]玩具取名
[HAOI2008]玩具取名 文章目录 题目描述 输出描述: 题解 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO F ...
- [BZOJ]1055: [HAOI2008]玩具取名
Time Limit: 10 Sec Memory Limit: 162 MB Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字 ...
- POJ 2955 Brackets (区间DP)
题目链接:http://poj.org/problem?id=2955 Brackets Time Limit: 1000MS Memory Limit: 65536K Total Submiss ...
- 0x53. 动态规划 - 区间DP(习题详解 × 8)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 文章目录 0x53. 动态规划 - 区间DP Problem A. 最优矩阵链乘 Problem B. ...
最新文章
- SVG技术入门:线条动画实现原理
- 不需要训练数据的图像恢复
- poj2406Power string
- vue多语言插件vue-i18n
- 宅男福利:Python爬取某站所有漫画(赶紧收藏)
- 攻防世界logmein
- h5支付不能打开支付宝 ios_iOS 手机网站支付转Native支付(H5支付页面调起支付宝客户端(app))...
- C语言 7-3 统计大写字母个数
- 第二届长三角高校数学建模竞赛
- LCM5369 降压控制器 P2P替代TPS536C9
- 中图法分类号(计算机专业)
- Kotlin - DSL
- wordpress搭建
- 15-02 身份安全
- 基于MATLAB的可靠度指标与失效概率的计算
- tez引擎跑hive 语句报错问题解决
- 公司邮箱,那些隐藏的高效办公秘密武器
- 国科大学习资料–模式识别--第一次作业
- 流量矿石:经历九死一生,曾获王欣亲自嘉奖,被5亿快播用户追捧
- Hightchart 实现 polar 雷达图
热门文章
- SAP UI5对于颜色使用的最佳实践
- 最简单的dockerfile使用教程 - 创建一个支持SSL的Nginx镜像
- python不能安装pip_python – 无法安装pip:权限被拒绝错误
- 只出现一次的数字Python解法
- 数据集转换_“2000坐标”成了标配,你还不懂坐标系定义和转换吗?
- 幼儿园带括号算式口诀_这么全的小学数学速算技巧、口诀不多见,教给孩子挺不错!...
- python安装库失败cannot determine archive_pip 无法安装 pip
- spring java配置_Spring基于java的配置
- linux 22.3 终端,Linux系统服务Day.22
- mariadb中文手册_MariaDB性能调优工具mytop的使用详解