首页 > 代码库 > UPCOJ 2679
UPCOJ 2679
第一个串是位置,然后第二个串可以随便跳着走,完事问可以到达的最多点数。
l是左儿子能到的点数,r是右儿子能到的点数。
不被提示一下真不好写。
#include <cstdio>#include <cstring>#include <vector>#include <cmath>#include <stack>#include <cstdlib>#include <queue>#include <map>#include <iostream>#include <algorithm>#include <bits/stdc++.h>#include <queue>using namespace std;const int N = 1e5+5;const int MOD = 21092013;char a[N],b[N],d[N];int main(){ int T,cas=0; scanf("%d",&T); while(T--) { scanf("%s%s",a,b); int la=strlen(a),lb=strlen(b),ddd=0; for(int i=0; i<la; ++i) { if(a[i]==‘U‘)ddd = max(ddd-1,0); else d[ddd]=a[i],ddd++; } int ans=0,l=1,r=1; for(int i=0; i<lb; ++i) { if(b[i]==‘U‘) { ddd--; if(ddd<0) { ddd=0; continue; } ans++; ans%=MOD; if(d[ddd]==‘L‘) r++,r%=MOD; else l++,l%=MOD; } else if(b[i]==‘L‘) { ans=(ans+l)%MOD; r=(r+l)%MOD; } else { ans=(ans+r)%MOD; l=(l+r)%MOD; } } printf("Case %d: %d\n",++cas,ans+1); } return 0;}
UPCOJ 2679
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。