第十个点一直TLE...菜鸡求大神援助T T

P1554 梦中的统计

@[cbw19981218](/space/show?uid=79824) 您用Python不超时就怪了
by NaCly_Fish @ 2019-01-20 18:50:32


比我好多了,我是 RE。qwq
by ZY_2007 @ 2019-01-20 19:12:04


@[NaCly_Fish](/space/show?uid=115864) emmm那除了换语言之外无解了吗..有没有包能用在这里的呢
by cbw19981218 @ 2019-01-20 19:20:25


@[cbw19981218](/space/show?uid=79824) 有解的,您可以试一下用数位dp来做   不过换语言最方便
by NaCly_Fish @ 2019-01-20 19:23:26


@[NaCly_Fish](/space/show?uid=115864) 好的 谢谢!
by cbw19981218 @ 2019-01-21 14:47:26


玄学,我WA了2次才发现题读错了,我~~只是想刷AC率~~emmmm
by 俾斯麦 @ 2019-01-27 20:50:05


我也是用python困了一天,以下是我写的算法过了10,解题思路大致是不去循环,直接算出数字,如果输入数据是a,b,那么就算1-a出现的重复数据和1-b出现的重复数据再相减,代码如下: ```python l = [i for i in input().split()] data1 = [0 for i in range(10)]; data2 = [0 for i in range(10)];2 a = 0; def count_num(data, value, flag = True): valLen = len(value) tmp = int(value[0:1]) mi = valLen - 2 if flag and tmp != 0 and valLen > 1: data[0] = data[0] + step_sum_for_0(valLen) if mi > -1: sum_list(data, tmp * (valLen - 1) * (10 ** mi)) if tmp != 0: data[0] = data[0] + tmp * (valLen - 1) * (10 ** mi) - step_sum(mi) + 1 if valLen > 1: for j in range(1, tmp): data[j] = data[j] + 10 ** (valLen - 1) data[tmp] = data[tmp] + 1 + int(value[1:]) count_num(data, value[1:]) else: for i in range(1, tmp + 1): data[i] = data[i] + 1 return data def step_sum_for_0(length): total = 0 for i in range(1, length): total = total + 10 ** i return total def step_sum(mi): total = 0 for i in range(mi + 1): total = total + 10 ** i return total def sum_list(data, value): for i in range(1, len(data)): data[i] = data[i] + value def sub_list(data1, data2): l = [] for i in range(len(data2)): l.append(data2[i] - data1[i]) return l data1 = count_num(data1, str(int(l[0])-1), False) data2 = count_num(data2, l[1], False) tmplist = sub_list(data1, data2) s = ''; for i in range(10): s += str(tmplist[i]) + ' '; print(s); ```
by ex_panleiming @ 2019-03-13 09:16:50


|