当前位置: 代码迷 >> 综合 >> G - LR Constraints(AtCoder - arc124_a )
  详细解决方案

G - LR Constraints(AtCoder - arc124_a )

热度:67   发布时间:2023-11-29 20:39:04.0

题目链接
题意:

N个卡片,上面的数字为1~k,然后有k个限制条件,每个限制条件有1个字母(ci)和一个数字(ki),如果ci是‘L’ 表示i能够输入的最左边的位置是ki,如果ci是‘R’ 表示i能够输入的最右边的位置是ki。如果能理解题意,这个题就很简单了,因为ki位置上的数字都确定了,其他位置上的按照这个条件分别加上就可以了。

下面是AC代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
#define ll long long
const ll K=1010;
ll a[K],f[K];
bool st[K];
const ll N=998244353;
int main()
{
    ll n,k,x;char c;cin>>n>>k;memset(a,0,sizeof(a));memset(f,0,sizeof(f));memset(st,false,sizeof(st));for(ll i=1;i<=k;i++){
    cin>>c>>x;if(c=='L') {
    for(ll j=x;j<=n;j++) f[j]++;}else {
    for(ll j=1;j<=x;j++) f[j]++;}st[x]=true;}ll sum=1;for(ll i=1;i<=n;i++){
    if(!st[i]) sum=(sum*f[i])%N;}cout<<sum<<endl;
}

注:记得开long long

  相关解决方案