周六不烦 2023-01-27 00:27 采纳率: 66.7%
浏览 101
已结题

刷cf的时候碰到运行错误不知道怎么解决

cf的题目https://codeforces.com/contest/1777/problem/C

img

只有框框内代码不同,其他都一样,不知道为什么会有错误

img

img

img

下面是我的代码

#include<bits/stdc++.h>
using namespace std;
using i64=long long;
int t,vis[200005],temp;
const int N=1e5;
vector<int>divs[N];
void solve(){
    int n,m;cin>>n>>m;
    vector<int>c(n);
    for(int i=0 ;i<n;i++){
        cin>>c[i];
    }
    sort(c.begin(),c.end());
    int ans=1e9;
    int bad = m;
    vector<int>cnt(m+1);
    for(int i=0,j=0;i<n;i++){
        while(j<=n && bad>0){
            if(j<n){
                for(auto x:divs[c[j]]){
                    if(x<=m){bad -= !cnt[x]++;}
                }
            }
            j++;
        }
        if(j<=n)ans=min(ans,c[j-1]-c[i]);
        for(auto x:divs[c[i]]){
            if(x<=m)bad+=!--cnt[x];
        }
    }
    if(ans==1e9)ans=-1;
    cout<<ans<<endl;
}   
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    for(int i=1 ;i<=N;i++){
        for(int j=i ;j<=N;j+=i){
            divs[j].push_back(i);
        }
    }
    cin>>t;
    while (t--) {
      solve();
    } 
    return 0;
}

  • 写回答

1条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-01-27 08:01
    关注
    • j = N,divs[N] 这个数组越界了,divs 容器数组的索引最大为 N - 1。
    • 另外也要考虑 divs[j] 可能为NULL的情况
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月19日
  • 已采纳回答 4月11日
  • 创建了问题 1月27日

悬赏问题

  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 qgcomp混合物线性模型分析的代码出现错误:Model aliasing occurred
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'