Fuyou_198 2023-03-21 23:17 采纳率: 66.7%
浏览 133
已结题

这个程序哪里有问题呢,显示0分

CSP202203-2,,给的测试数据通过了,但是提交后显示0分,这是什么原因

#include<iostream>
using namespace std;
int main(void)
{
int n,m,k,i,j;  //n为数目,m为查询个数,k为等核算所需的时间
int t[100],c[100],ke[100],q[100],flag[100];
cin>>n>>m>>k;//出行时间为t,做核算的时间为q
for(i=0;i<n;i++)
cin>>t[i]>>c[i];
for(i=0;i<m;i++)
cin>>q[i];
for(i=0;i<m;i++)
flag[i]=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(t[j]>=q[i]+k&&t[j]<=q[i]+k+c[j]-1)
flag[i]++;
for(i=0;i<m;i++)
cout<<flag[i]<<endl;
system("pause");
return 0;
}

img

img

img

img

  • 写回答

5条回答 默认 最新

  • Jettblue_jr 2023-03-24 19:57
    关注

    1.数组范围要更大,开到1005。
    2.m=1的情况要考虑到。
    3.方法本身就不够简洁,复杂度为O(nm),大数据可能会有问题。
    建议写代码注意下缩进格式。
    AC代码:

    #include <iostream>
    using namespace std;
    const int N = 2e5 + 10;
    int n, m, k, d[N];
    int main(){
      cin >> n >> m >> k;
      for (int i = 1; i <= n; i++){
        int t, c;
        cin >> t >> c;
        d[max(1, t - k - c + 1)]++ ;
        d[max(1, t - k + 1)]-- ;
      }
      for (int i = 1; i <= N; i++) d[i] += d[i - 1];
      for (int i = 1; i <= m; i++){
        int q;
        cin >> q;
        cout << d[q] << endl;
      }
      return 0;
    }
    

    如有帮助,望采纳,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月21日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看