c题0分

#include<bits/stdc++.h>
using namespace std;
int n,wq[100001],m;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>wq[i];
    }
    cin>>m;
    while(m--){
        int l,r,k,wqk=0,ans=1,ma[10001],vis[10001];
        memset(ma,0,sizeof(ma));
        memset(vis,0,sizeof(vis));
        cin>>l>>r>>k;
        for(int i=l;i<=r;i++){
            ma[wq[i]]++;
        }
        for(int i=l;i<=r;i++){
            if(ma[wq[i]]>0&&ma[wq[i]]==wq[i]&&vis[wq[i]]==0){
                vis[wq[i]]=1;
                wqk++;
            }
        }
        if(wqk==k)ans=1;
        else for(int i=0;i<k;i++){
            ans*=wqk-i;
        }
        cout<<ans<<endl;
    }
    return 0;
}

请问c题哪错了

全部评论
c题暴力50
点赞 回复 分享
发布于 2023-10-03 22:59 重庆
这复杂度也不对,是O(M^2)的
点赞 回复 分享
发布于 2023-10-03 22:48 黑龙江
wq[i]也会超出10000导致RE
点赞 回复 分享
发布于 2023-10-03 22:46 黑龙江
排列组合错了,k==2时/2,k==3时/6,k==4时/24
点赞 回复 分享
发布于 2023-10-03 22:44 黑龙江

相关推荐

酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 12:20
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务