题目:http://uoj.ac/contest/23/problem/167

如果我们拿个map来存状态的话。设当前状态是v,下一个状态是s。有f[i+1][s]+=f[i][v]。 初始f[0][S]=1

答案就是∑f[i][T]

(说起来只要用了map这题也就不难啊TAT。。。

#include<string>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<map>
#include<vector>
#define rep(i,l,r) for (int i=l;i<=r;i++)
#define down(i,l,r) for (int i=l;i>=r;i--)
#define clr(x,y) memset(x,y,sizeof(x))
#define ll long long
#define maxn 109
#define mm 998244353
using namespace std;
vector<int> v;
int n,m,S[maxn],T[maxn],ans;
map<vector<int>,int> F[maxn];
int read(){
int x=,f=; char ch=getchar();
while (!isdigit(ch)){if (ch=='-') f=-; ch=getchar();}
while (isdigit(ch)){x=x*+ch-''; ch=getchar();}
return x*f;
}
void up(int &x){
if (x>mm) x-=mm;
}
int main(){
n=read(); m=read();
rep(i,,n) S[i]=read();
rep(i,,n) T[i]=read();
v.clear(); rep(i,,n) v.push_back(S[i]);
F[][v]=;
rep(i,,m-){
for (map<vector<int>,int>::iterator it=F[i].begin();it!=F[i].end();it++){
v=it->first;
int s[]={n+,n+,n+,n+};
down(k,n,) s[v[k-]]=k;
rep(A,,) if (s[A]!=n+){
rep(B,,) if (s[A]<s[B]){
v[s[A]-]=B; up(F[i+][v]+=it->second); v[s[A]-]=A;
}
}
}
}
v.clear(); rep(i,,n) v.push_back(T[i]);
ans=;
rep(i,,m) up(ans+=F[i][v]);
printf("%d\n",ans);
return ;
}

最新文章

  1. C#中通过反射方法获取控件类型和名称
  2. javaweb优化
  3. DOM的概念及子节点类型
  4. 创建文本,innerHTML与createTextNode的使用
  5. LightOj1285 - Drawing Simple Polygon(连接多边形各点)
  6. Winform 打印PDF顺序混乱,获取打印队列
  7. 高质量图形库:pixellib
  8. 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据
  9. wcf 远程终结点已终止该序列 可靠会话出错
  10. WinForm - 格式化DataGridView单元格数据
  11. Blend4开发:会飞的小鸟
  12. Dockerfile的书写规则及指令使用方法
  13. CentOS 安装 clamav
  14. Java对象的内存模型(一)
  15. 字符编码知识简介和iconv函数的简单使用
  16. pthread_cond_wait的spurious wakeup问题
  17. 消息中间件:rabbitmq安装
  18. Fiddler Web Debugger简单调试头部参数
  19. Tinkoff Challenge - Elimination Round B. Igor and his way to work(dfs+优化)
  20. 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式

热门文章

  1. iOS OC环信实时语音切换听筒免提听不到声音报错:AVAudioSessionErrorCodeBadParam
  2. iOS支付宝支付相关问题
  3. mouseout、mouseover和mouseleave、mouseenter区别
  4. css em单位
  5. Java 读者写者问题
  6. iOS学习——iOS常用的存储方式
  7. rtmp流媒体搭建的所需安装包
  8. 安装MySQL时提示3306端口已被占用的解决方案
  9. JDK动态代理[4]----ProxyGenerator生成代理类的字节码文件解析
  10. 阿里云的oss使用技巧