链接
题意:
题目:
给定n张卡片,每张卡片都写着一个数字,范围是从1到k。
给定k个限制,每个限制包含两个信息,第一个是字符c,
第二个是一个小于等于n的数字ti,表示含义为,c = L。
第ti个数字是位置ti上写着i,而这个i是第一个出现的i。
如果,c = R,第ti个数字是位置ti上泄着i,而这个i是最后一个写i的数字。
问,我们有多中书写方案。
分析:
数据范围为1000所以我们可以直接O(n^2)的枚举每个数有多少种选法。
ll n,m;
ll a[maxn];
ll b[maxn];
void solve()
{
cin>>n>>m;
for(int i=1;i<=m;i++){
char ch;
cin>>ch>>a[i];
b[a[i]]=-1e9+7;
if(ch=='L'){
for(int j=a[i]+1;j<=n;j++) b[j]++;
}else for(int j=1;j<a[i];j++) b[j]++;
}
ll ans=1;
for(int i=1;i<=n;i++){
if(b[i]>0) ans=ans*b[i]%MOD;
}
cout<<ans<<endl;
}
```