American Heritage usaco
2016-09-02 13:42
363 查看
基础题,主要思路是找到根,然后分别递归即可;
View Code
#include<iostream> #include<cstring> #include<string> #include<cstdio> #include<cstdlib> using namespace std; char s[30],t[30]; int n; void dfs(int x,int y,int a,int b){ int k; for(int i=a;i<=b;i++)if(s[i]==t[x]){k=i;break;} if(k!=a)dfs(x+1,x+k-a,a,k-1); if(k!=b)dfs(x+k-a+1,y,k+1,b); cout<<t[x]; } void work(){ scanf("%s%s",s,t); n=strlen(s); dfs(0,n-1,0,n-1); } int main(){ freopen("1.in","r",stdin); freopen("1.out","w",stdout); work(); }
View Code
相关文章推荐
- 【USACO题库】3.4.2 American Heritage美国血统
- JZOJ1294.【USACO题库】3.4.2 American Heritage美国血统
- USACO 3.4 American Heritage
- USACO3.4.2--American Heritage
- USACO 3.4.3 American Heritage
- USACO 3.4 American Heritage
- usaco3.4.1 American Heritage
- usaco American Heritage
- USACO-Section 3.4 American Heritage (分治)
- USACO Training 3.4.2 American Heritage 题解与分析
- USACO American Heritage
- usaco American Heritage
- usaco American Heritage
- 【USACO题库】3.4.2 American Heritage美国血统
- USACO / American Heritage (经典递归入门)
- USACO American Heritage 解题报告
- USACO 3.4 American Heritage美国血统 (树的遍历)
- American Heritage USACO 3.4 (二叉树前序中序求后序)
- USACO American Heritage
- usaco-3.4-heritage-passed