一、蓝桥杯试题 历届真题 完全二叉树的权值【第十届】【省赛】【B组】
(1)问题描述
(2)代码实现
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
int sum=0;
int s[]=new int[100005];
int deep=0;
for(int i=0;i<n;i++)
{
s[i]=cin.nextInt();
}
int sum1=0;
for(int i=0,count=0,ii=2,k=1;i<n;i++,count++)
{
if(i==0)
{
sum=s[i];
deep=k;
}
else
{
sum1+=s[i];
if(count==1)
k++;
if(sum1>sum&&i==n-1)
{
sum=sum1;
deep=k;
}
}
if(count==ii)
{
if(sum1>sum)
{
sum=sum1;
deep=k;
}
count=0;
ii=ii*2;
sum1=0;
}
}
System.out.println(deep);
}
}
二、蓝桥杯试题 历届真题 子串分值和【第十一届】【省赛】【B组】
(1)问题描述
(2)代码实现
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
char c[]=sc.next().toCharArray();
int left[]=new int[c.length];
int right[]=new int[c.length];
int buf[]=new int[26];
for(int i=0;i<26;i++)buf[i]=-1;
for(int i=0;i<c.length;i++){
left[i]=i-buf[c[i]-'a'];
buf[c[i]-'a']=i;
}
for(int i=0;i<26;i++)buf[i]=c.length;
for(int i=c.length-1;i>=0;i--){
right[i]=buf[c[i]-'a']-i;
buf[c[i]-'a']=i;
}
long ans=0;
for(int i=0;i<c.length;i++){
ans+=left[i]*right[i];
}
System.out.println(ans);
}
}
三、蓝桥杯试题 历届真题 成绩分析【第十一届】【省赛】【B组】
(1)问题描述
(2)代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int max=0,min=Integer.MAX_VALUE;
double sum=0;
for(int i=0;i<n;i++){
int t=sc.nextInt();
max=Math.max(max, t);
min=Math.min(min, t);
sum+=t;
}
System.out.println(max);
System.out.println(min);
System.out.println(String.format("%.2f", sum/n));
}
}