URAL 1501

思路:

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的更多相关文章

  1. 记忆化搜索(DFS+DP) URAL 1501 Sense of Beauty

    题目传送门 /* 题意:给了两堆牌,每次从首部取出一张牌,按颜色分配到两个新堆,分配过程两新堆的总数差不大于1 记忆化搜索(DFS+DP):我们思考如果我们将连续的两个操作看成一个集体操作,那么这个操 ...

  2. URAL 1501. Sense of Beauty(记忆化搜索)

    题目链接 本来暴力写个TLE了,加上记忆化就A了. #include <cstring> #include <cstdio> #include <string> # ...

  3. THE SENSE OF BEAUTY

    #include<stdio.h> int main() { ][] = { " ,.:;j", " ,: i. .,:;ff", " : ...

  4. URAL1501. Sense of Beauty(记忆化)

    链接 dfs+记忆化 对于当前状态虽然满足和差 但如果搜下去没有满足的情况也是不可以的 所以需要记忆化下 #include <iostream> #include<cstdio> ...

  5. URAL DP第一发

    列表: URAL 1225 Flags URAL 1009 K-based Numbers URAL 1119 Metro URAL 1146 Maximum Sum URAL 1203 Scient ...

  6. 英语口语练习系列-C27-艺术品-辨别物体-黄昏的歌

    艺术品 a work of art Theory talent art gallery draw the sketch motivate students' interest full of imag ...

  7. 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 ...

  8. ural 1221. Malevich Strikes Back!

    1221. Malevich Strikes Back! Time limit: 1.0 secondMemory limit: 64 MB After the greatest success of ...

  9. ural 1217. Unlucky Tickets

    1217. Unlucky Tickets Time limit: 1.0 secondMemory limit: 64 MB Strange people live in Moscow! Each ...

随机推荐

  1. redis的5种数据结构的使用场景介绍

    一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...

  2. CoreSight介绍篇

    ARM的嵌入式IDE发展: 1)SDT,英文全称ARM SoftWare Development Kit,是ARM为方便用户在ARM芯片进行应用软件开发而推出的一整套开发工具. 2)ADS,英文全称A ...

  3. SV中的随机化

    SV搭建testbench的关键概念:CRT(constraint random test),测试集的随机化. 由于对象class由数据和操作组成,所以对数据的随机化一般放在一个class内.(对环境 ...

  4. 了解SpringBoot

    一.SpringBoot是什么? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发 ...

  5. 生成带有表格的word附件和动态赋值

    生成带有表格的word附件和动态赋值, 表格前后需要添加一个特殊的开始和结束的域,表格第一列 TableStart:AuditJdcttbzInfo 和表格的最后一列 TableEnd:AuditJd ...

  6. RocketMQ事务消费和顺序消费详解

    一.RocketMq有3中消息类型 1.普通消费 2. 顺序消费 3.事务消费 顺序消费场景 在网购的时候,我们需要下单,那么下单需要假如有三个顺序,第一.创建订单 ,第二:订单付款,第三:订单完成. ...

  7. 如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放

    如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放 参考网站:nginx-lua-fas ...

  8. Chrome 性能监测

    前端性能优化一直是前端工作中必不可少的一部分,但是我们如何知道哪些部分的性能有优化的空间呢?此时,Chrome 性能监测就派上用场了. 正所谓:知己知彼,百战百胜,只有确定了性能瓶颈,才能有条不紊地进 ...

  9. python之路----常用模块一

    re模块 https://reg.jd.com/reg/person?ReturnUrl=https%3A//www.jd.com/ 这是京东的注册页面,打开页面我们就看到这些要求输入个人信息的提示. ...

  10. JDBC批量插入数据优化,使用addBatch和executeBatch

    JDBC批量插入数据优化,使用addBatch和executeBatch SQL的批量插入的问题,如果来个for循环,执行上万次,肯定会很慢,那么,如何去优化呢? 解决方案:用 preparedSta ...