1040(15)
Posted zhuzehua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1040(15)相关的知识,希望对你有一定的参考价值。
思路:对A进行遍历,然后遍历A前面有a个P,A后面有b个T,那么就有a*b个PAT,这样的A有c个的话,总数就是a*b*c,三个超时,看来需要优化
import java.util.Scanner; public class Main { public static void main(String[] args) { // write your code here Scanner sc=new Scanner(System.in); String str=sc.next(); char[] input=str.toCharArray(); int i,j,k,l,m1=0,m2=0,m3=0,n; int[] c1=new int[100000]; int[] c2=new int[100000]; int[] c3=new int[100000]; for (l=0;l<100000;l++){ c1[l]=0; c2[l]=0; c3[l]=0; } for (i=0;i<input.length;i++){ if (input[i]==‘A‘&&i!=0){ c1[i]++; for (j=0;j<i;j++){ if (input[j]==‘P‘){ c2[i]++; } } for (k=i+1;k<input.length;k++){ if (input[k]==‘T‘){ c3[i]++; } } } } long sum=0; for (n=0;n<=input.length;n++){ sum=sum+c1[n]*c2[n]*c3[n]; } System.out.println(sum%1000000007); } }
以上是关于1040(15)的主要内容,如果未能解决你的问题,请参考以下文章