Мне нужен алгоритм для следующего вопроса.я пытался, но это дает ошибку для некоторых входов
В вашей стране есть N городов и N-1 дорог, соединяющих пары городов таким образом, что существует путь между любой парой городов. Для каждой дороги вам дается ее плата, то есть сумма денег, которую вы должны заплатить, чтобы пересечь ее. Стоимость проезда из города в город-это сумма дорожных сборов на пути из пункта А в пункт Б.
Вам дается Q запросов для обработки. Существует два типа запросов:
1) 0 С :из-за инфляции плата за проезд по всем дорогам, прилегающим к городу " с " (все дороги, имеющие в качестве одной из своих конечных точек), умножается на 2.
2) 1 x y:вам необходимо найти стоимость путешествия от "x" до "y".
входной сигнал образца:
5 3
0 1 4
1 2 3
2 3 2
3 4 5
1 0 4
0 2
1 0 4
выход:
14
19
Объяснение:
В первом запросе расстояние равно 4+3+2+5=14
В первом запросе расстояние равно 4+6+4+5=19
Что я уже пробовал:
I=input() n,q=list(map(int,I.split())) city=list(range(n)) cost=[0]*(n-1) while n!=1: I=input() l,r,c=list(map(int,I.split())) cost[l]=c n=n-1 while q: I=input() total=0 q_list=list(map(int,I.split())) if(q_list[0]==0): i_1=city.index(q_list[1]) if(i_1!=0 and i_1!=n-1): cost[i_1]=cost[i_1]*2 cost[i_1-1]=cost[i_1-1]*2 elif(i_1==0): cost[0]=cost[0]*2 else: cost[n-2]=cost[n-2]*2 else: total=sum(cost[q_list[1]:q_list[2]:1]) print(total) q-=1
Patrice T
Показать пример ввода с фактическим и ожидаемым результатом.
Shivraja GV
пример ввода и вывода упоминается выше
Patrice T
а реальный результат ?