总结:这就是蓝桥吗hhh
(填空先略…待更hhh)
F
题目大意:给出n个数,求最大值,最小值,平均值。
没手就行。
import java.io.*;
import java.util.*;
public class zbr01
{
public static void main(String[] args)
{
Scanner S=new Scanner(System.in);
long mn=101,mx=0,tot=0;
long n=S.nextLong();
for(int i=1;i<=n;i++)
{
long x=S.nextLong();
tot+=x; mn=Math.min(mn,x); mx=Math.max(mx,x);
}
System.out.println(mx);
System.out.println(mn);
double tmp=(double)tot/(double)n;
System.out.println(String.format("%.2f",tmp));
}
}
G
题目大意:给出长度为n的字符串,求出现次数最多的字符,有多个输出字典序最小的那个。
没手仍然行。
import java.io.*;
import java.util.*;
public class zbr01
{
public static int cnt[]=new int [35];
public static void main(String[] args)
{
Scanner S=new Scanner(System.in);
String s=S.nextLine(); int n=s.length();
for(int i=0;i<n;i++)
{
char q=s.charAt(i);
cnt[q-'a']++;
}
int mx=0,f=0;
for(int i=0;i<=25;i++) if(mx<cnt[i]) {mx=cnt[i]; f=i;}
System.out.println((char)(f+'a'));
System.out.println(mx);
}
}
H
题目大意:给出n层的数字三角形,每次只能从上往下走,要求 a b s ( 往 左 走 − 往 右 走 ) < = 1 abs(往左走-往右走)<=1 abs(往左走−往右走)<=1的最大权值路径。
n < = 100 n<=100 n<=100
唯一的不同处就是abs的这个条件…观察下发现就是固定了终点而已…
然后经典胡乱dp如下即可:
dp[i][j]=dp[i-1][j-1]+a[i][j];
if(j!=i) dp[i][j]=Math.max(dp[i][j],dp[i-1][j]+a[i][j]);
Java代码:
import java.io.*;
import java.util.*;
public class zbr01
{
public static int dp[][]=new int [105][105];
public static int a[][]=new int [105][105];
public static void main(String[] args)
{
Scanner S=new Scanner(System.in);
int n=S.nextInt();
for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) a[i][j]=S.nextInt();
for(int i=1;i<=n;i++) for(int j=1;j<=i;j++)
{
dp[i][j]=dp[i-1][j-1]+a[i][j];
if(j!=i) dp[i][j]=Math.max(dp[i][j],dp[i-1][j]+a[i][j]);
}
int ans=0;
if(n%2==1) ans=dp[n][(n+1)/2];
else ans=Math.max(dp[n][n/2],dp[n][n/2+1]);
System.out.println(ans);
}
}
I
题目大意:给出长度为 n n n的字符串,问在其 n 2 n^2 n2个子串中,每个子串中出现的字符个数和。
n < = 1 e 5 n<=1e5 n<=1e5
考虑对每个字符计算贡献…那么就记录自己前面第一个相同字符的位置,以及现在自己位置就可…
答案统计如下 a n s + = ( n − i ) ∗ ( i − p r e [ p − ′ a ′ ] ) ; ans+=(n-i)*(i-pre[p-'a']); ans+=(n−i)∗(i−pre[p−′a′]);
Java代码:
import java.io.*;
import java.util.*;
public class zbr01
{
public static long pre[]=new long [100005];
public static long ans=0;
public static void main(String[] args)
{
Scanner S=new Scanner(System.in);
String s=S.nextLine(); int n=s.length();
for(int i=0;i<=25;i++) pre[i]=-1;
for(int i=0;i<n;i++)
{
char p=s.charAt(i);
ans+=(n-i)*(i-pre[p-'a']); pre[p-'a']=i;
}
System.out.println(ans);
}
}
J
语文题,看不懂,扔了扔了hhh(可能会填)



被折叠的 条评论
为什么被折叠?



