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. #C++初学记录(算法2)

    A - Game 23 Polycarp plays "Game 23". Initially he has a number n and his goal is to trans ...

  2. Django初级手册4-表单与通用视图

    表单的编写 1. detail.html模版的编写 <h1>{{ poll.question }}</h1> {% if error_message %}<p>&l ...

  3. font-awesome图标

  4. 谷歌浏览器使用IE内核

    经常使用谷歌浏览器去到处溜达,可是,居然还不知道谷歌浏览的还有很多新鲜的设置,昨天遇到了调试一个脚本没有出现效果,而在IE中就可以显示所谓的效果: 查询了下,看到谷歌浏览器确实对脚本的部分样式要求还是 ...

  5. JavaScript实现功能全集

    JavaScript就这么回事1:基础知识 1 创建脚本块 <script language="JavaScript">JavaScript code goes her ...

  6. ActiveMQ 安装以及集群搭建

    安装环境: jdk1.7 apache-activemq-5.11.1-bin.tar.gz VM虚拟机redhat6.5-x64:192.168.1.200 Xshell4 部署方案: 主机IP 集 ...

  7. Yahoo数据仓库架构简介

    1. Yahoo数据仓库的整体架构 Yahoo数据仓库在基础架构上由hadoop集群和Oracle集群组成,hadoop集群是一个计算平台,完成所有ETL数据处理过程:Oracle集群只是一个查询环境 ...

  8. Linux基础命令---dump

    dump 检查ext2/3/4文件系统,确定哪些文件需要备份,这些需要备份的文件将会被复制到指定的磁盘或者其他存储介质.dump检查Ext 2/3/4文件系统上的文件,并确定哪些文件需要备份.这些文件 ...

  9. selinux配置错误实例介绍

    错误原因 配置关闭SELinux,结果误操作 应修改配置文件/etc/selinux/config中的“SELINUX”参数的值, # SELINUX=enforcing  原始配置 SELINUX= ...

  10. 远程登录 dos命令

    1.桌面连接命令 mstsc /v: 192.168.1.250 /console 2.若需要远程启动所有Internet服务,可以使用iisreset命令来实现. 进入“命令提示符”窗口.在提示符后 ...