zoukankan      html  css  js  c++  java
  • NYOJ 108(数组中存的是前n个数的和)

     

    士兵杀敌(一)

    时间限制: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
    

    //AC,a[n]=a[n]+a[n-1]+……+a[1]+a[0],但a[0]一般不用
    #include<stdio.h>
    int a[1000000];
    int main()
    {
    	int num,T,i,j,k,p;
    	scanf("%d%d",&num,&T);
    	a[0]=0;
    	for(i=1;i<=num;i++)
    		scanf("%d",a+i);
    	for(i=1;i<=num;i++)
    		a[i]+=a[i-1];
    	for(i=0;i<T;i++)
    	{
    		scanf("%d%d",&j,&k);
    		printf("%d\n",a[k]-a[j-1]);
    	}
    	return 0;
    }
    
    
    
    //TLE
    #include<stdio.h>
    int a[1000000];
    int main()
    {
    	int num,T,i,j,k,p;int sum;
    	scanf("%d%d",&num,&T);
    	for(i=0;i<num;i++)
    		scanf("%d",a+i);
    	for(i=0;i<T;i++)
    	{
    		sum=0;
    		scanf("%d%d",&j,&k);
    		for(p=j;p<=k;p++)
    			sum+=a[p-1];
    		printf("%d\n",sum);
    	}
    	return 0;
    }
    

      











  • 相关阅读:
    Mysql创建nextval函数
    宝塔配置tomcat的配置
    小程序获取授权信息
    pycharm 2017新建文件添加编码方式等
    Linux下利用expect,不用交互模式,直接登陆远程主机
    linux文件权限解析(摘)
    linux环境下根据文件的某一列进行去重
    oracle查询用户权限及角色(摘)
    插入排序-python实现
    css清除浮动方法
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2519396.html
Copyright © 2011-2022 走看看