Автор |
RE: Lviv Training Evening |
Witaliy
Користувач
Повідомлень: 282
Зареєстрований: 09.02.08 |
Опубліковано 08-07-2010 21:03 |
|
|
Lviv Training Evening #15
В суботу, 10 липня о 19:00 за Києвом.
Посилання:
http://acm.tju.edu.cn/toj/vcontest/contest6347.html |
|
Автор |
RE: Lviv Training Evening |
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09 |
Опубліковано 12-07-2010 18:34 |
|
|
Lviv Evening Training #16
В вівторок, 13 липня о 19:00 за Київським часом.
Посилання:
http://acm.tju.edu.cn/toj/vcontest/contest6359.html
Змінив(ла) cupidon4uk, 12-07-2010 18:34 |
|
Автор |
RE: Lviv Training Evening |
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09 |
Опубліковано 14-07-2010 21:35 |
|
|
Oleksandr Voyetsa - переможець 16 тренування!(7 з восьми задач, і всі за першою спробою)... Нажаль, я трішки пролетів, тому... Зробіть хтось розбір задач =)
|
|
Автор |
RE: Lviv Training Evening |
Witaliy
Користувач
Повідомлень: 282
Зареєстрований: 09.02.08 |
Опубліковано 22-07-2010 14:53 |
|
|
Lviv Training Evening #17
Пятниця, 23 липня о 19:00 за Києвом.
URL: http://acm.tju.edu.cn/toj/vcontest/contest6425.html
Змінив(ла) Witaliy, 23-07-2010 12:00 |
|
Автор |
RE: Lviv Training Evening |
AleRD
Користувач
Повідомлень: 39
Зареєстрований: 06.12.09 |
Опубліковано 23-07-2010 09:22 |
|
|
24 липня то суботА! СЬОГОДНІ ПЯТНИЦЯ - 23
|
|
Автор |
RE: Lviv Training Evening |
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09 |
Опубліковано 31-07-2010 15:50 |
|
|
Lviv Training Evening #18
У неділю, 1 серпня о 18:00 за Київським часом.
URL: http://acm.tju.edu.cn/toj/vcontest/contest6466.html
Змінив(ла) cupidon4uk, 01-08-2010 11:53 |
|
Автор |
RE: Lviv Training Evening |
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09 |
Опубліковано 02-08-2010 12:53 |
|
|
Закінчився контест. Вітаю Andrew_Makar з першим місцем ;)
Я розкажу декілька задач, тих шо здав:
С - ну, то , як кажуть, робиш те, шо кажуть. Єдиний в мене загон був:
1)на початку був 1 зайвий пробіл
2)в випадку трикутника і паралелограма в якому рядку то б не було, після останньої зірочки пробіл стояти не повинен!
ТоЖ, якшо зробити все акуратно, то все получиться.
D - потрібно подивитись , звідки наша діагональ починатиметься - від лівого поку, чи від верху. Це просто прорахувати:
1)порахувати в якому стовпці і рядку знаходиться наше число
2)Якшо рядок більший за номер стовпця, то починаємо зверху, інакше починаємо з лівого краю..
Вирахувати точку достатньо просто:
|рядок - стовпець| + 1
А далі розглянути 2випадки - звеху і зліва. Там є свої ньюанси, якош комусь шось не зрозуміло, то звертайтесь, я постараюсь відповісти.
F - інтуіція підказує - найменше атомів - коли один цикл, тобто 6. А з додаванням нового циклу кі-сть атомів збільшується на 4. Але є 2 загони
1) N може містити до 100 символів. Але ознака подільності на 4 : N % 4 ==(10*передостаню цифру + остання цифра) %4. Тобто, зчитуємо N як рядок, останні 2 символи перетворюємо в число і дивимся на остачу.
2)Потрібно вивести лапки ""... А для мене на с++ це стало певною новинкою(нічо подібного раніше не робив) - тому я хочу пояснити цей момент. Я виводив це як окремий символ, тобто:
printf("%cNot possible.%c\n",'"','"');
А тепер шодо задач, які я не зробив:
А - цікава задачка... Я б її робив типу : з системи числення А в десяткову, а з десяткової -> в В... Але, як я зрозумів, так не катіт через обмеження... Мені цікаво, як це робити. Довга арифметика?
В - ну ніяк не міг вїхати в умову, хоча я й не дуже старався...
Е - як на мене, тупо згенерувати біномінальні коефіцієнти з використаням довгї арифметики.
Тобто
for(int i=0;i<=n;i++) print( C(i,n) ); Де с(i,n) =n!/( i! * (n-i)! )
G - цікава задачка... Не дуже вшарив в прікол з нулями - якшо ми їх під-час ззунення викинули на перший план, то їх взагалі викиути, чи тільки не виводити для цієї стадії? Бо банальний брут-форс дає ТЛ...
Н - як на мене, найцікавіша задачка в змаганні. Я її не зробив ): Хтось знає як? Я припустив, шо найоптимальнішу буде помістити новий дім в середньому арифметичному всіх кординат, але ця ідея дала ВА... Якісь ше ідеї?
I,J - не читав =(...
K - тут просто пройтись по тексту, запамятати всі символи, водночас їх рахуючи в якомусь масиві, а тоді взяти найпопулярніший, знайти відстань від нього до символа "і", і вивести з поправкою. Головне міняти тільки буквочки, а не знаки і т.д.
Змінив(ла) cupidon4uk, 02-08-2010 12:56 |
|
Автор |
RE: Lviv Training Evening |
_ballon
Користувач
Повідомлень: 81
Звідки: Kyiv NU
Зареєстрований: 31.10.08 |
Опубліковано 02-08-2010 15:53 |
|
|
на рахунок А
так там довга арифметика, я її недавно на е-олімпі здав(http://www.e-olimp.com/ua/problems/734)... а на сайті було влом здавати, бо така система що "здохнути" можна, що не напишу то якісь дивні помилки видає
Змінив(ла) _ballon, 02-08-2010 15:54 |
|
Автор |
RE: Lviv Training Evening |
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09 |
Опубліковано 02-08-2010 17:51 |
|
|
Подумав над Н ... Прийшла думка про бінарний пошук. Я правий?
|
|
Автор |
RE: Lviv Training Evening |
LeBron
Головний Адміністратор
Повідомлень: 704
Звідки: ЛНУ
Зареєстрований: 10.02.09 |
Опубліковано 02-08-2010 21:33 |
|
|
Подивився на задачі, які були "під запитанням".
Н - далеко не найцікавіша, бо дуже проста математично і засвічена історично. Можна бінарку, можна сортування. Як хочеш.
ніколи не писав там бінарки, тому й сказав, не подумавши. Числа бінарка не піде, бо маємо немонотонну функу. Якщо шукати - то тернаркою напевно. Але краще все ж тупо сортуванням, це хоч точно працює.
А - просто ділення довгого на коротке, ніц страшного.
Е - правильно, там тільки довге додавання, теж ніц страшного.
К - правильно, просто кодингова вправа.
В - якщо цифри чергуються - впорядкувати, якщо впорядковані - зробити, щоб чергувались. Теж вправа на кодинг.
J - аналізуємо ті річки, бачимо, що вони між собою не сходяться, але інші гіпотетичні річки будуть з ними при таких обмеженнях сходитись досить швидко. Відкриваємо задачу в архіві, дивимсь на кількість ацептів, цим підтверджуємо своє припущення. Далі алгоритм Влоба.
І не знаю.
Одінь окуляри з фіолетовим шклом - так легше стіну пробивати чолом.
Змінив(ла) LeBron, 02-08-2010 21:38 |
|
Автор |
RE: Lviv Training Evening |
Petya
Користувач
Повідомлень: 5
Зареєстрований: 27.03.10 |
Опубліковано 02-08-2010 23:34 |
|
|
Можна точніше про задачу Н? Шо там з сортуванням? |
|
Автор |
RE: Lviv Training Evening |
LeBron
Головний Адміністратор
Повідомлень: 704
Звідки: ЛНУ
Зареєстрований: 10.02.09 |
Опубліковано 03-08-2010 13:37 |
|
|
Натякну. Представте, що ми проходим повз будинки, почавши з координати 0, і рухаючись вправо. Поки зліва від нас будинків менше, ніж справа (тобто ми пройшли менше будинків, ніж залишилось) - значення суми буде зменшуватись, бо зробивши 1 крок, ми заберемо з суми кількість кроків, рівну "правій" кількості будинків, а додамо лише кількість, рівну лівій. Коли ж зліва стане більше, ніж справа, то сума знов(edit - не знов... а просто почне і все) почне зростати, бо оптимальний відрізок ми вже пройшли.
Одінь окуляри з фіолетовим шклом - так легше стіну пробивати чолом.
Змінив(ла) LeBron, 03-08-2010 17:16 |
|
Автор |
RE: Lviv Training Evening |
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09 |
Опубліковано 03-08-2010 18:47 |
|
|
капець сортування... Сортування - тут тільки одна частина. Так шо я б е сказав, шо ця задача "робиться сортуванням" =) Сортуванням робиться задача" поскладати в зростанні 1,3,2" xDD Сортування - то тільки клю чо дозвязку, а не алгоритм..
|
|
Автор |
RE: Lviv Training Evening |
LeBron
Головний Адміністратор
Повідомлень: 704
Звідки: ЛНУ
Зареєстрований: 10.02.09 |
Опубліковано 03-08-2010 19:50 |
|
|
CUPIDON написав:
капець сортування... Сортування - тут тільки одна частина. Так шо я б е сказав, шо ця задача "робиться сортуванням" =) Сортуванням робиться задача" поскладати в зростанні 1,3,2" xDD Сортування - то тільки клю чо дозвязку, а не алгоритм..
О, так, тоді тут ще знання циклів, зчитування/виводу, мови програмування взагалі.
Так, весь розв'язок в десяток раз більший, там аж так треба писати:
sort(ar);
for (i=1;i<=n;i++)ans+=abs(ar[(n+1)/2]-ar[i]);
return ans;
Одінь окуляри з фіолетовим шклом - так легше стіну пробивати чолом. |
|
Автор |
RE: Lviv Training Evening |
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09 |
Опубліковано 03-08-2010 21:50 |
|
|
п.с. Ти її здавав?!
Бо в мене чомусь ВА...
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int t; cin>>t;
for(int ts=0;ts<t;ts++)
{
int n; cin>>n;
vector<int> v(0);
for(int i=0;i<n;i++)
{
int a;cin>>a;
v.push_back(a);
}
sort(v.begin(),v.end());
int vlu=v[ (v.size()-1) /2 ];
int ans=0;
for(int i=0;i<v.size();i++) ans+= abs(v[i]-vlu);
cout<<ans<<endl;
}
return 0;
}
|
|
Автор |
RE: Lviv Training Evening |
LeBron
Головний Адміністратор
Повідомлень: 704
Звідки: ЛНУ
Зареєстрований: 10.02.09 |
Опубліковано 03-08-2010 23:16 |
|
|
CUPIDON написав:
п.с. Ти її здавав?!
Якщо не помиляюсь, три рази. Оскільки після другого разу я задачі здаю вже "за настроєм", а не для одержання +1 до зданих на сервері, поєднаного з провіркою правильності того, що написав... ну і те саме в різних місцях сабмічу дуже рідко (сорси не зберігаю, шукати їх в системі, де вже здав - нудно й не дуже корисно, тому пишу наново), то я цю задачу ще не здав ні на Е-олімпі, ні на ТЖУ, бо лінь було писати. Зараз здам
CUPIDON написав:
Бо в мене чомусь ВА...
Пояснення до тупості стандартне: бо в тебе неправильний розв'язок.
Сказати точно, які були помилки, я не можу, бо перед тим, як тестувати твій код, трохи його переробив в зручний для мене вигляд. Міг якусь помилку випадково додати або виправити.
Може бути, що вся проблема була лише в типах, потестуй в вільний час, мені чесно лінь.
950403 2010-08-04 04:00:17 Accepted 2972 C++ 0.5K 0'00.55" 7352K lebron - оце здав твій сорс.
Якщо бути точним, то я здав ось це:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;long long i,sz,tn,n,a,ans;
int main(){cin>>tn;
for (;tn;tn--){cin>>n;vector<long long> v(0);
for(i=0;i<n;i++) {cin>>a;v.push_back(a);}sort(v.begin(),v.end());
sz=v.size();for(i=0;i<sz;i++) ans+=abs(v[i]-v[(sz-1)/2]);
cout<<ans<<endl;if (tn)ans=0;}
return 0;}
Зараз ще трохи досліджую продуктивність, надіюсь, ти не проти.
Одінь окуляри з фіолетовим шклом - так легше стіну пробивати чолом.
Змінив(ла) LeBron, 04-08-2010 00:17 |
|
Автор |
RE: Lviv Training Evening |
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09 |
Опубліковано 10-08-2010 17:59 |
|
|
Lviv Training Evening #19
У четвер, 12 серпня о 18:00* за Київським часом.
Посилання на змагання:
http://acm.tju.edu.cn/toj/vcontest/contest6508.html
|
|