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. SP Flash Tool New Version v5.1352.01

    Friends, Sp Tool updated to new version with whole new revamped interface New SP Flash Tool 3.1352.0 ...

  2. Visual Studio 2013旗舰版KEY

    Visual Studio 2013旗舰版KEY:BWG7X-J98B3-W34RT-33B3R-JVYW9

  3. python json-json.loads()函数中的字符串需要是严格的json串格式,不能包含单引号

    先看下json的dumps()和loads()函数的定义 json.dumps():将一个Python对象编码成JSON字符串.把字典对象转换成json串 json.loads():将JSON格式字符 ...

  4. ajax请求为异步操作时,返回的数据不会被并列函数执行

    ajax请求为异步操作时,返回的数据不会被并列函数执行

  5. Linux基础命令---ckconfig

    chkconfig 启动或者关闭系统服务,设置服务的运行级别,该指令并不会立刻启动或者停止服务,而是在开机的时候发生效果. chkconfig提供了一个简单的命令行工具,用于维护/etc/rc[0-6 ...

  6. JS方法的使用

    $("#yingxiang_id li").each(function () { if ($(this).find(".div-relative").attr( ...

  7. DNS视图及压力测试(四)

    Bind安全控制选项 Allow-transfer {}; #用于控制区域传送文件 Allow-query {}; #通常用于服务器是缓存名称服务器时,控制查询客户端 Allow-recursion ...

  8. gcc与glibc关系

    glibc是什么,以及与gcc的关系? glibc是gnu发布的libc库,也即c运行库.glibc是linux 系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc.g ...

  9. 如何在 Linux 中将文件编码转换为 UTF-8

    一个文件:vim 文件名.txt输入 :e ++enc=gbk 强制用gbk打开输入 :w ++enc=utf8 转换到utf8保存. 多个文件:for i in *.txt; do iconv -f ...

  10. 07: jquery.cookie操作cookie

    1.1 jquery.cookie常用方法 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术 1. 添加一个"会话cookie" $.cook ...