}intsolve(charS1[],charS2[]){intans =0;intlenc =0; map<string,int>M;while(1){ ans++;intcnt=0;memset(ss,'\0',sizeof(ss));for(inti=0;i<len;i++){ ss[cnt++] = S2[i]; ss[cnt++] = S1[i]; }//printf("CNT = %d,LEN = %d\n",cnt,strlen(ss));ss[cnt] ='\0';/...
poj 3087 直接模拟 题意:意思就是,s1,和s2两堆牌,然后先s2一张再s1,最后会出现一个s12序列,例如s1 AHAH S2 HAHA 然后s12为HAAHHAAH,然后前面一部分给s1,后面一部分给s2,然后再重复操作。最后看能否达到目标序列。 思路:大牛的做法是经过了一些操作后看s1是否等于刚开始输入的序列,若等于,则不能达到。 然后...
解析:直接模拟就好了,每次组合起来的东西,标记一下,如果组合出来的已经标记了,说明一定不能组成了 #include <iostream> #include <cstdio> #include <algorithm> #include <string> #include using namespace std; int main(void) { string s1,s2,s12; int t,case_t = 1; scanf("%d",&t); while(t-...
int n,T,cases,rec,vis[10000007]; char a[605],b[605],c[933],s[933]; int main() { scanf("%d",&T); for(cases=1;cases<=T;cases++){ int t=0;rec=0; scanf("%d",&n); for(int i=1;i<=n;i++)cin>>b[i]; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=...
POJ3087-Shuffle'm Up===POJ3087-Shuffle'm Up 题目大意: 已知两堆牌s1和s2的初始状态,其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块牌归为s1,最顶的c块牌归为s2,依此循环下去。 现在输入s1和s2的初始状态以及预想的最终状态s12 问s1 s2经过多少次洗牌之后,最终能达到...
(2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 五.动态规划 (1)背包问题. (poj1837,poj1276) (2)型如下表的简单DP(可参考lrj的书 page149): 1.E[j]=opt{D[i]+w(i,j)} (poj3267,poj1836,poj1260,poj2533) ...
(2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 五.动态规划 (1)背包问题. (poj1837,poj1276) (2)型如下表的简单DP(可参考lrj的书page149): 1.E[j]=opt{D[i]+w(i,j)} (poj3267,poj1836,poj1260,poj2533) 2.E[i,j]=opt...
(2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)(3)简单搜索技巧和剪枝(poj2531,poj1416,...
POJ3087 模拟 还能比这道题更水吗。只要看的懂题意直接模拟法写了就行。 没编译器的话甚至直接在记事本上写写交了也可以AC的。 #include<iostream> using namespace std; const int N=205; char s1[N],s2[N],s12[N],s01[N],s02[N]; int c;...