URAL 1501 Sense of Beauty
思路:
dp+记忆化搜索
状态:dp[i][j]表示选取第一堆前i个和第二堆前j的状态:0:0多1个 1:0和1相等 2:1多一个 -2:不能达到题目所描述的状态
初始状态:dp[0][0]=1
状态转移:见代码
代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_bck
#define mem(a,b) memset(a,b,sizeof(a)) const int N=1e3+;
int n1[N],n2[N];
int dp[N][N];//0:0more 1:equal 2:1more
int ans[N*];
int dfs(int x,int y){
if(~dp[x][y])return dp[x][y];
if(x==&&y==)return dp[x][y]=;
if(x!=){
int t=dfs(x-,y);
if(t==){
if(n1[x]==){
ans[x+y]=;
return dp[x][y]=;
}
}
else if(t==){
if(n1[x]==){
ans[x+y]=;
return dp[x][y]=;
}
else if(n1[x]==){
ans[x+y]=;
return dp[x][y]=;
}
}
else if(t==){
if(n1[x]==){
ans[x+y]=;
return dp[x][y]=;
}
}
}
if(y!=){
int t=dfs(x,y-);
if(t==){
if(n2[y]==){
ans[x+y]=;
return dp[x][y]=;
}
}
else if(t==){
if(n2[y]==){
ans[x+y]=;
return dp[x][y]=;
}
else if(n2[y]==){
ans[x+y]=;
return dp[x][y]=;
}
}
else if(t==){
if(n2[y]==){
ans[x+y]=;
return dp[x][y]=;
}
}
}
return dp[x][y]=-;
}
int main(){
ios::sync_with_stdio(false);
cin.tie();
int n;
string a[];
cin>>n;
cin>>a[]>>a[];
for(int i=;i<=n;i++)n1[i]=a[][i-]-'';
for(int i=;i<=n;i++)n2[i]=a[][i-]-'';
mem(dp,-);
if(dfs(n,n)!=-){
for(int i=;i<=*n;i++)cout<<ans[i];
cout<<endl;
}else cout<<"Impossible"<<endl;
return ;
}
URAL 1501 Sense of Beauty的更多相关文章
- 记忆化搜索(DFS+DP) URAL 1501 Sense of Beauty
题目传送门 /* 题意:给了两堆牌,每次从首部取出一张牌,按颜色分配到两个新堆,分配过程两新堆的总数差不大于1 记忆化搜索(DFS+DP):我们思考如果我们将连续的两个操作看成一个集体操作,那么这个操 ...
- URAL 1501. Sense of Beauty(记忆化搜索)
题目链接 本来暴力写个TLE了,加上记忆化就A了. #include <cstring> #include <cstdio> #include <string> # ...
- THE SENSE OF BEAUTY
#include<stdio.h> int main() { ][] = { " ,.:;j", " ,: i. .,:;ff", " : ...
- URAL1501. Sense of Beauty(记忆化)
链接 dfs+记忆化 对于当前状态虽然满足和差 但如果搜下去没有满足的情况也是不可以的 所以需要记忆化下 #include <iostream> #include<cstdio> ...
- URAL DP第一发
列表: URAL 1225 Flags URAL 1009 K-based Numbers URAL 1119 Metro URAL 1146 Maximum Sum URAL 1203 Scient ...
- 英语口语练习系列-C27-艺术品-辨别物体-黄昏的歌
艺术品 a work of art Theory talent art gallery draw the sketch motivate students' interest full of imag ...
- Mini Stirling engine
So I spent 5 or 6 hours last night trying to hook up a mini Stirling engine with the gearbox of a Ta ...
- ural 1221. Malevich Strikes Back!
1221. Malevich Strikes Back! Time limit: 1.0 secondMemory limit: 64 MB After the greatest success of ...
- ural 1217. Unlucky Tickets
1217. Unlucky Tickets Time limit: 1.0 secondMemory limit: 64 MB Strange people live in Moscow! Each ...
随机推荐
- shell篇(一)
login shell与non-login shell: login shell:取得shell时,需要完整的登入流程.如:tty1~tty6登入时,需要输入用户名和密码.此时取得的shell就称为l ...
- 日志处理(一) log4j 入门和详解(转)
log4j 入门. 详解 转自雪飘寒的文章 1. Log4j 简介 在应用程序中添加日志记录总的来说基于三 个目的: 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作 ...
- python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法
python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法 同一台机器同时安装 python2.7 和 python3.4不会冲突.安装在不同目录,然 ...
- php header utf8 插入header("Content-type: text/html; charset=utf-8");
PHP文件插入header("Content-type: text/html; charset=utf-8"); 相当于页面里面的<meta http-equiv=" ...
- Ubuntu去掉命令行前用户名和主机名方法
Ubuntu去掉命令行前用户名和主机名方法 $ vi ~/.bashrc 按a或i进入编辑模式 PS1='${debian_chroot:+(debian_chroot)}\w\$ ' 默认为 PS1 ...
- MySQL数据库----事务
事务 -- 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,-- 即可回滚到原来的状态,从而保证数据库数据完整性.-- 事务也就是要么都成功,要么都不成功-- 事务就是由一堆sql ...
- Windows下MongoDB安装
1.解压mongodb-win32-i386-1.8.1.zip ,创建路径d:\mongodb ,将解压后的Bin文件Copy to 此文件夹下 2.d:\mongodb 下建立Data文件夹 d: ...
- mysql多实例安装与ssl认证
mysql多实例安装有两种形式: 同一数据库版本的多实例安装. 不同数据库版本的多实例安装. 同一数据库的多实例安装: 在同一台机器上安装4台mysql数据库实例. 从官网下载MySQL5.6版本的二 ...
- Centos下yum安装Nginx报错 No package nginx available.
在Centos6下使用yum安装Nginx报错 解决方案: yum install epel-release
- troubleshooting-执行导数shell脚本抛异常error=2, No such file or directory
Cannot run program "order_log.sh" (in directory "/data/yarn/nm/usercache/chenweidong/ ...