}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';/...
POJ3087 模拟 还能比这道题更水吗。只要看的懂题意直接模拟法写了就行。 没编译器的话甚至直接在记事本上写写交了也可以AC的。 #include<iostream> using namespace std; const int N=205; char s1[N],s2[N],s12[N],s01[N],s02[N]; int c; int ans; bool same(char a[],char b[],int c)...
return s; } void Break(string &s1, string &s2, string s, int n) { s1 = ""; s2 = ""; for(int i = 0; i < n; ++i) s1 += s[i]; for(int i = n; i < 2*n; ++i) s2 += s[i]; // cout << "---" <<endl; // cout << s1 << endl << s2 << endl; // ...
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,...
POJ 3087 模拟+hash 也可以用map来搞 样例推出来 就没啥问题了 (先读的是B 然后是A 被坑好久) //By SiriusRen#include <cstdio>#include <iostream>#include <algorithm>using namespace std;#define mod 10000007intn,T,cases,rec,vis[10000007];...