士兵杀敌(一)

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
 
描述

南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。

小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。

注意,南将军可能会问很多次问题。

 
输入
只有一组测试数据
第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示南将军询问的次数(1<M<100000)
随后的一行是N个整数,ai表示第i号士兵杀敌数目。(0<=ai<=100)
随后的M行每行有两个整数m,n,表示南将军想知道第m号到第n号士兵的总杀敌数(1<=m,n<=N)。
输出
对于每一个询问,输出总杀敌数
每个输出占一行
样例输入
5 2
1 2 3 4 5
1 3
2 4
样例输出
6
9
#include<stdio.h>
#include<malloc.h>
int main(){
int P,N,M,m,n,i,j,s=,*p=(int *)malloc(*sizeof(int)), *q=(int *)malloc(*sizeof(int));
scanf("%d%d",&N,&M);
for(i=;i<=N;i++)
{
scanf("%d",&p[i]); }
for(i=;i<=N;i++){ if(p[i]>&&p[i]<=){ for(P=;P<M;P++){
scanf("%d%d",&m,&n);
if(m>=&&n<=N){
for(j=m;j<=n;j++)
{
q[P]+=p[j];
}}
}}
for(P=;P<M;P++)
printf("%d\n",q[P]);}
free(p);
free(q);
return ;
}

错误信息

运行时间:2016-12-11 21:49:20  | 用户:张子木
 
程序运行超时:
你的程序太慢了,想想办法改进一下速度吧。。
在测试数据很多(几百万个数),而你又用的cin,cout进行输入输出时,也可能会出现超时,改成scanf,printf即可
也有可能是你的程序陷入了死循环不能退出了
 
 
 
 
我想哭。。。。。。
 
怎么了是。。。。
于是我百度了一下,得到一个代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h> int a[];
int sum[];
int main()
{
int n, m;
scanf("%d %d", &n, &m);
int i;
for(i = ;i <= n;i++){
scanf("%d", &a[i]);
sum[i] = sum[i-]+a[i];
}
int a, b;
for(i = ;i < m;i++){
scanf("%d %d", &a, &b);
printf("%d\n", sum[b]-sum[a-]);
} return ;
}

然后我就醉了。。。

我之前也是这样写的,但是一运行就停止运行的,然后想到可能是数组的长度太大了,然后把数组大小变成了10,确实运行正常。。

可是上面这个好像比我的还要大啊。。。。。

下面是我之前的

#include<stdio.h>
#include<Windows.h>
int main(){
  int p,N,M,m,n,i,j,s=,a[]={},b[]={};
  scanf("%d%d",&N,&M);
  for(i=;i<=N;i++)
  {
    scanf("%d",&a[i]);
    if(a[i]<||a[i]>) exit();
}
for(p=;p<M;p++){
  scanf("%d%d",&m,&n);
    if(m<||n>N) exit();
      for(j=m;j<=n;j++)
        {
          b[p]+=a[j];
}
} for(p=;p<M;p++)
printf("%d\n",b[p]);
return ; }

acm 士兵杀敌(一)的更多相关文章

  1. ACM题目————士兵杀敌(三)

    [RMQ算法]:用于当数组过于庞大的时候,查询区间的最大(最小)值. 时间复杂度:O(nlogn),主要时间发费在预处理上,查询只要O(1). 描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军 ...

  2. NYOJ 116士兵杀敌(二) 树状数组

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=116 士兵杀敌(一) 数组是固定的,所以可以用一个sum数组来保存每个元素的和就行,但是不 ...

  3. NYOJ 119 士兵杀敌(三) RMQ ST

    NYOJ 119 士兵杀敌(三) RMQ ST 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=119 思路: ST在线 预处理O(nlog ...

  4. NYOJ 士兵杀敌(1~5)

    士兵杀敌(1): http://acm.nyist.net/JudgeOnline/problem.php?pid=108 分析:前缀和 #include <bits/stdc++.h> ...

  5. nyoj123_士兵杀敌(四)_树状数组_插线求点

    士兵杀敌(四) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战 ...

  6. 士兵杀敌(三)_RMQ(区间最值查询)

    士兵杀敌(三) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进 ...

  7. nyoj116_士兵杀敌(二)_树状数组

    士兵杀敌(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5   描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军经常 ...

  8. NYOJ 士兵杀敌(三)

    描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌 ...

  9. nyoj 108 士兵杀敌(一)

    点击打开链接 士兵杀敌(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师, ...

随机推荐

  1. jar 冲突解决方案

    val urlOfClass = classOf[Nothing].getClassLoader.getResource("org/slf4j/spi/LocationAwareLogger ...

  2. 简介web服务器的工作原理

    一 什么是web服务器,应用服务器和web容器? 对于web服务器与应用服务器:“在过去它们是有区别的,但是这两个不同的分类慢慢地合并了,而如今在大多在情况下和使用中可以把它们看成一个整体.” 但是当 ...

  3. review02

    位运算符 按为与运算符和按位或运算符都是二目运算符 按位非运算符是单目运算符 按位异或运算符的法则有: a^a=0; a^0=a; a^b^b=a; instanceof是二目运算符,左边的操作是一个 ...

  4. setintervalue传参数的三种方法

    http://www.cnblogs.com/wkylin/archive/2012/09/07/2674911.html http://www.bhcode.net/article/20110822 ...

  5. js执行环境、作用域

    js执行环境.作用域 执行环境:是javascript中的一个重要的概念,<javascript高级程序设计第三版>的定义是:执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行 ...

  6. poj 1185 状压dp+优化

    http://poj.org/problem?id=1185 炮兵阵地 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 291 ...

  7. 【Oracle】容易犯的错误和技巧集合

    引言      此文记录日常开发中容易遇到的oracle编程误区和一些使用技巧,不定期更新. 1.sum(),max(),min(),avg()等函数会得到null值 declare n_num ): ...

  8. C# GDI+编程

    窗口刷新的时候,会产生Paint事件,那么我们给这个事件添加一个处理函数.然后在这个函数里画图.就能保证所画的图不被刷新掉, 它可以总是显示.Paint事件对应的委托是:public delegate ...

  9. hdu-2544-最短路(dijkstra算法模板)

    题目链接 题意很清晰,入门级题目,适合各种模板,可用dijkstra, floyd, Bellman-ford, spfa Dijkstra链接 Floyd链接 Bellman-Ford链接 SPFA ...

  10. 20165210 预习作业3 Linux安装及学习

    Linux安装及学习 一.Linux安装 通过参考教程:基于VirtualBox虚拟机安装Ubuntu图文教程成功的安装上了Linux但在过程中还是有一些小问题的. 首先按着步骤走,一开始没什么毛病, ...