Перейти к содержанию

Ulanovka Code Challenge


Рекомендуемые сообщения

напишите кто-нибудь каким алгоритмом решали задачу про праздник серебряной луны © и магическую бухгалтерию (F)?

У меня они по времени не прошли :(

Ссылка на комментарий

У меня С тоже по времени не прошло.

Код на FPC

type dig=set of 0..9;

var a,b:array[1..10000,1..2] of byte;

n,m,k,i,j:integer;

bool:boolean;

c:dig;

begin

read(n,m,k);

bool:=false;

for i:=1 to m do

read(a[i,1],a[i,2]);

for i:=1 to k do

read(b[i,1],b[i,2]);

for i:=1 to k do begin

c:=[b[i,1]];

bool:=false;

while not bool do begin

bool:=true;

for j:=1 to m do begin

if ((a[j,1] in c) or (a[j,2] in c))

and not((a[j,1] in c) and (a[j,2] in c)) then begin

c:=c+[a[j,1]]+[a[j,2]];

bool:=false;

end;

if

end;

end;

if (b[i,1] in c) and (b[i,2] in c) then writeln('YES')

else writeln('NO');

end;

end.

Кстати кто Е решил, там факториал через массив надо было?

Ссылка на комментарий

Задача C зашла поиском в глубину с использованием связных списков, что значительно уменьшило перебор.

E - это та, где надо посчитать сочетания? Если да, то легко делается в больших числах. BigInteger в java.

Ссылка на комментарий

эх, а мне в Е не хватало extended'a, для 25 и 75 не хватало еще двух значащих цифр. пытался обойти хитрыми путями, не получилось чет, длинные числа использовать не хотелось =)

в последней по ошибки сначала принял, что если разбить число на блоки по 3 числа, суммировать эти числа. если сумма делится на 15 без остатка, то и число делится без остатка =) но потом вышел на "истинный" путь и решил через: (последнее число 0 или последнее число 5) и сумма всех чисел числа кратна 3 =)

Ссылка на комментарий

почти тоже самое что и на школьной тока тут вместо lan, internet

:)

Уф ну и задачки там я тогда из 8 решил 1 а всё по тому что из-за моей неграмотности в плане русского литературы математики непонял условия задач уж сильно там всё напутанно))) имхо

TolkienDRR

Задачка Е как понял была типа такой разделить многозначное число(может содержать до 1000< знаков непомню сколько точно) на 15 что то типа этого?

PS тоже самое было после, на завтро подумал и понял что сумма кратна 3 а последнее 0 или 5)) эээх как сильно сожалел)

PPS также пытался обойти всякими хитрыми путями неполучилось)

Ссылка на комментарий

У меня неверный ответ в Е был в 26 тесте=) остальные прошёл потому што число постоянно делил

А в целом участие понравилось, почаще так =)

Ссылка на комментарий

так E можно было делать?)) :

var i,N,K:integer;l,j,t,res:extended;

begin

readln(K,N);l:=1;j:=1;t:=1;

if (K>=1) and (N<=100) and(N-K>=0) then

begin

for i:=1 to K do j:=j*i;

for i:=1 to N do l:=l*i;

for i:=1 to N-K do t:=t*i;

res:=l/(j*t);

writeln(res:1:0);

end;

end.

Ссылка на комментарий

у тебя значащих цифр типа extended не хватит для точного вычисления.

мне в Е не хватало extended'a, для 25 и 75 не хватало еще двух значащих цифр. пытался обойти хитрыми путями, не получилось чет, длинные числа использовать не хотелось =)
Ссылка на комментарий

Homie Holmie, ты делаешь кучу лишних операций. l содержит t.

Просто делается одним циклом до k:


if ($k>$n) {print 0;exit(0);}
$s=1;
for($i=0;$i<$k;$i++)
{$s*=$n-$i if $n!=$i;$d*=$i+1;}
printf("%.0f", int($s/$d));

Ссылка на комментарий
525885471411488494000
18 значащих цифр и 10 в третьей степени. того 19 значащих цифр. для точного определения не хватает еще трех (скорее всего, сча уже не вспомню правильный ответ для 25 и 75). прогони в калькуляторе винды.
Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...