acm 士兵杀敌(一)
士兵杀敌(一)
- 描述
-
南将军手下有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 士兵杀敌(一)的更多相关文章
- ACM题目————士兵杀敌(三)
[RMQ算法]:用于当数组过于庞大的时候,查询区间的最大(最小)值. 时间复杂度:O(nlogn),主要时间发费在预处理上,查询只要O(1). 描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军 ...
- NYOJ 116士兵杀敌(二) 树状数组
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=116 士兵杀敌(一) 数组是固定的,所以可以用一个sum数组来保存每个元素的和就行,但是不 ...
- NYOJ 119 士兵杀敌(三) RMQ ST
NYOJ 119 士兵杀敌(三) RMQ ST 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=119 思路: ST在线 预处理O(nlog ...
- NYOJ 士兵杀敌(1~5)
士兵杀敌(1): http://acm.nyist.net/JudgeOnline/problem.php?pid=108 分析:前缀和 #include <bits/stdc++.h> ...
- nyoj123_士兵杀敌(四)_树状数组_插线求点
士兵杀敌(四) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战 ...
- 士兵杀敌(三)_RMQ(区间最值查询)
士兵杀敌(三) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进 ...
- nyoj116_士兵杀敌(二)_树状数组
士兵杀敌(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军经常 ...
- NYOJ 士兵杀敌(三)
描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌 ...
- nyoj 108 士兵杀敌(一)
点击打开链接 士兵杀敌(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师, ...
随机推荐
- 20145240《Java程序设计》课程总结
20145240<Java程序设计>课程总结 每周读书笔记链接汇总 20145240 <Java程序设计>第一周学习总结:http://www.cnblogs.com/2014 ...
- iOS_数据存取(二)
本节内容目录: 一.SQLite3 二.Core Data 一.SQlite3 SQLite3是⼀款开源的嵌入式关系型数据库,可移植性好.易使用.内存开销小SQLite3是⽆类型的,意味着你可以保存任 ...
- Go tail库
HP团队出的tail库,常用于日志收集 示例代码: package main import ( "github.com/hpcloud/tail" "fmt" ...
- Kubernetes 命令补全
yum install -y bash-completionsource /usr/share/bash-completion/bash_completionsource <(kubectl c ...
- 第一章 安装MongoDB
需要下载 高效开源数据库(mongodb) V3.0.6 官方正式版 安装配置: MongoDB默认的数据目录为:C:\data\db.如果不用默认目录,则需要在在mongod.exe命令后加--db ...
- windows环境下安装部署并启用zkui的web图形界面
在此之前的工作:不是本机部署的三个服务器最为伪集群的zookeeper环境,并将三个为服务启动起来. 然后才有了下面的工作. 1. 首先,zkui项目地址:https://github.com/Dee ...
- 安装MySQL5.7.18遇到的坑
最近才注意到MySQL的各个版本之间差别还挺大的,比如5.5.x版本的timestamp类型列只能有一个设置为default CURRENT_TIMESTAMP的,于是尝试了换成一个新版本是mysql ...
- php+JS进度条
<?phpini_set('max_execution_time','0');//设置本页面加载时间无限制 echo "<div style='border: 1px solid ...
- UVA 11029 || Lightoj 1282 Leading and Trailing 数学
Leading and Trailing You are given two integers: n and k, your task is to find the most significant ...
- IDEA运行debug为灰色无法运行
这种情况一般在使用他人项目的时候产生. 检查几个问题,本地环境是否配置好 然后进入项目的入口右键运行是否可以正常运行 如果不可以,就在 修改一下src文件 一般就可以正常使用了