记录编号 |
388355 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[HZOI 2015] 偏序++ |
最终得分 |
100 |
用户昵称 |
_Itachi |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
5.551 s |
提交时间 |
2017-03-28 20:50:41 |
内存使用 |
191.20 MiB |
显示代码纯文本
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <bitset>
using namespace std;
char cc;inline void R_int(int &x){
while(cc=getchar(),cc<'!');x=cc-48;
while(cc=getchar(),cc>'!')x=x*10+cc-48;
}
const int N=40000;
int n,K,sa[N];bitset<N>f[N];
int main(){
freopen("partial_order_plus.in","r",stdin);freopen("partial_order_plus.out","w",stdout);
R_int(n),R_int(K);int i,x,k;
for(i=1;i<n;i++)f[i]=f[i-1],f[i][i-1]=true;
for(k=0;k<K;k++){
for(i=0;i<n;i++)R_int(x),sa[x-1]=i;
bitset<N>now;for(i=0;i<n;i++)f[sa[i]]&=now,now[sa[i]]=true;
}
long long ans=0;for(i=1;i<n;i++)ans+=f[i].count();printf("%lld\n",ans);
}