2015计算之道第三场第二题

本文探讨了一个算法问题,涉及计算一组对称数列的和。具体包括两个查询场景,通过代码实现了解决方案,展示了如何通过遍历和判断对称性来计算结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    参加了第二场和第三场,第二场做了第一题,却没通过,第二题没看懂。

    然后又参加了第三场,第一题是个算面积的,没啥思路,就去做第二题去了。

    第二题是算对称求和值的。可惜做完没提交,代码放在这,望大神指点。

      输入

         5 2

         1 1 0 1 0

         2 4

         1 2

      输出

          4

          4

  5意思是有五张图片,2意思是总共有几次查询。

   1 1 0 1 0是每张图片的值

  2 4是第一次查询,从第二张图片到第四张

  1 2是第二次查询,从第一张图片到第二张

   4 是第一次查询,图片依次为1 0 1.用户所能看到的可能有1、0、1、1 0、0 1、1 0 1。其中1、0、1、1 0 1是对称的,所以把他们的值加起来,就是1+0+1+(1+0+1)=4

   4是第二次查询,图片为1 1,所有可能是1、1、1 1。都是对称的,相加得1+1+(1+1)=4

代码如下

import java.text.DecimalFormat;
import java.util.Scanner;


public class Main
{

public static void main(String[] args)
{

Scanner sc=new Scanner(System.in);
int nums=sc.nextInt();//题目中的5

int times=sc.nextInt();//题目中的2
int values[]=new int[nums];//建立数组并赋值
for(int i=0;i<nums;i++){
values[i]=sc.nextInt();
}
int l,r,result;
for(int i=0;i<times;i++){
l=sc.nextInt();
r=sc.nextInt();
int[] newvalues=new int[r-l+1];//通过l、r选出范围,新建数组并赋值
for(int j=0;j<r-l+1;j++){
newvalues[j]=values[j+l-1];
}
result=calculate(newvalues,r-l+1);调用方法,计算结果
System.out.println(result);
}

}


private static int calculate(int[] newvalues, int nums) {
// TODO Auto-generated method stub
int result=0;
for(int i=0;i<nums;i++){
for(int k=i;k<nums;k++){
int[] newnewvalues=new int[k-i+1];
for(int j=0;j<k-i+1;j++){
newnewvalues[j]=newvalues[i+j];
}
result+=isbtf(newnewvalues,k-i+1);//调用是否对称方法
}
}
return result;
}


private static int isbtf(int[] newnewvalues, int length) {//是否对称的方法
// TODO Auto-generated method stub
boolean isbtf=true;
int result=0;
for(int i=0;i<length/2+1;i++){
if(newnewvalues[i]!=newnewvalues[length-i-1])
isbtf=false;
}
if(isbtf==true){
for(int j=0;j<length;j++){
result+=newnewvalues[j];
}
return result;
   }
else
   return 0;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值