Problem 1001 java用线段树,如何才能不超时

liangjidong1 | 2016-05-15 12:06:04Author
如题
csjqing | 2016-05-15 12:19:14# 1
我这样写不超时但是会出Runting Error
import java.util.*; import java.math.*; public class Main { public static void main(String args[]){ Scanner in = new Scanner(System.in); Scanner sc = new Scanner(System.in); int n = in.nextInt(); String str = sc.nextLine(); for(int i = 0; i < n; i++){ int a = in.nextInt(); int b = in.nextInt(); String s = str.substring(a-1, b); char c[] = s.toCharArray(); long sum = 1; for(int j = 0; j < c.length; j++){ sum = sum * (((int)c[j])-28) % 9973; } System.out.print(sum); } } }
liangjidong1 | 2016-05-15 12:53:56# 2
你这样应该会超时的吧
我看评论里都说用线段树或者乘法逆元
nyz123 | 2016-05-15 13:22:35# 3
runtime
执行时间比别人的短 为什么 我的runtimeerror
liangjidong1 | 2016-05-15 13:27:28# 4
java的runtimeerror真让人无语
出异常总该报一下吧
suxi1314 | 2016-05-15 14:21:03# 5
@nyz123可能提交的格式有问题
doveccl | 2016-05-15 15:08:48# 6
用zkw线段树吧。。。 (超市的原因大概是a,b会大于字符串长度吧