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. 【调优】Nginx性能调优

    一.Nginx优化配置 1.主配置文件优化:# vi /usr/local/nginx/conf/nginx.conf----------------------------------------- ...

  2. yii2redis安装

    yii2 – redis 配置 转自:http://www.fancyecommerce.com/2016/05/03/yii2-redis-%E9%85%8D%E7%BD%AE/ 安装redis w ...

  3. AO中的空间关系

    名词解释: Boundary(边界): 只有线和面才有边界.面的边界是指组成面的框架线:线的边界是指线的二个端点(即起点和终点,不包括中间部分的节点):点没有边界. Interior(内部): 除去边 ...

  4. CSS3实现8种Loading效果【二】

    CSS3实现8种Loading效果[二]   今晚吃完饭回宿舍又捣鼓了另外几种Loading效果,老规矩,直接“上菜“…… 注:gif图片动画有些卡顿,非实际效果! 第一种效果: 代码如下: < ...

  5. web前端----jQuery扩展(很重要!!)

    1.jQuery扩展语法 把扩展的内容就可以写到xxxx.js文件了,在主文件中直接导入就行了. 用法1.$.xxx() $.extend({ "GDP": function () ...

  6. MySQL数据库----视图

    视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时 ...

  7. cocoapod 快速更新,加载

    pod install --verbose --no-repo-update pod update --verbose --no-repo-update

  8. UVA12558 Egyptian Fractions (HARD version) (埃及分数,迭代加深搜索)

    UVA12558 Egyptian Fractions (HARD version) 题解 迭代加深搜索,适用于无上界的搜索.每次在一个限定范围中搜索,如果无解再进一步扩大查找范围. 本题中没有分数个 ...

  9. 05: python中的函数

    1.1 python 函数   1.函数作用 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得 ...

  10. 逆向与BOF基础——注入shellcode并执行&Return-to-libc

    逆向与BOF基础--注入shellcode并执行 准备阶段 下载安装execstack. 本次实验实验的shellcode是心远的文章中生成的代码,即\x31\xc0\x50\x68\x2f\x2f\ ...