{"id":"all-union-1987-final-9-tournament-score-squares","title":"Равенство сумм квадратов побед и поражений в турнире, Всесоюзная олимпиада 1987","path":"data\\problems\\all-union\\all-union-1987-final-9-tournament-score-squares.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/all-union/all-union-1987-final-9-tournament-score-squares.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#all-union-1987-final-9-tournament-score-squares","source_key":"all","source_label":"Всесоюзная олимпиада","source_titles":["Н.Б. Васильев, А.А. Егоров, Задачи всесоюзных математических олимпиад, Наука, 1988","Математические олимпиады школьников. 9 класс, 1997, OCR access copy"],"year":"1987","type":"olympiad_problem","authors":[],"tags":["tournaments","degree_counting","goal_proof"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_easy","local_score":3,"comment":"Всесоюзная математическая олимпиада 1987 года, заключительный этап, 9 класс, задача 177, первый день.","status":"ai_checked"},"review_status":"ai_checked","public_ready":false,"solution_state":"with_solution","solution_classification":{"type":"unofficial_published","label":"опубликованное неофициальное","status":"ai_checked","confidence":0.84,"basis":"OCR-решение из опубликованного сборника и локальная самодостаточная адаптация","notes":"Полное опубликованное решение задачи 177 найдено в OCR-копии доступа. Источник является надёжным опубликованным сборником, но не официальным олимпиадным сайтом решений.","audit_source":"manual-deep-pass-2026-05-05"},"statements":{"original":[{"id":"stmt-original","title":"10 спортсменов в круговом турнире","status":"ai_checked","text":"Десять спортсменов участвовали в турнире по настольному теннису. Каждые два из них сыграли между собой ровно одну партию. Первый игрок одержал в ходе турнира \\(x_1\\) побед и потерпел \\(y_1\\) поражений, второй одержал \\(x_2\\) побед и потерпел \\(y_2\\) поражений и т. д. Доказать, что \\(x_1^2+\\cdots+x_{10}^2=y_1^2+\\cdots+y_{10}^2\\).","definition_ids":[]}],"graph_theory":[{"id":"stmt-graph","title":"Суммы квадратов полустепеней турнира","status":"ai_checked","text":"В турнире на \\(n\\) вершинах обозначим через \\(d^+(v)\\) и \\(d^-(v)\\) исходящую и входящую степени вершины \\(v\\). Докажите, что \\(\\sum_v (d^+(v))^2=\\sum_v (d^-(v))^2\\).","definition_ids":["tournament","degree","outdegree","indegree"]}]},"solutions":[{"id":"sol-published-degree-balance","title":"Баланс побед и поражений","status":"ai_checked","definition_ids":[],"standard_idea_ids":["double_counting"],"tags":[],"has_text":true,"text_preview":"В турнире на \\(n\\) вершинах для каждой вершины \\(v\\) выполнено \\[ d^+(v)+d^-(v)=n-1. \\] Кроме того, каждое ребро даёт ровно один исходящий и ровно один входящий конец, поэтому \\[ \\sum_v d^+(v)=\\sum_v d^-(v). \\] Теперь вычтем суммы квадратов: \\[ \\sum_v (d^+(v))^2-\\sum_v (d^-(v))^2=\\sum_v (d^+(v)-d^-(v))(d^+(v)+d^-(v))=(n-1)\\sum_v (d^+(v)-d^-(v))=0. \\] Следовательно, \\(\\sum_v (d^+(v))^2=\\sum_v (d^-(v))^2\\)."}],"relations":[{"id":"rel-all-union-1987-score-squares-polish-mo-2022-badminton","neighbor_id":"polish-mo-2022-ii-p6-badminton-euler-cycles","direction":"forward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-all-union-1987-score-squares-imo-2010-c5","neighbor_id":"imo-2010-c5-bad-company-tournament","direction":"forward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-all-union-1987-score-squares-cmo-2006-cycle-triplets","neighbor_id":"cmo-2006-p4-cycle-triplets-tournament","direction":"forward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-cmo-2006-max-cycle-triplets-all-union-score-squares","neighbor_id":"cmo-2006-p4-max-cycle-triplets-tournament","direction":"forward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-winner-count-lemma-all-union-1987-tournament-loss-counting","neighbor_id":"round-robin-winner-count-hall-lemma","direction":"backward","type":"same_motif","distance":3,"status":"ai_checked"}],"search_text":"all-union-1987-final-9-tournament-score-squares равенство сумм квадратов побед и поражений в турнире, всесоюзная олимпиада 1987 tournaments degree_counting goal_proof 1987 all all1987 https://djvu.online/file/a6gsdrajgdboj https://math.ru/lib/bib-mat-kr/18 published_collection_ocr published_collection_scan src-djvuonline-vseross-9-1997 src-mathru-vsesoyuznye-1988 with_solution всесоюзная олимпиада всесоюзнаяолимпиада всесоюзнаяолимпиада1987 математические олимпиады школьников. 9 класс, 1997, ocr access copy н.б. васильев, а.а. егоров, задачи всесоюзных математических олимпиад, наука, 1988 ? н.б. васильев, а.а. егоров, задачи всесоюзных математических олимпиад, наука, 1988 математические олимпиады школьников. 9 класс, 1997, ocr access copy stmt-original 10 спортсменов в круговом турнире ai_checked десять спортсменов участвовали в турнире по настольному теннису. каждые два из них сыграли между собой ровно одну партию. первый игрок одержал в ходе турнира \\(x_1\\) побед и потерпел \\(y_1\\) поражений, второй одержал \\(x_2\\) побед и потерпел \\(y_2\\) поражений и т. д. доказать, что \\(x_1^2+\\cdots+x_{10}^2=y_1^2+\\cdots+y_{10}^2\\). stmt-graph суммы квадратов полустепеней турнира ai_checked в турнире на \\(n\\) вершинах обозначим через \\(d^+(v)\\) и \\(d^-(v)\\) исходящую и входящую степени вершины \\(v\\). докажите, что \\(\\sum_v (d^+(v))^2=\\sum_v (d^-(v))^2\\). tournament degree outdegree indegree idea-indegree-outdegree-complement у каждой вершины сумма побед и поражений постоянна в турнире на 10 вершинах для каждой вершины \\(d^+(v)+d^-(v)=9\\); равенство сумм квадратов сводится к равенству сумм входящих и исходящих степеней. tournaments degree_counting ai_checked sol-published-degree-balance баланс побед и поражений ai_checked double_counting в турнире на \\(n\\) вершинах для каждой вершины \\(v\\) выполнено \\[ d^+(v)+d^-(v)=n-1. \\] кроме того, каждое ребро даёт ровно один исходящий и ровно один входящий конец, поэтому \\[ \\sum_v d^+(v)=\\sum_v d^-(v). \\] теперь вычтем суммы квадратов: \\[ \\sum_v (d^+(v))^2-\\sum_v (d^-(v))^2=\\sum_v (d^+(v)-d^-(v))(d^+(v)+d^-(v))=(n-1)\\sum_v (d^+(v)-d^-(v))=0. \\] следовательно, \\(\\sum_v (d^+(v))^2=\\sum_v (d^-(v))^2\\). all-union-1987-final-9-tournament-score-squares ravenstvo summ kvadratov pobed i porazheniy v turnire, vsesoyuznaya olimpiada 1987 tournaments degree_counting goal_proof 1987 all all1987 https://djvu.online/file/a6gsdrajgdboj https://math.ru/lib/bib-mat-kr/18 published_collection_ocr published_collection_scan src-djvuonline-vseross-9-1997 src-mathru-vsesoyuznye-1988 with_solution vsesoyuznaya olimpiada vsesoyuznayaolimpiada vsesoyuznayaolimpiada1987 matematicheskie olimpiady shkolnikov. 9 klass, 1997, ocr access copy n.b. vasilev, a.a. egorov, zadachi vsesoyuznyh matematicheskih olimpiad, nauka, 1988 ? n.b. vasilev, a.a. egorov, zadachi vsesoyuznyh matematicheskih olimpiad, nauka, 1988 matematicheskie olimpiady shkolnikov. 9 klass, 1997, ocr access copy stmt-original 10 sportsmenov v krugovom turnire ai_checked desyat sportsmenov uchastvovali v turnire po nastolnomu tennisu. kazhdye dva iz nih sygrali mezhdu soboy rovno odnu partiyu. pervyy igrok oderzhal v hode turnira \\(x_1\\) pobed i poterpel \\(y_1\\) porazheniy, vtoroy oderzhal \\(x_2\\) pobed i poterpel \\(y_2\\) porazheniy i t. d. dokazat, chto \\(x_1^2+\\cdots+x_{10}^2=y_1^2+\\cdots+y_{10}^2\\). stmt-graph summy kvadratov polustepeney turnira ai_checked v turnire na \\(n\\) vershinah oboznachim cherez \\(d^+(v)\\) i \\(d^-(v)\\) ishodyaschuyu i vhodyaschuyu stepeni vershiny \\(v\\). dokazhite, chto \\(\\sum_v (d^+(v))^2=\\sum_v (d^-(v))^2\\). tournament degree outdegree indegree idea-indegree-outdegree-complement u kazhdoy vershiny summa pobed i porazheniy postoyanna v turnire na 10 vershinah dlya kazhdoy vershiny \\(d^+(v)+d^-(v)=9\\); ravenstvo summ kvadratov svoditsya k ravenstvu summ vhodyaschih i ishodyaschih stepeney. tournaments degree_counting ai_checked sol-published-degree-balance balans pobed i porazheniy ai_checked double_counting v turnire na \\(n\\) vershinah dlya kazhdoy vershiny \\(v\\) vypolneno \\[ d^+(v)+d^-(v)=n-1. \\] krome togo, kazhdoe rebro daet rovno odin ishodyaschiy i rovno odin vhodyaschiy konets, poetomu \\[ \\sum_v d^+(v)=\\sum_v d^-(v). \\] teper vychtem summy kvadratov: \\[ \\sum_v (d^+(v))^2-\\sum_v (d^-(v))^2=\\sum_v (d^+(v)-d^-(v))(d^+(v)+d^-(v))=(n-1)\\sum_v (d^+(v)-d^-(v))=0. \\] sledovatelno, \\(\\sum_v (d^+(v))^2=\\sum_v (d^-(v))^2\\).","source_keys":["all"]}
{"id":"apmo-2005-p4-firefighters-grid-spread","title":"Пожар на решётке \\(P_n\\square P_n\\), APMO 2005 P4","path":"data\\problems\\apmo\\apmo-2005-p4-firefighters-grid-spread.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/apmo/apmo-2005-p4-firefighters-grid-spread.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#apmo-2005-p4-firefighters-grid-spread","source_key":"apmo","source_label":"APMO","source_titles":["APMO 2005 официальные решения"],"year":"2005","type":"olympiad_problem","authors":[],"tags":["connectivity","goal_exact_bound"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_hard","local_score":10,"comment":"APMO 2005 P4; условие и решение естественно формулируются на графе решётки.","status":"ai_checked"},"review_status":"source_verified","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"official_complete_or_near_complete","label":"официальное полное/почти полное","status":"source_verified","confidence":0.9,"basis":"официальный источник, затем аудит очень высокой сложности","notes":"Официальное решение развёрнуто; проверены момент постановки барьера, индукция \\(s(t)\\le t-p(t)\\) и подсчёт дальних уровней.","audit_source":"agent-western-olympiads.json"},"statements":{"original":[{"id":"stmt-original","title":"Условие","status":"source_verified","text":"В городе имеется таблица домов \\(n\\times n\\), дом в строке \\(i\\) и столбце \\(j\\) обозначается \\((i,j)\\). В момент \\(0\\) пожар начинается в доме \\((1,c)\\), где \\(c\\le n/2\\). За каждый следующий промежуток времени пожарные успевают защитить один ещё не горящий дом, а затем огонь распространяется на все незащищённые соседние дома каждого уже горящего дома. Соседними считаются дома на расстоянии 1 по Манхэттену. После защиты дом остаётся защищённым навсегда. Когда огонь больше не может распространяться, процесс заканчивается. Какое наибольшее число домов можно спасти?","definition_ids":[]}],"graph_theory":[{"id":"stmt-graph","title":"Пожар на решётке \\(P_n\\square P_n\\)","status":"ai_checked","text":"В графе \\(P_n\\square P_n\\) сначала заражена вершина \\((1,c)\\), где \\(c\\le n/2\\). На каждом шаге можно навсегда удалить одну ещё не заражённую вершину, после чего заражение переходит из всех заражённых вершин во всех их неудалённых соседей. Найдите наибольшее возможное число вершин, которые никогда не будут заражены.","definition_ids":["connected_graph","path"]}]},"solutions":[{"id":"sol-official-compressed","title":"Развёрнутое решение через барьер и слои расстояния","status":"source_verified","definition_ids":["connected_graph","path"],"standard_idea_ids":["induction"],"tags":[],"has_text":true,"text_preview":"Ответ: можно спасти ровно \\(n^2+c^2-nc-c\\) домов. Сначала опишем стратегию, достигающую этой оценки. Защищаем клетки в порядке \\[ (2,c),(2,c+1),(3,c-1),(3,c+2),\\ldots,(c+1,1),(c+1,2c), \\] а затем клетки \\((c+1,2c+1),(c+1,2c+2),\\ldots,(c+1,n)\\). Первая часть строит две диагональные стены от очага вниз-влево и вниз-вправо, а вторая часть достраивает горизонтальную стену вправо. Проверим, что защита ставится вовремя. Клетка \\((r+1,c-r+1)\\) или \\((r+1,c+r)\\) находится на манхэттенском расстоянии \\(r\\) от \\((1,c)\\), поэтому её защищают как раз до того, как огонь впервые мог бы до неё добраться. Защищённая клетка навсегда остаётся преградой. Посчитаем спасённые клетки. Для каждого \\(r=1,2,\\ldots,c\\) две защищённые клетки на соответствующей диагонали спасают вертикальные хвосты длины \\(n-r\\). Это даёт \\[ 2((n-1)+(n-2)+\\cdots+(n-c)). \\] Справа от горизонтальной стены остаётся прямоугольник из \\…"}],"relations":[{"id":"rel-cmo-1971-p10-apmo-2005-p4-spread-frontier","neighbor_id":"cmo-1971-p10-one-way-phone-gossip","direction":"backward","type":"same_motif","distance":3,"status":"needs_human_review"},{"id":"rel-apmo-2005-p4-imo-2013-c6-layer-frontier","neighbor_id":"third-fourth-distance-layer-bound","direction":"forward","type":"same_motif","distance":3,"status":"needs_human_review"},{"id":"rel-utyum-2024-capital-flights-apmo-firefighters","neighbor_id":"utyum-2024_komol63_67_capital_flights_bipartite","direction":"backward","type":"same_motif","distance":2,"status":"needs_human_review"}],"search_text":"apmo-2005-p4-firefighters-grid-spread пожар на решётке \\(p_n\\square p_n\\), apmo 2005 p4 connectivity goal_exact_bound 2005 apmo apmo 2005 официальные решения apmo2005 https://apmo-official.org/static/solutions/apmo2005_sol.pdf official_archive src-apmo-2005-official with_solution ? apmo 2005 официальные решения stmt-original условие source_verified в городе имеется таблица домов \\(n\\times n\\), дом в строке \\(i\\) и столбце \\(j\\) обозначается \\((i,j)\\). в момент \\(0\\) пожар начинается в доме \\((1,c)\\), где \\(c\\le n/2\\). за каждый следующий промежуток времени пожарные успевают защитить один ещё не горящий дом, а затем огонь распространяется на все незащищённые соседние дома каждого уже горящего дома. соседними считаются дома на расстоянии 1 по манхэттену. после защиты дом остаётся защищённым навсегда. когда огонь больше не может распространяться, процесс заканчивается. какое наибольшее число домов можно спасти? stmt-graph пожар на решётке \\(p_n\\square p_n\\) ai_checked в графе \\(p_n\\square p_n\\) сначала заражена вершина \\((1,c)\\), где \\(c\\le n/2\\). на каждом шаге можно навсегда удалить одну ещё не заражённую вершину, после чего заражение переходит из всех заражённых вершин во всех их неудалённых соседей. найдите наибольшее возможное число вершин, которые никогда не будут заражены. connected_graph path idea-levels-from-source уровни по расстоянию от очага решение группирует дома по манхэттенскому расстоянию от начального пожара и отслеживает, сколько домов на данном уровне можно успеть защитить к нужному моменту. connectivity ai_checked idea-frontier-count оценка через огненный фронт считается, сколько вершин текущего уровня может остаться не сгоревшими к моменту прихода огня, используя ограничение «не более одной защиты за ход». double_counting ai_checked sol-official-compressed развёрнутое решение через барьер и слои расстояния source_verified connected_graph path induction ответ: можно спасти ровно \\(n^2+c^2-nc-c\\) домов. сначала опишем стратегию, достигающую этой оценки. защищаем клетки в порядке \\[ (2,c),(2,c+1),(3,c-1),(3,c+2),\\ldots,(c+1,1),(c+1,2c), \\] а затем клетки \\((c+1,2c+1),(c+1,2c+2),\\ldots,(c+1,n)\\). первая часть строит две диагональные стены от очага вниз-влево и вниз-вправо, а вторая часть достраивает горизонтальную стену вправо. проверим, что защита ставится вовремя. клетка \\((r+1,c-r+1)\\) или \\((r+1,c+r)\\) находится на манхэттенском расстоянии \\(r\\) от \\((1,c)\\), поэтому её защищают как раз до того, как огонь впервые мог бы до неё добраться. защищённая клетка навсегда остаётся преградой. посчитаем спасённые клетки. для каждого \\(r=1,2,\\ldots,c\\) две защищённые клетки на соответствующей диагонали спасают вертикальные хвосты длины \\(n-r\\). это даёт \\[ 2((n-1)+(n-2)+\\cdots+(n-c)). \\] справа от горизонтальной стены остаётся прямоугольник из \\… apmo-2005-p4-firefighters-grid-spread pozhar na reshetke \\(p_n\\square p_n\\), apmo 2005 p4 connectivity goal_exact_bound 2005 apmo apmo 2005 ofitsialnye resheniya apmo2005 https://apmo-official.org/static/solutions/apmo2005_sol.pdf official_archive src-apmo-2005-official with_solution ? apmo 2005 ofitsialnye resheniya stmt-original uslovie source_verified v gorode imeetsya tablitsa domov \\(n\\times n\\), dom v stroke \\(i\\) i stolbtse \\(j\\) oboznachaetsya \\((i,j)\\). v moment \\(0\\) pozhar nachinaetsya v dome \\((1,c)\\), gde \\(c\\le n/2\\). za kazhdyy sleduyuschiy promezhutok vremeni pozharnye uspevayut zaschitit odin esche ne goryaschiy dom, a zatem ogon rasprostranyaetsya na vse nezaschischennye sosednie doma kazhdogo uzhe goryaschego doma. sosednimi schitayutsya doma na rasstoyanii 1 po manhettenu. posle zaschity dom ostaetsya zaschischennym navsegda. kogda ogon bolshe ne mozhet rasprostranyatsya, protsess zakanchivaetsya. kakoe naibolshee chislo domov mozhno spasti? stmt-graph pozhar na reshetke \\(p_n\\square p_n\\) ai_checked v grafe \\(p_n\\square p_n\\) snachala zarazhena vershina \\((1,c)\\), gde \\(c\\le n/2\\). na kazhdom shage mozhno navsegda udalit odnu esche ne zarazhennuyu vershinu, posle chego zarazhenie perehodit iz vseh zarazhennyh vershin vo vseh ih neudalennyh sosedey. naydite naibolshee vozmozhnoe chislo vershin, kotorye nikogda ne budut zarazheny. connected_graph path idea-levels-from-source urovni po rasstoyaniyu ot ochaga reshenie gruppiruet doma po manhettenskomu rasstoyaniyu ot nachalnogo pozhara i otslezhivaet, skolko domov na dannom urovne mozhno uspet zaschitit k nuzhnomu momentu. connectivity ai_checked idea-frontier-count otsenka cherez ognennyy front schitaetsya, skolko vershin tekuschego urovnya mozhet ostatsya ne sgorevshimi k momentu prihoda ognya, ispolzuya ogranichenie «ne bolee odnoy zaschity za hod». double_counting ai_checked sol-official-compressed razvernutoe reshenie cherez barer i sloi rasstoyaniya source_verified connected_graph path induction otvet: mozhno spasti rovno \\(n^2+c^2-nc-c\\) domov. snachala opishem strategiyu, dostigayuschuyu etoy otsenki. zaschischaem kletki v poryadke \\[ (2,c),(2,c+1),(3,c-1),(3,c+2),\\ldots,(c+1,1),(c+1,2c), \\] a zatem kletki \\((c+1,2c+1),(c+1,2c+2),\\ldots,(c+1,n)\\). pervaya chast stroit dve diagonalnye steny ot ochaga vniz-vlevo i vniz-vpravo, a vtoraya chast dostraivaet gorizontalnuyu stenu vpravo. proverim, chto zaschita stavitsya vovremya. kletka \\((r+1,c-r+1)\\) ili \\((r+1,c+r)\\) nahoditsya na manhettenskom rasstoyanii \\(r\\) ot \\((1,c)\\), poetomu ee zaschischayut kak raz do togo, kak ogon vpervye mog by do nee dobratsya. zaschischennaya kletka navsegda ostaetsya pregradoy. poschitaem spasennye kletki. dlya kazhdogo \\(r=1,2,\\ldots,c\\) dve zaschischennye kletki na sootvetstvuyuschey diagonali spasayut vertikalnye hvosty dliny \\(n-r\\). eto daet \\[ 2((n-1)+(n-2)+\\cdots+(n-c)). \\] sprava ot gorizontalnoy steny ostaetsya pryamougolnik iz \\…","source_keys":["apmo"]}
{"id":"cmo-2025-p1-voting-functional-graph","title":"Обновление стрелок в функциональном орграфе, CMO 2025 P1","path":"data\\problems\\cmo\\cmo-2025-p1-voting-functional-graph.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/cmo/cmo-2025-p1-voting-functional-graph.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#cmo-2025-p1-voting-functional-graph","source_key":"cmo","source_label":"CMO","source_titles":["Canadian Mathematical Olympiad 2025 официальные условия","Canadian Mathematical Olympiad 2025 официальные решения"],"year":"2025","type":"olympiad_problem","authors":[],"tags":["connectivity","goal_proof"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_easy","local_score":6,"comment":"CMO 2025 P1; естественная модель через функциональный орграф быстро даёт решение, но нужно аккуратно обосновать сжатие цикла и путей при произвольном порядке обновлений.","status":"ai_checked"},"review_status":"ai_checked","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"official_plan_completed_by_ai","label":"официальный план, доведённый ИИ","status":"ai_checked","confidence":0.92,"basis":"официальное решение CMS CMO 2025 было сжатым; локальная карточка содержит развёрнутое самодостаточное доказательство через функциональный орграф и сжатие цикла/путей","notes":"Проверены сохранение единственного направленного цикла, оценка уменьшения цикла за раунд, последующее сжатие путей к петле и итоговая граница не более n раундов.","audit_source":"official-outline-cleanup-2026-05-16"},"statements":{"original":[{"id":"stmt-original","title":"Официальное условие","status":"ai_checked","text":"\\(n\\) игроков хоккейной команды собираются, чтобы выбрать капитана. Сначала они стоят по кругу, и каждый голосует за человека слева от себя. Затем игроки будут обновлять свои голоса в серии раундов. В одном раунде каждый игрок \\(a\\) по очереди обновляет свой голос по следующему правилу: в момент обновления, если \\(a\\) голосует за \\(b\\), а \\(b\\) голосует за \\(c\\), то \\(a\\) меняет свой голос на \\(c\\). Вершины \\(a,b,c\\) не обязаны быть различными; если \\(b=c\\), то голос \\(a\\) при этом обновлении не меняется. В каждом раунде каждый игрок обновляет свой голос ровно один раз, в порядке, который определяют игроки; этот порядок может меняться от раунда к раунду. Они повторяют такую процедуру обновления в течение \\(n\\) раундов. Докажите, что к этому моменту все \\(n\\) игроков будут единогласно голосовать за одного и того же человека.","definition_ids":[]}],"graph_theory":[{"id":"stmt-graph","title":"Обновление стрелок в функциональном орграфе","status":"ai_checked","text":"Пусть дано \\(n\\) вершин, сначала образующих один ориентированный цикл: из каждой вершины выходит ровно одна стрелка к следующей вершине цикла. Далее выполняются \\(n\\) раундов. В каждом раунде каждая вершина обновляется ровно один раз, в произвольном порядке, который может меняться от раунда к раунду. Если в момент обновления из вершины \\(a\\) выходит стрелка в \\(b\\), а из \\(b\\) выходит стрелка в \\(c\\), то стрелку из \\(a\\) заменяют на стрелку \\(a\\to c\\); если \\(b=c\\), стрелка из \\(a\\) не меняется. Докажите, что после этих \\(n\\) раундов все вершины имеют одного и того же исходящего соседа.","definition_ids":["directed_graph","outdegree","cycle"]}],"graph_hint_reformulations":[{"id":"stmt-hint-halving","title":"Подсказочная формулировка через сжатие цикла и путей","status":"ai_checked","text":"В той же модели докажите два вспомогательных факта. Во-первых, если в начале раунда единственный направленный цикл имеет длину \\(K>1\\), то к концу раунда его длина не превосходит \\(\\lfloor K/2\\rfloor\\). Во-вторых, когда цикл уже стал петлей \\(z\\to z\\), любой путь длины \\(L\\) к \\(z\\) после одного раунда имеет длину не больше \\(\\lceil L/2\\rceil\\). Эти две оценки дают единогласие не позднее чем через \\(\\lfloor\\log_2 n\\rfloor+\\lceil\\log_2 n\\rceil\\le n\\) раундов.","definition_ids":["directed_graph","cycle","path"]}]},"solutions":[{"id":"sol-official-cycle-and-path-halving","title":"Решение через сжатие цикла и путей","status":"ai_checked","definition_ids":["directed_graph","outdegree","cycle","path"],"standard_idea_ids":[],"tags":[],"has_text":true,"text_preview":"Будем рассматривать текущие голоса как ориентированный граф: из каждой вершины выходит ровно одна стрелка, направленная к тому игроку, за которого эта вершина сейчас голосует. Обновление вершины \\(a\\) устроено так: если в данный момент \\(a\\to b\\) и \\(b\\to c\\), то стрелка из \\(a\\) заменяется на \\(a\\to c\\). То есть вершина \\(a\\) перепрыгивает через один указатель. Сначала зафиксируем структуру графа. В начальный момент все вершины образуют один направленный цикл. При любом обновлении новая стрелка из \\(a\\) ведет туда, куда до обновления вела стрелка из прежнего соседа \\(b\\). Поэтому обновление не может создать новый направленный цикл: если после замены \\(a\\to c\\) вершина \\(a\\) лежит на цикле, то и до замены путь из \\(c\\) обратно к \\(a\\) вместе со стрелками \\(a\\to b\\to c\\) уже давал цикл. Значит, в каждый момент существует ровно один направленный цикл; остальные вершины, если они есть, леж…"}],"relations":[{"id":"rel-cmo-1971-p10-cmo-2025-p1-directed-dynamics","neighbor_id":"cmo-1971-p10-one-way-phone-gossip","direction":"backward","type":"same_motif","distance":3,"status":"needs_human_review"},{"id":"rel-cmo-2025-p1-functional-halving-lemma","neighbor_id":"functional-digraph-pointer-jumping-round-halving","direction":"forward","type":"prerequisite","distance":1,"status":"ai_checked"},{"id":"rel-cmo-2025-p1-cmo-1994-p3-voting-dynamics","neighbor_id":"cmo-1994-p3-voting-stabilizes-cycle","direction":"forward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-cmo-2025-p1-cmo-2012-p4-synchronization","neighbor_id":"cmo-2012-p4-synchronizing-grid-robots","direction":"forward","type":"same_motif","distance":3,"status":"ai_checked"},{"id":"rel-cmo-2025-p1-apmo-2016-p4-functional-digraph","neighbor_id":"apmo-2016-p4-dreamland-28-step-coloring","direction":"forward","type":"same_motif","distance":3,"status":"ai_checked"},{"id":"rel-bounded-forward-rays-cmo-2025-functional-digraph-dynamics","neighbor_id":"bounded-forward-rays-balanced-sums","direction":"backward","type":"same_motif","distance":4,"status":"needs_human_review"},{"id":"rel-imo-2019-c3-cmo-2025-p1-functional-digraph-dynamics","neighbor_id":"imo-2019-c3-coin-process-digraph","direction":"backward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-imo-2021-n8-cmo-2025-functional-dynamics","neighbor_id":"imo-2021-c6-functional-graph-roots","direction":"backward","type":"same_motif","distance":3,"status":"needs_human_review"}],"search_text":"cmo-2025-p1-voting-functional-graph обновление стрелок в функциональном орграфе, cmo 2025 p1 connectivity goal_proof 2025 canadian mathematical olympiad 2025 официальные решения canadian mathematical olympiad 2025 официальные условия cmo cmo2025 https://w7.cms.math.ca/competitions/cmo/archive/exam2025.pdf https://w7.cms.math.ca/competitions/cmo/archive/sol2025.pdf solution_notes src-cmo-2025-official src-cmo-2025-solutions statement with_solution ? canadian mathematical olympiad 2025 официальные условия canadian mathematical olympiad 2025 официальные решения stmt-original официальное условие ai_checked \\(n\\) игроков хоккейной команды собираются, чтобы выбрать капитана. сначала они стоят по кругу, и каждый голосует за человека слева от себя. затем игроки будут обновлять свои голоса в серии раундов. в одном раунде каждый игрок \\(a\\) по очереди обновляет свой голос по следующему правилу: в момент обновления, если \\(a\\) голосует за \\(b\\), а \\(b\\) голосует за \\(c\\), то \\(a\\) меняет свой голос на \\(c\\). вершины \\(a,b,c\\) не обязаны быть различными; если \\(b=c\\), то голос \\(a\\) при этом обновлении не меняется. в каждом раунде каждый игрок обновляет свой голос ровно один раз, в порядке, который определяют игроки; этот порядок может меняться от раунда к раунду. они повторяют такую процедуру обновления в течение \\(n\\) раундов. докажите, что к этому моменту все \\(n\\) игроков будут единогласно голосовать за одного и того же человека. stmt-graph обновление стрелок в функциональном орграфе ai_checked пусть дано \\(n\\) вершин, сначала образующих один ориентированный цикл: из каждой вершины выходит ровно одна стрелка к следующей вершине цикла. далее выполняются \\(n\\) раундов. в каждом раунде каждая вершина обновляется ровно один раз, в произвольном порядке, который может меняться от раунда к раунду. если в момент обновления из вершины \\(a\\) выходит стрелка в \\(b\\), а из \\(b\\) выходит стрелка в \\(c\\), то стрелку из \\(a\\) заменяют на стрелку \\(a\\to c\\); если \\(b=c\\), стрелка из \\(a\\) не меняется. докажите, что после этих \\(n\\) раундов все вершины имеют одного и того же исходящего соседа. directed_graph outdegree cycle stmt-hint-halving подсказочная формулировка через сжатие цикла и путей ai_checked в той же модели докажите два вспомогательных факта. во-первых, если в начале раунда единственный направленный цикл имеет длину \\(k>1\\), то к концу раунда его длина не превосходит \\(\\lfloor k/2\\rfloor\\). во-вторых, когда цикл уже стал петлей \\(z\\to z\\), любой путь длины \\(l\\) к \\(z\\) после одного раунда имеет длину не больше \\(\\lceil l/2\\rceil\\). эти две оценки дают единогласие не позднее чем через \\(\\lfloor\\log_2 n\\rfloor+\\lceil\\log_2 n\\rceil\\le n\\) раундов. directed_graph cycle path idea-pointer-jumping голосование является прыжком по указателям если текущий голос игрока \\(a\\) направлен на \\(b\\), а голос \\(b\\) направлен на \\(c\\), то обновление заменяет указатель \\(a\\to b\\) на \\(a\\to c\\). значит, процесс является последовательным перепрыгиванием по указателям в функциональном ориентированном графе. goal_proof ai_checked idea-unique-cycle сохраняется единственный направленный цикл в начале есть один направленный цикл. операция \\(a\\to b\\to c\\), \\(a\\to c\\) только перепрыгивает через следующий указатель в уже существующей компоненте: вершина может выпасть из цикла, но новый цикл не появляется. ai_checked idea-halving раунд как минимум вдвое сжимает цикл или путь внутри одного раунда достаточно много вершин исходного цикла или пути успевают обновиться до того, как их выбросит предыдущее обновление. каждое такое обновление удаляет одну следующую вершину из текущего цикла или пути, поэтому длина уменьшается примерно вдвое. goal_bound ai_checked sol-official-cycle-and-path-halving решение через сжатие цикла и путей ai_checked directed_graph outdegree cycle path будем рассматривать текущие голоса как ориентированный граф: из каждой вершины выходит ровно одна стрелка, направленная к тому игроку, за которого эта вершина сейчас голосует. обновление вершины \\(a\\) устроено так: если в данный момент \\(a\\to b\\) и \\(b\\to c\\), то стрелка из \\(a\\) заменяется на \\(a\\to c\\). то есть вершина \\(a\\) перепрыгивает через один указатель. сначала зафиксируем структуру графа. в начальный момент все вершины образуют один направленный цикл. при любом обновлении новая стрелка из \\(a\\) ведет туда, куда до обновления вела стрелка из прежнего соседа \\(b\\). поэтому обновление не может создать новый направленный цикл: если после замены \\(a\\to c\\) вершина \\(a\\) лежит на цикле, то и до замены путь из \\(c\\) обратно к \\(a\\) вместе со стрелками \\(a\\to b\\to c\\) уже давал цикл. значит, в каждый момент существует ровно один направленный цикл; остальные вершины, если они есть, леж… cmo-2025-p1-voting-functional-graph obnovlenie strelok v funktsionalnom orgrafe, cmo 2025 p1 connectivity goal_proof 2025 canadian mathematical olympiad 2025 ofitsialnye resheniya canadian mathematical olympiad 2025 ofitsialnye usloviya cmo cmo2025 https://w7.cms.math.ca/competitions/cmo/archive/exam2025.pdf https://w7.cms.math.ca/competitions/cmo/archive/sol2025.pdf solution_notes src-cmo-2025-official src-cmo-2025-solutions statement with_solution ? canadian mathematical olympiad 2025 ofitsialnye usloviya canadian mathematical olympiad 2025 ofitsialnye resheniya stmt-original ofitsialnoe uslovie ai_checked \\(n\\) igrokov hokkeynoy komandy sobirayutsya, chtoby vybrat kapitana. snachala oni stoyat po krugu, i kazhdyy golosuet za cheloveka sleva ot sebya. zatem igroki budut obnovlyat svoi golosa v serii raundov. v odnom raunde kazhdyy igrok \\(a\\) po ocheredi obnovlyaet svoy golos po sleduyuschemu pravilu: v moment obnovleniya, esli \\(a\\) golosuet za \\(b\\), a \\(b\\) golosuet za \\(c\\), to \\(a\\) menyaet svoy golos na \\(c\\). vershiny \\(a,b,c\\) ne obyazany byt razlichnymi; esli \\(b=c\\), to golos \\(a\\) pri etom obnovlenii ne menyaetsya. v kazhdom raunde kazhdyy igrok obnovlyaet svoy golos rovno odin raz, v poryadke, kotoryy opredelyayut igroki; etot poryadok mozhet menyatsya ot raunda k raundu. oni povtoryayut takuyu protseduru obnovleniya v techenie \\(n\\) raundov. dokazhite, chto k etomu momentu vse \\(n\\) igrokov budut edinoglasno golosovat za odnogo i togo zhe cheloveka. stmt-graph obnovlenie strelok v funktsionalnom orgrafe ai_checked pust dano \\(n\\) vershin, snachala obrazuyuschih odin orientirovannyy tsikl: iz kazhdoy vershiny vyhodit rovno odna strelka k sleduyuschey vershine tsikla. dalee vypolnyayutsya \\(n\\) raundov. v kazhdom raunde kazhdaya vershina obnovlyaetsya rovno odin raz, v proizvolnom poryadke, kotoryy mozhet menyatsya ot raunda k raundu. esli v moment obnovleniya iz vershiny \\(a\\) vyhodit strelka v \\(b\\), a iz \\(b\\) vyhodit strelka v \\(c\\), to strelku iz \\(a\\) zamenyayut na strelku \\(a\\to c\\); esli \\(b=c\\), strelka iz \\(a\\) ne menyaetsya. dokazhite, chto posle etih \\(n\\) raundov vse vershiny imeyut odnogo i togo zhe ishodyaschego soseda. directed_graph outdegree cycle stmt-hint-halving podskazochnaya formulirovka cherez szhatie tsikla i putey ai_checked v toy zhe modeli dokazhite dva vspomogatelnyh fakta. vo-pervyh, esli v nachale raunda edinstvennyy napravlennyy tsikl imeet dlinu \\(k>1\\), to k kontsu raunda ego dlina ne prevoshodit \\(\\lfloor k/2\\rfloor\\). vo-vtoryh, kogda tsikl uzhe stal petley \\(z\\to z\\), lyuboy put dliny \\(l\\) k \\(z\\) posle odnogo raunda imeet dlinu ne bolshe \\(\\lceil l/2\\rceil\\). eti dve otsenki dayut edinoglasie ne pozdnee chem cherez \\(\\lfloor\\log_2 n\\rfloor+\\lceil\\log_2 n\\rceil\\le n\\) raundov. directed_graph cycle path idea-pointer-jumping golosovanie yavlyaetsya pryzhkom po ukazatelyam esli tekuschiy golos igroka \\(a\\) napravlen na \\(b\\), a golos \\(b\\) napravlen na \\(c\\), to obnovlenie zamenyaet ukazatel \\(a\\to b\\) na \\(a\\to c\\). znachit, protsess yavlyaetsya posledovatelnym pereprygivaniem po ukazatelyam v funktsionalnom orientirovannom grafe. goal_proof ai_checked idea-unique-cycle sohranyaetsya edinstvennyy napravlennyy tsikl v nachale est odin napravlennyy tsikl. operatsiya \\(a\\to b\\to c\\), \\(a\\to c\\) tolko pereprygivaet cherez sleduyuschiy ukazatel v uzhe suschestvuyuschey komponente: vershina mozhet vypast iz tsikla, no novyy tsikl ne poyavlyaetsya. ai_checked idea-halving raund kak minimum vdvoe szhimaet tsikl ili put vnutri odnogo raunda dostatochno mnogo vershin ishodnogo tsikla ili puti uspevayut obnovitsya do togo, kak ih vybrosit predyduschee obnovlenie. kazhdoe takoe obnovlenie udalyaet odnu sleduyuschuyu vershinu iz tekuschego tsikla ili puti, poetomu dlina umenshaetsya primerno vdvoe. goal_bound ai_checked sol-official-cycle-and-path-halving reshenie cherez szhatie tsikla i putey ai_checked directed_graph outdegree cycle path budem rassmatrivat tekuschie golosa kak orientirovannyy graf: iz kazhdoy vershiny vyhodit rovno odna strelka, napravlennaya k tomu igroku, za kotorogo eta vershina seychas golosuet. obnovlenie vershiny \\(a\\) ustroeno tak: esli v dannyy moment \\(a\\to b\\) i \\(b\\to c\\), to strelka iz \\(a\\) zamenyaetsya na \\(a\\to c\\). to est vershina \\(a\\) pereprygivaet cherez odin ukazatel. snachala zafiksiruem strukturu grafa. v nachalnyy moment vse vershiny obrazuyut odin napravlennyy tsikl. pri lyubom obnovlenii novaya strelka iz \\(a\\) vedet tuda, kuda do obnovleniya vela strelka iz prezhnego soseda \\(b\\). poetomu obnovlenie ne mozhet sozdat novyy napravlennyy tsikl: esli posle zameny \\(a\\to c\\) vershina \\(a\\) lezhit na tsikle, to i do zameny put iz \\(c\\) obratno k \\(a\\) vmeste so strelkami \\(a\\to b\\to c\\) uzhe daval tsikl. znachit, v kazhdyy moment suschestvuet rovno odin napravlennyy tsikl; ostalnye vershiny, esli oni est, lezh…","source_keys":["cmo"]}
{"id":"imo-2010-c5-bad-company-tournament","title":"Теннисный турнир без плохой четвёрки, IMO Shortlist 2010 C5","path":"data\\problems\\imo\\imo-2010-c5-bad-company-tournament.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/imo/imo-2010-c5-bad-company-tournament.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#imo-2010-c5-bad-company-tournament","source_key":"imo","source_label":"IMO Shortlist","source_titles":["IMO 2010 Shortlisted Problems with Solutions","AoPS Wiki, 2010 IMO Shortlist Problems"],"year":"2010","type":"olympiad_problem","authors":[],"tags":["tournaments","double_counting","goal_proof"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"imo_p3_plus","local_score":12,"comment":"IMO Shortlist 2010 C5, Южная Корея; графовый слой существенен в официальном решении.","status":"needs_human_review"},"review_status":"needs_human_review","public_ready":false,"solution_state":"with_solution","solution_classification":{"type":"official_complete_or_near_complete","label":"официальное полное/почти полное","status":"ai_checked","confidence":0.78,"basis":"агентский аудит средней сложности","notes":"В карточке есть официальные, шортлистные или справочные источники и проверенное ИИ решение.","audit_source":"agent-imo-us-classical.json"},"statements":{"original":[{"id":"stmt-original","title":"Условие","status":"needs_human_review","text":"В турнире \\(n\\ge4\\) игроков каждая пара сыграла ровно один матч без ничьих. Плохой называется четвёрка игроков, где один проиграл трём остальным, а эти трое между собой образуют цикл побед. Если плохих четвёрок нет, докажите, что \\(\\sum_i (w_i-l_i)^3\\ge0\\), где \\(w_i,l_i\\) — числа побед и поражений игрока.","definition_ids":[]}],"graph_theory":[{"id":"stmt-graph","title":"Теннисный турнир без плохой четвёрки, IMO Shortlist 2010 C5","status":"needs_human_review","text":"Пусть \\(T\\) — турнир на \\(n\\ge4\\) вершинах. Назовём плохой четвёркой множество из четырёх вершин, в котором одна вершина проигрывает трём остальным, а эти три вершины между собой образуют ориентированный цикл длины 3. Если в \\(T\\) нет плохих четвёрок, то докажите, что \\(\\sum_{v\\in V(T)} (d^+(v)-d^-(v))^3\\ge0\\).","definition_ids":["tournament","directed_graph","degree","cycle"]}]},"solutions":[{"id":"sol-degree-sum-full","title":"Полное решение подсчётом сумм степеней в турнире","status":"ai_checked","definition_ids":["cycle","complete_graph","tournament"],"standard_idea_ids":["double_counting"],"tags":[],"has_text":true,"text_preview":"Будем говорить, что в компании из нескольких игроков игрок является локальным чемпионом, если он победил всех остальных в этой компании, и локальным проигравшим, если он всем остальным проиграл. Для фиксированного \\(k\\) число пар вида «\\(k\\)-компания и её локальный чемпион» равно \\(\\sum_i \\binom{w_i}{k-1}\\), потому что к игроку \\(i\\) надо выбрать ещё \\(k-1\\) игроков из тех, кого он победил. Число локальных проигравших в \\(k\\)-компаниях равно \\(\\sum_i \\binom{l_i}{k-1}\\). При \\(k=2\\) оба числа равны числу матчей, поэтому \\(\\sum_i(w_i-l_i)=0\\). При \\(k=3\\) каждая тройка либо является циклом, и тогда не имеет ни локального чемпиона, ни локального проигравшего, либо транзитивна, и тогда имеет ровно одного того и другого; значит \\(\\sum_i\\binom{w_i}{2}=\\sum_i\\binom{l_i}{2}\\). При \\(k=4\\) условие задачи говорит, что всякая четвёрка с локальным проигравшим обязательно имеет локального чемпиона:…"}],"relations":[{"id":"rel-all-union-1987-score-squares-imo-2010-c5","neighbor_id":"all-union-1987-final-9-tournament-score-squares","direction":"backward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-cmo-2006-max-cycle-triplets-imo-2010-c5","neighbor_id":"cmo-2006-p4-max-cycle-triplets-tournament","direction":"backward","type":"same_motif","distance":1,"status":"ai_checked"},{"id":"rel-cmo-2006-p4-imo-2010-c5-tournament-triples","neighbor_id":"cmo-2006-p4-cycle-triplets-tournament","direction":"backward","type":"same_motif","distance":1,"status":"ai_checked"},{"id":"rel-tournament-king-imo-2010-c5","neighbor_id":"tournament-king-radius-two","direction":"backward","type":"same_motif","distance":3,"status":"needs_human_review"},{"id":"rel-metadata-tree-euler-handshaking-imo-2010-c5-degree-sum","neighbor_id":"handshaking-lemma","direction":"backward","type":"prerequisite","distance":1,"status":"ai_checked"},{"id":"rel-official-expansion-imo-2021-c4-imo-2010-c5-tournament-degree","neighbor_id":"imo-2021-c4-anisotropy-menger","direction":"forward","type":"same_motif","distance":3,"status":"needs_human_review"}],"search_text":"imo-2010-c5-bad-company-tournament теннисный турнир без плохой четвёрки, imo shortlist 2010 c5 tournaments double_counting goal_proof 2010 aops wiki, 2010 imo shortlist problems https://wiki.artofproblemsolving.com/wiki/index.php/2010_imo_shortlist_problems https://www.imo-official.org/problems/imo2010sl.pdf imo imo 2010 shortlisted problems with solutions imo shortlist imo2010 imoshortlist imoshortlist2010 official_archive src-aops-imo-2010-shortlist src-imo-2010-shortlist statement with_solution ? imo 2010 shortlisted problems with solutions aops wiki, 2010 imo shortlist problems stmt-original условие needs_human_review в турнире \\(n\\ge4\\) игроков каждая пара сыграла ровно один матч без ничьих. плохой называется четвёрка игроков, где один проиграл трём остальным, а эти трое между собой образуют цикл побед. если плохих четвёрок нет, докажите, что \\(\\sum_i (w_i-l_i)^3\\ge0\\), где \\(w_i,l_i\\) — числа побед и поражений игрока. stmt-graph теннисный турнир без плохой четвёрки, imo shortlist 2010 c5 needs_human_review пусть \\(t\\) — турнир на \\(n\\ge4\\) вершинах. назовём плохой четвёркой множество из четырёх вершин, в котором одна вершина проигрывает трём остальным, а эти три вершины между собой образуют ориентированный цикл длины 3. если в \\(t\\) нет плохих четвёрок, то докажите, что \\(\\sum_{v\\in v(t)} (d^+(v)-d^-(v))^3\\ge0\\). tournament directed_graph degree cycle idea-source-reduction сведение по вершине-источнику официальное решение рассматривает структуру турнира и удаляет/выделяет вершины так, чтобы сохранить запрет плохой четвёрки. tournaments ai_checked idea-degree-sum сумма кубов степенных разностей неравенство доказывается через анализ исходящих и входящих степеней в ориентированном полном графе. double_counting ai_checked sol-degree-sum-full полное решение подсчётом сумм степеней в турнире ai_checked cycle complete_graph tournament double_counting будем говорить, что в компании из нескольких игроков игрок является локальным чемпионом, если он победил всех остальных в этой компании, и локальным проигравшим, если он всем остальным проиграл. для фиксированного \\(k\\) число пар вида «\\(k\\)-компания и её локальный чемпион» равно \\(\\sum_i \\binom{w_i}{k-1}\\), потому что к игроку \\(i\\) надо выбрать ещё \\(k-1\\) игроков из тех, кого он победил. число локальных проигравших в \\(k\\)-компаниях равно \\(\\sum_i \\binom{l_i}{k-1}\\). при \\(k=2\\) оба числа равны числу матчей, поэтому \\(\\sum_i(w_i-l_i)=0\\). при \\(k=3\\) каждая тройка либо является циклом, и тогда не имеет ни локального чемпиона, ни локального проигравшего, либо транзитивна, и тогда имеет ровно одного того и другого; значит \\(\\sum_i\\binom{w_i}{2}=\\sum_i\\binom{l_i}{2}\\). при \\(k=4\\) условие задачи говорит, что всякая четвёрка с локальным проигравшим обязательно имеет локального чемпиона:… imo-2010-c5-bad-company-tournament tennisnyy turnir bez plohoy chetverki, imo shortlist 2010 c5 tournaments double_counting goal_proof 2010 aops wiki, 2010 imo shortlist problems https://wiki.artofproblemsolving.com/wiki/index.php/2010_imo_shortlist_problems https://www.imo-official.org/problems/imo2010sl.pdf imo imo 2010 shortlisted problems with solutions imo shortlist imo2010 imoshortlist imoshortlist2010 official_archive src-aops-imo-2010-shortlist src-imo-2010-shortlist statement with_solution ? imo 2010 shortlisted problems with solutions aops wiki, 2010 imo shortlist problems stmt-original uslovie needs_human_review v turnire \\(n\\ge4\\) igrokov kazhdaya para sygrala rovno odin match bez nichih. plohoy nazyvaetsya chetverka igrokov, gde odin proigral trem ostalnym, a eti troe mezhdu soboy obrazuyut tsikl pobed. esli plohih chetverok net, dokazhite, chto \\(\\sum_i (w_i-l_i)^3\\ge0\\), gde \\(w_i,l_i\\) — chisla pobed i porazheniy igroka. stmt-graph tennisnyy turnir bez plohoy chetverki, imo shortlist 2010 c5 needs_human_review pust \\(t\\) — turnir na \\(n\\ge4\\) vershinah. nazovem plohoy chetverkoy mnozhestvo iz chetyreh vershin, v kotorom odna vershina proigryvaet trem ostalnym, a eti tri vershiny mezhdu soboy obrazuyut orientirovannyy tsikl dliny 3. esli v \\(t\\) net plohih chetverok, to dokazhite, chto \\(\\sum_{v\\in v(t)} (d^+(v)-d^-(v))^3\\ge0\\). tournament directed_graph degree cycle idea-source-reduction svedenie po vershine-istochniku ofitsialnoe reshenie rassmatrivaet strukturu turnira i udalyaet/vydelyaet vershiny tak, chtoby sohranit zapret plohoy chetverki. tournaments ai_checked idea-degree-sum summa kubov stepennyh raznostey neravenstvo dokazyvaetsya cherez analiz ishodyaschih i vhodyaschih stepeney v orientirovannom polnom grafe. double_counting ai_checked sol-degree-sum-full polnoe reshenie podschetom summ stepeney v turnire ai_checked cycle complete_graph tournament double_counting budem govorit, chto v kompanii iz neskolkih igrokov igrok yavlyaetsya lokalnym chempionom, esli on pobedil vseh ostalnyh v etoy kompanii, i lokalnym proigravshim, esli on vsem ostalnym proigral. dlya fiksirovannogo \\(k\\) chislo par vida «\\(k\\)-kompaniya i ee lokalnyy chempion» ravno \\(\\sum_i \\binom{w_i}{k-1}\\), potomu chto k igroku \\(i\\) nado vybrat esche \\(k-1\\) igrokov iz teh, kogo on pobedil. chislo lokalnyh proigravshih v \\(k\\)-kompaniyah ravno \\(\\sum_i \\binom{l_i}{k-1}\\). pri \\(k=2\\) oba chisla ravny chislu matchey, poetomu \\(\\sum_i(w_i-l_i)=0\\). pri \\(k=3\\) kazhdaya troyka libo yavlyaetsya tsiklom, i togda ne imeet ni lokalnogo chempiona, ni lokalnogo proigravshego, libo tranzitivna, i togda imeet rovno odnogo togo i drugogo; znachit \\(\\sum_i\\binom{w_i}{2}=\\sum_i\\binom{l_i}{2}\\). pri \\(k=4\\) uslovie zadachi govorit, chto vsyakaya chetverka s lokalnym proigravshim obyazatelno imeet lokalnogo chempiona:…","source_keys":["imo"]}
{"id":"kolmogorov-2008-round-2-high-league-problem-1","title":"Минимум сравнений для восстановления порядка турнира, Кубок Колмогорова 2008","path":"data\\problems\\kolmogorov\\kolmogorov-2008-round-2-high-league-problem-1.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/kolmogorov/kolmogorov-2008-round-2-high-league-problem-1.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#kolmogorov-2008-round-2-high-league-problem-1","source_key":"kolmogorov","source_label":"Кубок Колмогорова","source_titles":["Кубок Колмогорова 2008 официальный архив","Архив Кубка памяти А.Н. Колмогорова"],"year":"2008","type":"olympiad_problem","authors":[],"tags":["double_counting","tournaments","goal_exact_bound"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_medium","local_score":6,"comment":"Сложность оставлена на уровне national_final_medium; решение и основные метаданные проверены в проходе 2026-05-16.","status":"ai_checked"},"review_status":"ai_checked","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"official_plan_completed_by_ai","label":"официальный план, доведённый ИИ","status":"ai_checked","confidence":0.9,"basis":"high-reasoning проход 2026-05-16 по второй четверти списка official_outline_needs_work","notes":"Официальный/архивный план доведён high-reasoning агентом до локального русского доказательства; проверены условие, идеи, definition_ids, tags и связи в выбранном срезе.","audit_source":"manual-official-plan-completion-2026-05-16-second-quartile"},"statements":{"original":[{"id":"stmt-original","title":"Оригинальная формулировка","status":"ai_checked","text":"В круговом теннисном турнире участвуют \\(n\\) игроков. Нужно по таблице результатов однозначно определить, какой игрок занял какое место. За один вопрос разрешается спросить про сравнение мест двух игроков. Сколько вопросов достаточно в худшем случае?","definition_ids":["directed_graph","complete_graph","tournament"]}]},"solutions":[{"id":"sol-official-compressed","title":"Решение через сортировку игроков по местам","status":"ai_checked","definition_ids":["directed_graph","complete_graph","tournament"],"standard_idea_ids":["double_counting"],"tags":[],"has_text":true,"text_preview":"Будем считать игроков вершинами полного ориентированного графа турнира: для каждой пары игроков проводим стрелку от победителя личной встречи к проигравшему. Таблица результатов задает такой турнир на уже известных игроках. Искомое распределение мест — это некоторая нумерация этих `n` вершин местами от `1` до `n`; вопрос к жюри сравнивает номера двух выбранных вершин. Достаточная стратегия не требует угадывать эту нумерацию сразу. Нужно просто отсортировать игроков по их местам, используя разрешенные вопросы как обычные сравнения. Например, применим сортировку слиянием. Разобьем игроков на две почти равные группы, рекурсивно упорядочим каждую группу, а затем сольем два уже упорядоченных списка. При слиянии каждый вопрос сравнивает первых еще не поставленных игроков из двух списков; игрок, занявший более высокое место, записывается следующим. Если один список закончился, оставшиеся игрок…"}],"relations":[],"search_text":"kolmogorov-2008-round-2-high-league-problem-1 минимум сравнений для восстановления порядка турнира, кубок колмогорова 2008 double_counting tournaments goal_exact_bound 2008 https://turmath.ru/kolm/archive.php https://turmath.ru/kolm/files/archive/kolm12.zip kolmogorov kolmogorov2008 olympiad_archive src-kolmogorov-2008-official src-kolmogorov-archive with_solution архив кубка памяти а.н. колмогорова кубок колмогорова кубок колмогорова 2008 официальный архив кубокколмогорова кубокколмогорова2008 ? кубок колмогорова 2008 официальный архив архив кубка памяти а.н. колмогорова stmt-original оригинальная формулировка ai_checked в круговом теннисном турнире участвуют \\(n\\) игроков. нужно по таблице результатов однозначно определить, какой игрок занял какое место. за один вопрос разрешается спросить про сравнение мест двух игроков. сколько вопросов достаточно в худшем случае? directed_graph complete_graph tournament idea-graph-role графовая роль хотя в условии граф не упоминается, официальное решение явно и существенно переводит задачу в полный ориентированный граф турнира и далее рассуждает о нумерациях его вершин. ai_checked sol-official-compressed решение через сортировку игроков по местам ai_checked directed_graph complete_graph tournament double_counting будем считать игроков вершинами полного ориентированного графа турнира: для каждой пары игроков проводим стрелку от победителя личной встречи к проигравшему. таблица результатов задает такой турнир на уже известных игроках. искомое распределение мест — это некоторая нумерация этих `n` вершин местами от `1` до `n`; вопрос к жюри сравнивает номера двух выбранных вершин. достаточная стратегия не требует угадывать эту нумерацию сразу. нужно просто отсортировать игроков по их местам, используя разрешенные вопросы как обычные сравнения. например, применим сортировку слиянием. разобьем игроков на две почти равные группы, рекурсивно упорядочим каждую группу, а затем сольем два уже упорядоченных списка. при слиянии каждый вопрос сравнивает первых еще не поставленных игроков из двух списков; игрок, занявший более высокое место, записывается следующим. если один список закончился, оставшиеся игрок… kolmogorov-2008-round-2-high-league-problem-1 minimum sravneniy dlya vosstanovleniya poryadka turnira, kubok kolmogorova 2008 double_counting tournaments goal_exact_bound 2008 https://turmath.ru/kolm/archive.php https://turmath.ru/kolm/files/archive/kolm12.zip kolmogorov kolmogorov2008 olympiad_archive src-kolmogorov-2008-official src-kolmogorov-archive with_solution arhiv kubka pamyati a.n. kolmogorova kubok kolmogorova kubok kolmogorova 2008 ofitsialnyy arhiv kubokkolmogorova kubokkolmogorova2008 ? kubok kolmogorova 2008 ofitsialnyy arhiv arhiv kubka pamyati a.n. kolmogorova stmt-original originalnaya formulirovka ai_checked v krugovom tennisnom turnire uchastvuyut \\(n\\) igrokov. nuzhno po tablitse rezultatov odnoznachno opredelit, kakoy igrok zanyal kakoe mesto. za odin vopros razreshaetsya sprosit pro sravnenie mest dvuh igrokov. skolko voprosov dostatochno v hudshem sluchae? directed_graph complete_graph tournament idea-graph-role grafovaya rol hotya v uslovii graf ne upominaetsya, ofitsialnoe reshenie yavno i suschestvenno perevodit zadachu v polnyy orientirovannyy graf turnira i dalee rassuzhdaet o numeratsiyah ego vershin. ai_checked sol-official-compressed reshenie cherez sortirovku igrokov po mestam ai_checked directed_graph complete_graph tournament double_counting budem schitat igrokov vershinami polnogo orientirovannogo grafa turnira: dlya kazhdoy pary igrokov provodim strelku ot pobeditelya lichnoy vstrechi k proigravshemu. tablitsa rezultatov zadaet takoy turnir na uzhe izvestnyh igrokah. iskomoe raspredelenie mest — eto nekotoraya numeratsiya etih `n` vershin mestami ot `1` do `n`; vopros k zhyuri sravnivaet nomera dvuh vybrannyh vershin. dostatochnaya strategiya ne trebuet ugadyvat etu numeratsiyu srazu. nuzhno prosto otsortirovat igrokov po ih mestam, ispolzuya razreshennye voprosy kak obychnye sravneniya. naprimer, primenim sortirovku sliyaniem. razobem igrokov na dve pochti ravnye gruppy, rekursivno uporyadochim kazhduyu gruppu, a zatem solem dva uzhe uporyadochennyh spiska. pri sliyanii kazhdyy vopros sravnivaet pervyh esche ne postavlennyh igrokov iz dvuh spiskov; igrok, zanyavshiy bolee vysokoe mesto, zapisyvaetsya sleduyuschim. esli odin spisok zakonchilsya, ostavshiesya igrok…","source_keys":["kolmogorov"]}
{"id":"mmo-2008-athletes-arbiters-photos","title":"Спортсмены, арбитры и фотографии после турнира, ММО 2008","path":"data\\problems\\mmo\\mmo-2008-athletes-arbiters-photos.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/mmo/mmo-2008-athletes-arbiters-photos.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#mmo-2008-athletes-arbiters-photos","source_key":"mmo","source_label":"ММО","source_titles":["LXXI Московская математическая олимпиада 2008, официальный буклет решений"],"year":"2008","type":"olympiad_problem","authors":["Френкин Б.Р."],"tags":["degree_counting","graph_in_solution","goal_classification","construction","goal_exact_bound"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"regional","local_score":4,"comment":"ММО 2008, 10 класс, задача 4.","status":"source_verified"},"review_status":"ai_checked","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"official_complete_or_near_complete","status":"ai_checked","confidence":0.9,"basis":"официальный PDF решений MCCME/MMO 2008 и развёрнутое самодостаточное доказательство","notes":"Полное доказательство основано на первом официальном решении; достижимость двух подозрительных людей явно прописана в карточке.","label":"официальное полное/почти полное"},"statements":{"original":[{"id":"stmt-original","title":"Турнир, арбитры и стопка фотографий","status":"ai_checked","text":"Турнир, в котором участвовало 20 спортсменов, судили 10 арбитров. Каждый сыграл с каждым один раз, и каждую встречу судил ровно один арбитр. После окончания каждой игры оба участника фотографировались с арбитром. Через год после турнира была найдена стопка из всех этих фотографий (по фотографии неясно, кто на ней игроки, а кто арбитр). Оказалось, что не про каждого можно определить, кем он является: спортсменом или арбитром. Сколько могло быть таких людей?","definition_ids":[]}]},"solutions":[{"id":"sol-official-summary","title":"Подозрительные люди и обмен ролей","status":"ai_checked","definition_ids":["simple_graph","degree","neighborhood"],"standard_idea_ids":[],"tags":[],"has_text":true,"text_preview":"Ответ: 2. Будем говорить, что человек сфотографирован с другим человеком, если они вместе есть хотя бы на одной фотографии. Назовем человека подозрительным, если по стопке фотографий нельзя однозначно определить, спортсмен он или арбитр. Сначала докажем верхнюю оценку. В любой допустимой расшифровке стопки арбитр фотографируется только со спортсменами, поэтому он может быть сфотографирован не более чем с 20 людьми. Спортсмен же фотографируется со всеми остальными 19 спортсменами: с каждым из них у него была игра и после нее была общая фотография. Кроме того, хотя бы один арбитр судил его игры, значит спортсмен сфотографирован не менее чем с 20 людьми. Если человек подозрителен, то существуют допустимые расшифровки, в одной из которых он спортсмен, а в другой арбитр. Поэтому число людей, с которыми он сфотографирован, одновременно не меньше 20 и не больше 20, то есть равно 20. Рассмотрим…"}],"relations":[{"id":"rel-mmo-2008-athletes-arbiters-mmo-2023-hypergraph-club","neighbor_id":"mmo-2023-hypergraph-club-acquaintance-graph","direction":"forward","type":"same_motif","distance":3,"status":"needs_human_review"}],"search_text":"mmo-2008-athletes-arbiters-photos спортсмены, арбитры и фотографии после турнира, ммо 2008 degree_counting graph_in_solution goal_classification construction goal_exact_bound 2008 http://olympiads.mccme.ru/mmo/2008/solutions.pdf lxxi московская математическая олимпиада 2008, официальный буклет решений mmo mmo2008 problem_and_solution src-mmo-2008-solutions with_solution ммо ммо2008 френкин б.р. френкин б.р. lxxi московская математическая олимпиада 2008, официальный буклет решений stmt-original турнир, арбитры и стопка фотографий ai_checked турнир, в котором участвовало 20 спортсменов, судили 10 арбитров. каждый сыграл с каждым один раз, и каждую встречу судил ровно один арбитр. после окончания каждой игры оба участника фотографировались с арбитром. через год после турнира была найдена стопка из всех этих фотографий (по фотографии неясно, кто на ней игроки, а кто арбитр). оказалось, что не про каждого можно определить, кем он является: спортсменом или арбитром. сколько могло быть таких людей? idea-degree-20-ambiguity подозрительные люди имеют степень 20 в официальном решении человек, чей статус не определяется, должен появляться на фотографиях ровно с 20 людьми: у арбитра не больше 20 соседей, у спортсмена не меньше 20. если такой спортсмен имеет ровно 20 соседей, все его 19 матчей судил один и тот же арбитр, что оставляет только пару взаимозаменяемых статусов. degree_counting goal_classification ai_checked idea-swap-one-athlete-one-arbiter поменять местами спортсмена и его единственного арбитра для достижимости двух неоднозначных людей достаточно устроить так, чтобы один арбитр судил все 19 матчей одного спортсмена и не судил других матчей. тогда этого спортсмена и этого арбитра можно поменять ролями, а вся стопка фотографий останется совместимой с условиями. construction ai_checked sol-official-summary подозрительные люди и обмен ролей ai_checked simple_graph degree neighborhood ответ: 2. будем говорить, что человек сфотографирован с другим человеком, если они вместе есть хотя бы на одной фотографии. назовем человека подозрительным, если по стопке фотографий нельзя однозначно определить, спортсмен он или арбитр. сначала докажем верхнюю оценку. в любой допустимой расшифровке стопки арбитр фотографируется только со спортсменами, поэтому он может быть сфотографирован не более чем с 20 людьми. спортсмен же фотографируется со всеми остальными 19 спортсменами: с каждым из них у него была игра и после нее была общая фотография. кроме того, хотя бы один арбитр судил его игры, значит спортсмен сфотографирован не менее чем с 20 людьми. если человек подозрителен, то существуют допустимые расшифровки, в одной из которых он спортсмен, а в другой арбитр. поэтому число людей, с которыми он сфотографирован, одновременно не меньше 20 и не больше 20, то есть равно 20. рассмотрим… mmo-2008-athletes-arbiters-photos sportsmeny, arbitry i fotografii posle turnira, mmo 2008 degree_counting graph_in_solution goal_classification construction goal_exact_bound 2008 http://olympiads.mccme.ru/mmo/2008/solutions.pdf lxxi moskovskaya matematicheskaya olimpiada 2008, ofitsialnyy buklet resheniy mmo mmo2008 problem_and_solution src-mmo-2008-solutions with_solution mmo mmo2008 frenkin b.r. frenkin b.r. lxxi moskovskaya matematicheskaya olimpiada 2008, ofitsialnyy buklet resheniy stmt-original turnir, arbitry i stopka fotografiy ai_checked turnir, v kotorom uchastvovalo 20 sportsmenov, sudili 10 arbitrov. kazhdyy sygral s kazhdym odin raz, i kazhduyu vstrechu sudil rovno odin arbitr. posle okonchaniya kazhdoy igry oba uchastnika fotografirovalis s arbitrom. cherez god posle turnira byla naydena stopka iz vseh etih fotografiy (po fotografii neyasno, kto na ney igroki, a kto arbitr). okazalos, chto ne pro kazhdogo mozhno opredelit, kem on yavlyaetsya: sportsmenom ili arbitrom. skolko moglo byt takih lyudey? idea-degree-20-ambiguity podozritelnye lyudi imeyut stepen 20 v ofitsialnom reshenii chelovek, chey status ne opredelyaetsya, dolzhen poyavlyatsya na fotografiyah rovno s 20 lyudmi: u arbitra ne bolshe 20 sosedey, u sportsmena ne menshe 20. esli takoy sportsmen imeet rovno 20 sosedey, vse ego 19 matchey sudil odin i tot zhe arbitr, chto ostavlyaet tolko paru vzaimozamenyaemyh statusov. degree_counting goal_classification ai_checked idea-swap-one-athlete-one-arbiter pomenyat mestami sportsmena i ego edinstvennogo arbitra dlya dostizhimosti dvuh neodnoznachnyh lyudey dostatochno ustroit tak, chtoby odin arbitr sudil vse 19 matchey odnogo sportsmena i ne sudil drugih matchey. togda etogo sportsmena i etogo arbitra mozhno pomenyat rolyami, a vsya stopka fotografiy ostanetsya sovmestimoy s usloviyami. construction ai_checked sol-official-summary podozritelnye lyudi i obmen roley ai_checked simple_graph degree neighborhood otvet: 2. budem govorit, chto chelovek sfotografirovan s drugim chelovekom, esli oni vmeste est hotya by na odnoy fotografii. nazovem cheloveka podozritelnym, esli po stopke fotografiy nelzya odnoznachno opredelit, sportsmen on ili arbitr. snachala dokazhem verhnyuyu otsenku. v lyuboy dopustimoy rasshifrovke stopki arbitr fotografiruetsya tolko so sportsmenami, poetomu on mozhet byt sfotografirovan ne bolee chem s 20 lyudmi. sportsmen zhe fotografiruetsya so vsemi ostalnymi 19 sportsmenami: s kazhdym iz nih u nego byla igra i posle nee byla obschaya fotografiya. krome togo, hotya by odin arbitr sudil ego igry, znachit sportsmen sfotografirovan ne menee chem s 20 lyudmi. esli chelovek podozritelen, to suschestvuyut dopustimye rasshifrovki, v odnoy iz kotoryh on sportsmen, a v drugoy arbitr. poetomu chislo lyudey, s kotorymi on sfotografirovan, odnovremenno ne menshe 20 i ne bolshe 20, to est ravno 20. rassmotrim…","source_keys":["mmo"]}
{"id":"polish-mo-2022-ii-p6-badminton-euler-cycles","title":"Аннулирование половины матчей через эйлеровы циклы, Польская MO 2022 II/6","path":"data\\problems\\polish-mo\\polish-mo-2022-ii-p6-badminton-euler-cycles.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/polish-mo/polish-mo-2022-ii-p6-badminton-euler-cycles.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#polish-mo-2022-ii-p6-badminton-euler-cycles","source_key":"polish","source_label":"Польская MO","source_titles":["73. Olimpiada Matematyczna, второй этап, день 2, официальные условия","73. Olimpiada Matematyczna, второй этап, официальные решения"],"year":"2022","type":"olympiad_problem","authors":[],"tags":["eulerian_graphs","degree_counting","graph_model","goal_existence"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_medium","local_score":8,"comment":"Польская MO 2022, 73 OM, второй этап, задача 6; ключевой официальный шаг - граф ничейных двухматчевых встреч с чётными степенями и разложение на циклы.","status":"needs_human_review"},"review_status":"needs_human_review","public_ready":false,"solution_state":"with_solution","solution_classification":{"type":"official_complete_or_near_complete","status":"ai_checked","confidence":0.82,"basis":"официальный источник решения и несжатый текст решения","notes":"Текущий текст основан на официальном источнике и выглядит полным или почти полным.","label":"официальное полное/почти полное"},"statements":{"original":[{"id":"stmt-original","title":"Условие","status":"ai_checked","text":"В турнире по бадминтону участвовали \\(n\\) игроков, где \\(n\\) нечётно. Каждые два игрока сыграли между собой ровно два матча, ничьих не было. Оказалось, что каждый игрок выиграл столько же матчей, сколько проиграл. Докажите, что можно аннулировать ровно половину всех матчей так, чтобы и среди оставшихся зачётных матчей каждый игрок выиграл столько же матчей, сколько проиграл.","definition_ids":[]}],"graph_hint_reformulations":[{"id":"stmt-graph-hint","title":"","status":"ai_checked","text":"Для каждой пары игроков назовём их двухматчевую встречу ничейной, если каждый выиграл по одному матчу. Докажите, что граф ничейных двухматчевых встреч имеет все степени чётными, а затем выберите в каждой его компоненте по циклам ровно один из двух матчей каждой пары так, чтобы у каждой вершины удалялось поровну побед и поражений.","definition_ids":["eulerian_cycle"]}]},"solutions":[{"id":"sol-official-expanded","title":"Решение через разложение чётного графа на циклы","status":"ai_checked","definition_ids":["eulerian_cycle"],"standard_idea_ids":["double_counting"],"tags":[],"has_text":true,"text_preview":"Рассмотрим фиксированного игрока. Пусть он выиграл \\(a\\) двухматчевых встреч со счётом \\(2:0\\), проиграл \\(b\\) двухматчевых встреч со счётом \\(0:2\\), а ещё \\(c\\) двухматчевых встреч закончились для него счётом \\(1:1\\). Всего он сыграл с \\(n-1\\) соперниками, поэтому \\[ a+b+c=n-1. \\] По условию общее число его побед равно общему числу поражений. В односторонних двухматчевых встречах это даёт соответственно \\(2a\\) побед и \\(2b\\) поражений, а каждая ничейная встреча добавляет по одной победе и одному поражению. Значит \\[ 2a+c=2b+c, \\] откуда \\(a=b\\). Так как \\(n\\) нечётно, число \\(n-1\\) чётно, и потому \\[ c=n-1-2a \\] тоже чётно. Теперь обработаем односторонние двухматчевые встречи. В каждой такой паре матчей аннулируем произвольный один матч. Для данного игрока число его выигранных односторонних встреч равно числу проигранных, поэтому после этих аннулирований его баланс побед и поражений ср…"}],"relations":[{"id":"rel-all-union-1987-score-squares-polish-mo-2022-badminton","neighbor_id":"all-union-1987-final-9-tournament-score-squares","direction":"backward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-polish-mo-2022-badminton-kolmogorov-2021-volleyball","neighbor_id":"kolmogorov-2021-individual-olympiad-seniors-problem-1","direction":"forward","type":"same_motif","distance":2,"status":"needs_human_review"}],"search_text":"polish-mo-2022-ii-p6-badminton-euler-cycles аннулирование половины матчей через эйлеровы циклы, польская mo 2022 ii/6 eulerian_graphs degree_counting graph_model goal_existence 2022 73. olimpiada matematyczna, второй этап, день 2, официальные условия 73. olimpiada matematyczna, второй этап, официальные решения https://om.sem.edu.pl/static/app_main/problems/om73_2.pdf https://om.sem.edu.pl/static/app_main/problems/om73_2r.pdf polish polish2022 solution_notes src-polish-mo-2022-ii-p6-official-problems src-polish-mo-2022-ii-p6-official-solutions statement with_solution польская mo польскаяmo польскаяmo2022 ? 73. olimpiada matematyczna, второй этап, день 2, официальные условия 73. olimpiada matematyczna, второй этап, официальные решения stmt-original условие ai_checked в турнире по бадминтону участвовали \\(n\\) игроков, где \\(n\\) нечётно. каждые два игрока сыграли между собой ровно два матча, ничьих не было. оказалось, что каждый игрок выиграл столько же матчей, сколько проиграл. докажите, что можно аннулировать ровно половину всех матчей так, чтобы и среди оставшихся зачётных матчей каждый игрок выиграл столько же матчей, сколько проиграл. stmt-graph-hint ai_checked для каждой пары игроков назовём их двухматчевую встречу ничейной, если каждый выиграл по одному матчу. докажите, что граф ничейных двухматчевых встреч имеет все степени чётными, а затем выберите в каждой его компоненте по циклам ровно один из двух матчей каждой пары так, чтобы у каждой вершины удалялось поровну побед и поражений. eulerian_cycle idea-split-two-match-pairs сначала отделить односторонние двухматчевые пары если между двумя игроками один выиграл оба матча, то можно аннулировать любой один из этих двух матчей. баланс по числу выигранных и проигранных двухматчевых пар у каждого игрока одинаков, поэтому такие пары не мешают общей балансировке. degree_counting ai_checked idea-even-graph-cycle-orientation чётный граф раскладывается на циклы ничейные двухматчевые пары образуют граф, в котором степень каждой вершины чётна. рёбра такого графа можно разбить на циклы; обход каждого цикла задаёт, какой из двух матчей соответствующей пары нужно аннулировать. eulerian_graphs ai_checked sol-official-expanded решение через разложение чётного графа на циклы ai_checked eulerian_cycle double_counting рассмотрим фиксированного игрока. пусть он выиграл \\(a\\) двухматчевых встреч со счётом \\(2:0\\), проиграл \\(b\\) двухматчевых встреч со счётом \\(0:2\\), а ещё \\(c\\) двухматчевых встреч закончились для него счётом \\(1:1\\). всего он сыграл с \\(n-1\\) соперниками, поэтому \\[ a+b+c=n-1. \\] по условию общее число его побед равно общему числу поражений. в односторонних двухматчевых встречах это даёт соответственно \\(2a\\) побед и \\(2b\\) поражений, а каждая ничейная встреча добавляет по одной победе и одному поражению. значит \\[ 2a+c=2b+c, \\] откуда \\(a=b\\). так как \\(n\\) нечётно, число \\(n-1\\) чётно, и потому \\[ c=n-1-2a \\] тоже чётно. теперь обработаем односторонние двухматчевые встречи. в каждой такой паре матчей аннулируем произвольный один матч. для данного игрока число его выигранных односторонних встреч равно числу проигранных, поэтому после этих аннулирований его баланс побед и поражений ср… polish-mo-2022-ii-p6-badminton-euler-cycles annulirovanie poloviny matchey cherez eylerovy tsikly, polskaya mo 2022 ii/6 eulerian_graphs degree_counting graph_model goal_existence 2022 73. olimpiada matematyczna, vtoroy etap, den 2, ofitsialnye usloviya 73. olimpiada matematyczna, vtoroy etap, ofitsialnye resheniya https://om.sem.edu.pl/static/app_main/problems/om73_2.pdf https://om.sem.edu.pl/static/app_main/problems/om73_2r.pdf polish polish2022 solution_notes src-polish-mo-2022-ii-p6-official-problems src-polish-mo-2022-ii-p6-official-solutions statement with_solution polskaya mo polskayamo polskayamo2022 ? 73. olimpiada matematyczna, vtoroy etap, den 2, ofitsialnye usloviya 73. olimpiada matematyczna, vtoroy etap, ofitsialnye resheniya stmt-original uslovie ai_checked v turnire po badmintonu uchastvovali \\(n\\) igrokov, gde \\(n\\) nechetno. kazhdye dva igroka sygrali mezhdu soboy rovno dva matcha, nichih ne bylo. okazalos, chto kazhdyy igrok vyigral stolko zhe matchey, skolko proigral. dokazhite, chto mozhno annulirovat rovno polovinu vseh matchey tak, chtoby i sredi ostavshihsya zachetnyh matchey kazhdyy igrok vyigral stolko zhe matchey, skolko proigral. stmt-graph-hint ai_checked dlya kazhdoy pary igrokov nazovem ih dvuhmatchevuyu vstrechu nicheynoy, esli kazhdyy vyigral po odnomu matchu. dokazhite, chto graf nicheynyh dvuhmatchevyh vstrech imeet vse stepeni chetnymi, a zatem vyberite v kazhdoy ego komponente po tsiklam rovno odin iz dvuh matchey kazhdoy pary tak, chtoby u kazhdoy vershiny udalyalos porovnu pobed i porazheniy. eulerian_cycle idea-split-two-match-pairs snachala otdelit odnostoronnie dvuhmatchevye pary esli mezhdu dvumya igrokami odin vyigral oba matcha, to mozhno annulirovat lyuboy odin iz etih dvuh matchey. balans po chislu vyigrannyh i proigrannyh dvuhmatchevyh par u kazhdogo igroka odinakov, poetomu takie pary ne meshayut obschey balansirovke. degree_counting ai_checked idea-even-graph-cycle-orientation chetnyy graf raskladyvaetsya na tsikly nicheynye dvuhmatchevye pary obrazuyut graf, v kotorom stepen kazhdoy vershiny chetna. rebra takogo grafa mozhno razbit na tsikly; obhod kazhdogo tsikla zadaet, kakoy iz dvuh matchey sootvetstvuyuschey pary nuzhno annulirovat. eulerian_graphs ai_checked sol-official-expanded reshenie cherez razlozhenie chetnogo grafa na tsikly ai_checked eulerian_cycle double_counting rassmotrim fiksirovannogo igroka. pust on vyigral \\(a\\) dvuhmatchevyh vstrech so schetom \\(2:0\\), proigral \\(b\\) dvuhmatchevyh vstrech so schetom \\(0:2\\), a esche \\(c\\) dvuhmatchevyh vstrech zakonchilis dlya nego schetom \\(1:1\\). vsego on sygral s \\(n-1\\) sopernikami, poetomu \\[ a+b+c=n-1. \\] po usloviyu obschee chislo ego pobed ravno obschemu chislu porazheniy. v odnostoronnih dvuhmatchevyh vstrechah eto daet sootvetstvenno \\(2a\\) pobed i \\(2b\\) porazheniy, a kazhdaya nicheynaya vstrecha dobavlyaet po odnoy pobede i odnomu porazheniyu. znachit \\[ 2a+c=2b+c, \\] otkuda \\(a=b\\). tak kak \\(n\\) nechetno, chislo \\(n-1\\) chetno, i potomu \\[ c=n-1-2a \\] tozhe chetno. teper obrabotaem odnostoronnie dvuhmatchevye vstrechi. v kazhdoy takoy pare matchey annuliruem proizvolnyy odin match. dlya dannogo igroka chislo ego vyigrannyh odnostoronnih vstrech ravno chislu proigrannyh, poetomu posle etih annulirovaniy ego balans pobed i porazheniy sr…","source_keys":["polish"]}
{"id":"round-robin-winner-count-hall-lemma","title":"Число разных победителей в произвольном наборе дней кругового турнира","path":"data\\problems\\classical\\round-robin-winner-count-hall-lemma.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/classical/round-robin-winner-count-hall-lemma.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#round-robin-winner-count-hall-lemma","source_key":"misc","source_label":"Прочее","source_titles":["Putnam 2012 B3, архивный источник"],"year":"","type":"lemma","authors":[],"tags":["matching","tournaments","double_counting","goal_existence","classical_lemma"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"classical_tool","local_score":4,"comment":"Короткая, но самостоятельная лемма о расписании и паросочетаниях: она упаковывает нетривиальную нижнюю оценку соседства для любых выбранных дней, которая затем напрямую подает условие Холла.","status":"ai_checked"},"review_status":"ai_checked","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"unofficial_published","label":"опубликованное неофициальное","status":"ai_checked","confidence":0.78,"basis":"агент high-reasoning extraction аудит","notes":"Извлечено из архива решений Putnam и развернуто самодостаточно.","audit_source":"agent-putnam-extraction-2026-05-05"},"statements":{"original":[{"id":"stmt-winner-count-days","title":"Лемма о числе победителей","status":"ai_checked","text":"Пусть \\(2n\\) команд играют полный круговой турнир за \\(2n-1\\) дней: в каждый день каждая команда играет ровно одну игру, в каждой игре есть один победитель и один проигравший, а за весь турнир каждая пара команд встречается ровно один раз. Для произвольного множества \\(D\\) дней обозначим через \\(W(D)\\) множество команд, которые выиграли хотя бы одну игру в один из дней из \\(D\\). Тогда \\(|W(D)|\\ge |D|\\).","definition_ids":["matching","complete_graph"]}],"graph_theory":[{"id":"stmt-one-factorization","title":"Ориентированная 1-факторизация","status":"ai_checked","text":"Пусть рёбра полного графа \\(K_{2n}\\) разбиты на \\(2n-1\\) совершенных паросочетаний \\(M_1,\\ldots,M_{2n-1}\\), и каждое ребро ориентировано. Для любого множества индексов \\(I\\) пусть \\(S(I)\\) — множество начальных вершин всех ориентированных рёбер, принадлежащих паросочетаниям \\(M_i\\) с \\(i\\in I\\). Тогда \\(|S(I)|\\ge |I|\\).","definition_ids":["complete_graph","matching","directed_graph","one_factorization"]}]},"solutions":[{"id":"sol-count-losses","title":"Подсчет поражений выбранной внешней команды","status":"ai_checked","definition_ids":["matching","complete_graph","directed_graph"],"standard_idea_ids":["double_counting"],"tags":[],"has_text":true,"text_preview":"Возьмем произвольное множество \\(D\\) из \\(m\\) дней. При \\(m=0\\) утверждение пусто, поэтому считаем \\(1\\le m\\le 2n-1\\). Пусть \\(W=W(D)\\) — множество команд, которые хотя бы раз выиграли в эти дни. Предположим, что \\(|W|<m\\). Тогда \\(|W|<2n\\), так что существует команда \\(x\\), не входящая в \\(W\\). В каждый день из \\(D\\) команда \\(x\\) играла ровно одну игру. Она не могла выиграть такую игру, иначе входила бы в \\(W\\). Значит, в каждый из \\(m\\) выбранных дней команда \\(x\\) проиграла. Ее соперники в этих \\(m\\) играх попарно различны, потому что в полном круговом турнире команда \\(x\\) встречается с каждой другой командой не более одного раза. Каждый из этих соперников выиграл соответствующую игру, а значит принадлежит \\(W\\). Получается, что в \\(W\\) лежат по крайней мере \\(m\\) различных команд, противоречие с \\(|W|<m\\). Следовательно, \\(|W(D)|\\ge |D|\\). Графовая формулировка получается тем же д…"}],"relations":[{"id":"rel-winner-count-lemma-putnam-2012-b3-prerequisite","neighbor_id":"putnam-2012-b3-round-robin-winners-hall","direction":"forward","type":"prerequisite","distance":1,"status":"ai_checked"},{"id":"rel-winner-count-lemma-hall-marriage-neighborhood","neighbor_id":"hall-marriage-theorem","direction":"forward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-winner-count-lemma-imo-1998-one-factorization-scheduling","neighbor_id":"imo-1998-c6-k-ge-6-one-factorization","direction":"forward","type":"same_motif","distance":3,"status":"needs_human_review"},{"id":"rel-winner-count-lemma-all-union-1987-tournament-loss-counting","neighbor_id":"all-union-1987-final-9-tournament-score-squares","direction":"forward","type":"same_motif","distance":3,"status":"ai_checked"},{"id":"rel-winner-count-lemma-imc2011-hall-applications","neighbor_id":"imc-2011-day2-p2b-tripartite-three-quarter-perfect-cover","direction":"forward","type":"same_motif","distance":3,"status":"ai_checked"}],"search_text":"round-robin-winner-count-hall-lemma число разных победителей в произвольном наборе дней кругового турнира matching tournaments double_counting goal_existence classical_lemma archive_statement https://kskedlaya.org/putnam-archive/2012.pdf misc putnam 2012 b3, архивный источник src-putnam-2012-b3-kedlaya with_solution прочее ? putnam 2012 b3, архивный источник stmt-winner-count-days лемма о числе победителей ai_checked пусть \\(2n\\) команд играют полный круговой турнир за \\(2n-1\\) дней: в каждый день каждая команда играет ровно одну игру, в каждой игре есть один победитель и один проигравший, а за весь турнир каждая пара команд встречается ровно один раз. для произвольного множества \\(d\\) дней обозначим через \\(w(d)\\) множество команд, которые выиграли хотя бы одну игру в один из дней из \\(d\\). тогда \\(|w(d)|\\ge |d|\\). matching complete_graph stmt-one-factorization ориентированная 1-факторизация ai_checked пусть рёбра полного графа \\(k_{2n}\\) разбиты на \\(2n-1\\) совершенных паросочетаний \\(m_1,\\ldots,m_{2n-1}\\), и каждое ребро ориентировано. для любого множества индексов \\(i\\) пусть \\(s(i)\\) — множество начальных вершин всех ориентированных рёбер, принадлежащих паросочетаниям \\(m_i\\) с \\(i\\in i\\). тогда \\(|s(i)|\\ge |i|\\). complete_graph matching directed_graph one_factorization idea-outsider-loses-to-all-days команда вне множества победителей проигрывает каждый выбранный день если выбранные дни имеют слишком мало разных победителей, то найдется команда, которая не выигрывала ни в один из этих дней; она обязана проиграть в каждый выбранный день. tournaments double_counting ai_checked idea-distinct-opponents-force-count соперники в этих поражениях различны в полном круговом турнире одна и та же пара команд встречается только один раз, поэтому поражения одной команды в \\(m\\) выбранных дней происходят от \\(m\\) различных победителей. tournaments double_counting ai_checked idea-hall-neighborhood оценка является готовым условием холла если дни соединить с командами-победителями, то лемма утверждает, что любое множество левых вершин имеет не меньше соседей, чем его размер. matching graph_model ai_checked sol-count-losses подсчет поражений выбранной внешней команды ai_checked matching complete_graph directed_graph double_counting возьмем произвольное множество \\(d\\) из \\(m\\) дней. при \\(m=0\\) утверждение пусто, поэтому считаем \\(1\\le m\\le 2n-1\\). пусть \\(w=w(d)\\) — множество команд, которые хотя бы раз выиграли в эти дни. предположим, что \\(|w|<m\\). тогда \\(|w|<2n\\), так что существует команда \\(x\\), не входящая в \\(w\\). в каждый день из \\(d\\) команда \\(x\\) играла ровно одну игру. она не могла выиграть такую игру, иначе входила бы в \\(w\\). значит, в каждый из \\(m\\) выбранных дней команда \\(x\\) проиграла. ее соперники в этих \\(m\\) играх попарно различны, потому что в полном круговом турнире команда \\(x\\) встречается с каждой другой командой не более одного раза. каждый из этих соперников выиграл соответствующую игру, а значит принадлежит \\(w\\). получается, что в \\(w\\) лежат по крайней мере \\(m\\) различных команд, противоречие с \\(|w|<m\\). следовательно, \\(|w(d)|\\ge |d|\\). графовая формулировка получается тем же д… round-robin-winner-count-hall-lemma chislo raznyh pobediteley v proizvolnom nabore dney krugovogo turnira matching tournaments double_counting goal_existence classical_lemma archive_statement https://kskedlaya.org/putnam-archive/2012.pdf misc putnam 2012 b3, arhivnyy istochnik src-putnam-2012-b3-kedlaya with_solution prochee ? putnam 2012 b3, arhivnyy istochnik stmt-winner-count-days lemma o chisle pobediteley ai_checked pust \\(2n\\) komand igrayut polnyy krugovoy turnir za \\(2n-1\\) dney: v kazhdyy den kazhdaya komanda igraet rovno odnu igru, v kazhdoy igre est odin pobeditel i odin proigravshiy, a za ves turnir kazhdaya para komand vstrechaetsya rovno odin raz. dlya proizvolnogo mnozhestva \\(d\\) dney oboznachim cherez \\(w(d)\\) mnozhestvo komand, kotorye vyigrali hotya by odnu igru v odin iz dney iz \\(d\\). togda \\(|w(d)|\\ge |d|\\). matching complete_graph stmt-one-factorization orientirovannaya 1-faktorizatsiya ai_checked pust rebra polnogo grafa \\(k_{2n}\\) razbity na \\(2n-1\\) sovershennyh parosochetaniy \\(m_1,\\ldots,m_{2n-1}\\), i kazhdoe rebro orientirovano. dlya lyubogo mnozhestva indeksov \\(i\\) pust \\(s(i)\\) — mnozhestvo nachalnyh vershin vseh orientirovannyh reber, prinadlezhaschih parosochetaniyam \\(m_i\\) s \\(i\\in i\\). togda \\(|s(i)|\\ge |i|\\). complete_graph matching directed_graph one_factorization idea-outsider-loses-to-all-days komanda vne mnozhestva pobediteley proigryvaet kazhdyy vybrannyy den esli vybrannye dni imeyut slishkom malo raznyh pobediteley, to naydetsya komanda, kotoraya ne vyigryvala ni v odin iz etih dney; ona obyazana proigrat v kazhdyy vybrannyy den. tournaments double_counting ai_checked idea-distinct-opponents-force-count soperniki v etih porazheniyah razlichny v polnom krugovom turnire odna i ta zhe para komand vstrechaetsya tolko odin raz, poetomu porazheniya odnoy komandy v \\(m\\) vybrannyh dney proishodyat ot \\(m\\) razlichnyh pobediteley. tournaments double_counting ai_checked idea-hall-neighborhood otsenka yavlyaetsya gotovym usloviem holla esli dni soedinit s komandami-pobeditelyami, to lemma utverzhdaet, chto lyuboe mnozhestvo levyh vershin imeet ne menshe sosedey, chem ego razmer. matching graph_model ai_checked sol-count-losses podschet porazheniy vybrannoy vneshney komandy ai_checked matching complete_graph directed_graph double_counting vozmem proizvolnoe mnozhestvo \\(d\\) iz \\(m\\) dney. pri \\(m=0\\) utverzhdenie pusto, poetomu schitaem \\(1\\le m\\le 2n-1\\). pust \\(w=w(d)\\) — mnozhestvo komand, kotorye hotya by raz vyigrali v eti dni. predpolozhim, chto \\(|w|<m\\). togda \\(|w|<2n\\), tak chto suschestvuet komanda \\(x\\), ne vhodyaschaya v \\(w\\). v kazhdyy den iz \\(d\\) komanda \\(x\\) igrala rovno odnu igru. ona ne mogla vyigrat takuyu igru, inache vhodila by v \\(w\\). znachit, v kazhdyy iz \\(m\\) vybrannyh dney komanda \\(x\\) proigrala. ee soperniki v etih \\(m\\) igrah poparno razlichny, potomu chto v polnom krugovom turnire komanda \\(x\\) vstrechaetsya s kazhdoy drugoy komandoy ne bolee odnogo raza. kazhdyy iz etih sopernikov vyigral sootvetstvuyuschuyu igru, a znachit prinadlezhit \\(w\\). poluchaetsya, chto v \\(w\\) lezhat po krayney mere \\(m\\) razlichnyh komand, protivorechie s \\(|w|<m\\). sledovatelno, \\(|w(d)|\\ge |d|\\). grafovaya formulirovka poluchaetsya tem zhe d…","source_keys":["misc","putnam"]}
{"id":"tc-2015-16-connectivity-query-lower-bound","title":"Проверка связности за вопросы о дорогах, Турнир городов 2015/16","path":"data\\problems\\tournament-cities\\tc-2015-16-connectivity-query-lower-bound.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/tournament-cities/tc-2015-16-connectivity-query-lower-bound.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#tc-2015-16-connectivity-query-lower-bound","source_key":"tc","source_label":"Турнир городов","source_titles":["Задача 65735, Турнир городов 2015/16, весенний тур, сложный вариант, 10-11 класс"],"year":"2015","type":"olympiad_problem","authors":["Кноп К.А."],"tags":["connectivity","trees","goal_exact_bound"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_medium","local_score":8,"comment":"Весенний сложный тур 2015/16, 10-11 класс, задача на 8 баллов.","status":"ai_checked"},"review_status":"needs_human_review","public_ready":false,"solution_state":"with_solution","solution_classification":{"type":"unofficial_published","status":"ai_checked","confidence":0.78,"basis":"неофициальный опубликованный источник или признак опубликованного решения","notes":"Решение опубликовано не в официальном архиве; источник надо отличать от официального.","label":"опубликованное неофициальное"},"statements":{"original":[{"id":"stmt-original","title":"64 города и вопросы о дорогах","status":"ai_checked","text":"В стране 64 города, некоторые пары из них соединены дорогой, но нам неизвестно, какие именно. Можно выбрать любую пару городов и получить ответ на вопрос: есть ли дорога между ними? Нужно узнать, можно ли в этой стране добраться от любого города до любого другого, двигаясь по дорогам. Докажите, что не существует алгоритма, позволяющего сделать это менее чем за 2016 вопросов.","definition_ids":["connected_graph","complete_graph","tree","cycle"]}],"graph_theory":[{"id":"stmt-graph","title":"Проверка связности за вопросы о дорогах, Турнир городов 2015/16","status":"ai_checked","text":"Пусть \\(N\\ge 2\\). Неизвестен простой граф на \\(N\\) вершинах. За один вопрос можно узнать, принадлежит ли выбранная пара вершин множеству рёбер. Докажите, что любое детерминированное дерево решений, которое всегда правильно определяет связность графа, в худшем случае должно спросить обо всех \\(\\binom{N}{2}\\) парах вершин.","definition_ids":["simple_graph","connected_graph","tree"]}]},"solutions":[{"id":"sol-adversary-cycle-bridge","title":"Стратегия противника через циклы и мосты","status":"ai_checked","definition_ids":["connected_graph","cycle","tree","complete_graph"],"standard_idea_ids":["extremal_choice","delete_to_simplify"],"tags":[],"has_text":true,"text_preview":"Представим полный граф на 64 вершинах: непроверенные пары считаются белыми, положительные ответы — чёрными, отрицательные — удалёнными. Когда алгоритм спрашивает про белое ребро, противник удаляет его, если оно лежит на цикле текущего графа из чёрных и белых рёбер; иначе объявляет его чёрным. Такой ход сохраняет связность текущего графа, а чёрные рёбра никогда не образуют цикл. Перед последним вопросом остаётся одно белое ребро, циклов уже нет, значит весь текущий граф — дерево. Если последнее ребро удалить, связность нарушится; если сохранить, граф останется связным. Поэтому до последнего вопроса алгоритм не может знать правильный ответ."}],"relations":[{"id":"rel-tree-connectivity-query-2015","neighbor_id":"tree-equivalent-properties","direction":"backward","type":"prerequisite","distance":1,"status":"ai_checked"},{"id":"rel-state-game-connectivity-query","neighbor_id":"tc-2018-19-complex-state-cycle-game","direction":"backward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-cycles-redundancy-1980-2015","neighbor_id":"tc-1980-distinct-rows-delete-column","direction":"backward","type":"same_motif","distance":2,"status":"ai_checked"},{"id":"rel-connectivity-query-imo-2024-c4","neighbor_id":"imo-2024-c4-turbo-grid-monsters-two-attempts-lower-bound","direction":"forward","type":"same_motif","distance":2,"status":"ai_checked"}],"search_text":"tc-2015-16-connectivity-query-lower-bound проверка связности за вопросы о дорогах, турнир городов 2015/16 connectivity trees goal_exact_bound 2015 https://problems.ru/view_problem_details_new.php?id=65735 olympiad_archive src-problems-65735 tc tc2015 with_solution задача 65735, турнир городов 2015/16, весенний тур, сложный вариант, 10-11 класс кноп к.а. турнир городов турниргородов турниргородов2015 кноп к.а. задача 65735, турнир городов 2015/16, весенний тур, сложный вариант, 10-11 класс stmt-original 64 города и вопросы о дорогах ai_checked в стране 64 города, некоторые пары из них соединены дорогой, но нам неизвестно, какие именно. можно выбрать любую пару городов и получить ответ на вопрос: есть ли дорога между ними? нужно узнать, можно ли в этой стране добраться от любого города до любого другого, двигаясь по дорогам. докажите, что не существует алгоритма, позволяющего сделать это менее чем за 2016 вопросов. connected_graph complete_graph tree cycle stmt-graph проверка связности за вопросы о дорогах, турнир городов 2015/16 ai_checked пусть \\(n\\ge 2\\). неизвестен простой граф на \\(n\\) вершинах. за один вопрос можно узнать, принадлежит ли выбранная пара вершин множеству рёбер. докажите, что любое детерминированное дерево решений, которое всегда правильно определяет связность графа, в худшем случае должно спросить обо всех \\(\\binom{n}{2}\\) парах вершин. simple_graph connected_graph tree idea-adversary-keeps-spanning-tree-possible противник сохраняет дерево ответы на вопросы выбираются так, чтобы перед последним неизвестным ребром оставшийся смешанный граф был деревом: последнее ребро может как сохранить связность, так и разрушить её. connectivity trees ai_checked sol-adversary-cycle-bridge стратегия противника через циклы и мосты ai_checked connected_graph cycle tree complete_graph extremal_choice delete_to_simplify представим полный граф на 64 вершинах: непроверенные пары считаются белыми, положительные ответы — чёрными, отрицательные — удалёнными. когда алгоритм спрашивает про белое ребро, противник удаляет его, если оно лежит на цикле текущего графа из чёрных и белых рёбер; иначе объявляет его чёрным. такой ход сохраняет связность текущего графа, а чёрные рёбра никогда не образуют цикл. перед последним вопросом остаётся одно белое ребро, циклов уже нет, значит весь текущий граф — дерево. если последнее ребро удалить, связность нарушится; если сохранить, граф останется связным. поэтому до последнего вопроса алгоритм не может знать правильный ответ. tc-2015-16-connectivity-query-lower-bound proverka svyaznosti za voprosy o dorogah, turnir gorodov 2015/16 connectivity trees goal_exact_bound 2015 https://problems.ru/view_problem_details_new.php?id=65735 olympiad_archive src-problems-65735 tc tc2015 with_solution zadacha 65735, turnir gorodov 2015/16, vesenniy tur, slozhnyy variant, 10-11 klass knop k.a. turnir gorodov turnirgorodov turnirgorodov2015 knop k.a. zadacha 65735, turnir gorodov 2015/16, vesenniy tur, slozhnyy variant, 10-11 klass stmt-original 64 goroda i voprosy o dorogah ai_checked v strane 64 goroda, nekotorye pary iz nih soedineny dorogoy, no nam neizvestno, kakie imenno. mozhno vybrat lyubuyu paru gorodov i poluchit otvet na vopros: est li doroga mezhdu nimi? nuzhno uznat, mozhno li v etoy strane dobratsya ot lyubogo goroda do lyubogo drugogo, dvigayas po dorogam. dokazhite, chto ne suschestvuet algoritma, pozvolyayuschego sdelat eto menee chem za 2016 voprosov. connected_graph complete_graph tree cycle stmt-graph proverka svyaznosti za voprosy o dorogah, turnir gorodov 2015/16 ai_checked pust \\(n\\ge 2\\). neizvesten prostoy graf na \\(n\\) vershinah. za odin vopros mozhno uznat, prinadlezhit li vybrannaya para vershin mnozhestvu reber. dokazhite, chto lyuboe determinirovannoe derevo resheniy, kotoroe vsegda pravilno opredelyaet svyaznost grafa, v hudshem sluchae dolzhno sprosit obo vseh \\(\\binom{n}{2}\\) parah vershin. simple_graph connected_graph tree idea-adversary-keeps-spanning-tree-possible protivnik sohranyaet derevo otvety na voprosy vybirayutsya tak, chtoby pered poslednim neizvestnym rebrom ostavshiysya smeshannyy graf byl derevom: poslednee rebro mozhet kak sohranit svyaznost, tak i razrushit ee. connectivity trees ai_checked sol-adversary-cycle-bridge strategiya protivnika cherez tsikly i mosty ai_checked connected_graph cycle tree complete_graph extremal_choice delete_to_simplify predstavim polnyy graf na 64 vershinah: neproverennye pary schitayutsya belymi, polozhitelnye otvety — chernymi, otritsatelnye — udalennymi. kogda algoritm sprashivaet pro beloe rebro, protivnik udalyaet ego, esli ono lezhit na tsikle tekuschego grafa iz chernyh i belyh reber; inache obyavlyaet ego chernym. takoy hod sohranyaet svyaznost tekuschego grafa, a chernye rebra nikogda ne obrazuyut tsikl. pered poslednim voprosom ostaetsya odno beloe rebro, tsiklov uzhe net, znachit ves tekuschiy graf — derevo. esli poslednee rebro udalit, svyaznost narushitsya; esli sohranit, graf ostanetsya svyaznym. poetomu do poslednego voprosa algoritm ne mozhet znat pravilnyy otvet.","source_keys":["tc"]}
{"id":"tc-2020-21-gnomes-two-cycles-odd-n","title":"Два круглых столика гномов при нечётном n, Турнир городов 2020/21","path":"data\\problems\\tournament-cities\\tc-2020-21-gnomes-two-cycles-odd-n.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/tournament-cities/tc-2020-21-gnomes-two-cycles-odd-n.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#tc-2020-21-gnomes-two-cycles-odd-n","source_key":"tc","source_label":"Турнир городов","source_titles":["Задача 66880, Турнир городов 2020/21, осенний тур, сложный вариант"],"year":"2020","type":"olympiad_problem","authors":["Святловский М."],"tags":["hamiltonian_cycles","goal_construction","goal_existence"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_medium","local_score":6,"comment":"Нечётный режим исходной задачи Турнира городов 2020/21: конструктивная часть с принципом Дирихле на нечётном цикле.","status":"ai_checked"},"review_status":"needs_human_review","public_ready":false,"solution_state":"with_solution","solution_classification":{"type":"unofficial_published","status":"ai_checked","confidence":0.78,"basis":"неофициальный опубликованный источник или признак опубликованного решения","notes":"Решение опубликовано не в официальном архиве; источник надо отличать от официального.","label":"опубликованное неофициальное"},"statements":{"original":[{"id":"stmt-original","title":"Гномы за двумя столиками: нечётное n","status":"ai_checked","text":"Пусть \\(n>1\\) нечётно. За каждым из двух круглых столиков сидит по \\(n\\) гномов. Каждый гном дружит только со своими соседями по своему столику слева и справа. Добрый волшебник хочет, чтобы после его действий и любых действий злого волшебника всех \\(2n\\) гномов можно было рассадить за один круглый стол так, чтобы каждые два соседних гнома дружили между собой. Добрый волшебник может подружить \\(2n\\) пар гномов, а затем злой волшебник поссорит между собой \\(n\\) пар из этих \\(2n\\) новых пар. Докажите, что при нечётном \\(n\\) добрый волшебник может добиться желаемого, как бы ни действовал злой волшебник.","definition_ids":["cycle","degree"]}],"graph_theory":[{"id":"stmt-graph","title":"Два круглых столика гномов при нечётном n, Турнир городов 2020/21","status":"ai_checked","text":"Пусть \\(n>1\\) нечётно. Дан граф, являющийся объединением двух непересекающихся циклов длины \\(n\\). Докажите, что можно добавить \\(2n\\) новых рёбер так, что после удаления любых \\(n\\) из добавленных рёбер в полученном графе всё ещё будет гамильтонов цикл.","definition_ids":["cycle","hamiltonian_cycle"]}]},"solutions":[{"id":"sol-odd-bridge-strategy","title":"Стратегия доброго волшебника","status":"ai_checked","definition_ids":["cycle","hamiltonian_cycle"],"standard_idea_ids":["pigeonhole_principle"],"tags":[],"has_text":true,"text_preview":"Обозначим гномов за двумя столиками через \\(A_1,\\ldots,A_n\\) и \\(B_1,\\ldots,B_n\\) в циклическом порядке, индексы считаем по модулю \\(n\\). Пусть \\(n=2k-1\\). Добрый волшебник добавляет рёбра \\(A_iB_i\\) и \\(A_iB_{i+1}\\) для всех \\(i\\). После того как злой волшебник удалит \\(n\\) из этих \\(2n\\) рёбер, в одной из двух систем останется хотя бы \\(k\\) рёбер. На нечётном цикле длины \\(2k-1\\) любые \\(k\\) выбранных позиций содержат две соседние. Значит, в одной системе уцелели две соседние перемычки. Разрезав оба исходных цикла в соответствующих местах и пройдя по двум уцелевшим перемычкам, получаем один цикл через все \\(2n\\) вершин. Поэтому при нечётном \\(n\\) добрый волшебник может гарантировать нужную рассадку."}],"relations":[{"id":"rel-gnomes-two-cycles-odd-even-n","neighbor_id":"tc-2020-21-gnomes-two-cycles-even-n","direction":"forward","type":"paired_variant","distance":1,"status":"ai_checked"},{"id":"rel-gnomes-imo-2024-c3","neighbor_id":"imo-2024-c3-knights-chord-uncrossing","direction":"forward","type":"same_motif","distance":3,"status":"ai_checked"}],"search_text":"tc-2020-21-gnomes-two-cycles-odd-n два круглых столика гномов при нечётном n, турнир городов 2020/21 hamiltonian_cycles goal_construction goal_existence 2020 https://problems.ru/view_problem_details_new.php?id=66880 olympiad_archive src-problems-66880 tc tc2020 with_solution задача 66880, турнир городов 2020/21, осенний тур, сложный вариант святловский м. турнир городов турниргородов турниргородов2020 святловский м. задача 66880, турнир городов 2020/21, осенний тур, сложный вариант stmt-original гномы за двумя столиками: нечётное n ai_checked пусть \\(n>1\\) нечётно. за каждым из двух круглых столиков сидит по \\(n\\) гномов. каждый гном дружит только со своими соседями по своему столику слева и справа. добрый волшебник хочет, чтобы после его действий и любых действий злого волшебника всех \\(2n\\) гномов можно было рассадить за один круглый стол так, чтобы каждые два соседних гнома дружили между собой. добрый волшебник может подружить \\(2n\\) пар гномов, а затем злой волшебник поссорит между собой \\(n\\) пар из этих \\(2n\\) новых пар. докажите, что при нечётном \\(n\\) добрый волшебник может добиться желаемого, как бы ни действовал злой волшебник. cycle degree stmt-graph два круглых столика гномов при нечётном n, турнир городов 2020/21 ai_checked пусть \\(n>1\\) нечётно. дан граф, являющийся объединением двух непересекающихся циклов длины \\(n\\). докажите, что можно добавить \\(2n\\) новых рёбер так, что после удаления любых \\(n\\) из добавленных рёбер в полученном графе всё ещё будет гамильтонов цикл. cycle hamiltonian_cycle idea-two-shifted-bridge-families две сдвинутые системы перемычек добрый волшебник добавляет две циклически сдвинутые системы рёбер между столиками. после удаления половины новых рёбер в одной системе остаётся достаточно много перемычек; на нечётном цикле среди них обязательно найдутся две соседние, и они склеивают два старых цикла в один. hamiltonian_cycles ai_checked sol-odd-bridge-strategy стратегия доброго волшебника ai_checked cycle hamiltonian_cycle pigeonhole_principle обозначим гномов за двумя столиками через \\(a_1,\\ldots,a_n\\) и \\(b_1,\\ldots,b_n\\) в циклическом порядке, индексы считаем по модулю \\(n\\). пусть \\(n=2k-1\\). добрый волшебник добавляет рёбра \\(a_ib_i\\) и \\(a_ib_{i+1}\\) для всех \\(i\\). после того как злой волшебник удалит \\(n\\) из этих \\(2n\\) рёбер, в одной из двух систем останется хотя бы \\(k\\) рёбер. на нечётном цикле длины \\(2k-1\\) любые \\(k\\) выбранных позиций содержат две соседние. значит, в одной системе уцелели две соседние перемычки. разрезав оба исходных цикла в соответствующих местах и пройдя по двум уцелевшим перемычкам, получаем один цикл через все \\(2n\\) вершин. поэтому при нечётном \\(n\\) добрый волшебник может гарантировать нужную рассадку. tc-2020-21-gnomes-two-cycles-odd-n dva kruglyh stolika gnomov pri nechetnom n, turnir gorodov 2020/21 hamiltonian_cycles goal_construction goal_existence 2020 https://problems.ru/view_problem_details_new.php?id=66880 olympiad_archive src-problems-66880 tc tc2020 with_solution zadacha 66880, turnir gorodov 2020/21, osenniy tur, slozhnyy variant svyatlovskiy m. turnir gorodov turnirgorodov turnirgorodov2020 svyatlovskiy m. zadacha 66880, turnir gorodov 2020/21, osenniy tur, slozhnyy variant stmt-original gnomy za dvumya stolikami: nechetnoe n ai_checked pust \\(n>1\\) nechetno. za kazhdym iz dvuh kruglyh stolikov sidit po \\(n\\) gnomov. kazhdyy gnom druzhit tolko so svoimi sosedyami po svoemu stoliku sleva i sprava. dobryy volshebnik hochet, chtoby posle ego deystviy i lyubyh deystviy zlogo volshebnika vseh \\(2n\\) gnomov mozhno bylo rassadit za odin kruglyy stol tak, chtoby kazhdye dva sosednih gnoma druzhili mezhdu soboy. dobryy volshebnik mozhet podruzhit \\(2n\\) par gnomov, a zatem zloy volshebnik possorit mezhdu soboy \\(n\\) par iz etih \\(2n\\) novyh par. dokazhite, chto pri nechetnom \\(n\\) dobryy volshebnik mozhet dobitsya zhelaemogo, kak by ni deystvoval zloy volshebnik. cycle degree stmt-graph dva kruglyh stolika gnomov pri nechetnom n, turnir gorodov 2020/21 ai_checked pust \\(n>1\\) nechetno. dan graf, yavlyayuschiysya obedineniem dvuh neperesekayuschihsya tsiklov dliny \\(n\\). dokazhite, chto mozhno dobavit \\(2n\\) novyh reber tak, chto posle udaleniya lyubyh \\(n\\) iz dobavlennyh reber v poluchennom grafe vse esche budet gamiltonov tsikl. cycle hamiltonian_cycle idea-two-shifted-bridge-families dve sdvinutye sistemy peremychek dobryy volshebnik dobavlyaet dve tsiklicheski sdvinutye sistemy reber mezhdu stolikami. posle udaleniya poloviny novyh reber v odnoy sisteme ostaetsya dostatochno mnogo peremychek; na nechetnom tsikle sredi nih obyazatelno naydutsya dve sosednie, i oni skleivayut dva staryh tsikla v odin. hamiltonian_cycles ai_checked sol-odd-bridge-strategy strategiya dobrogo volshebnika ai_checked cycle hamiltonian_cycle pigeonhole_principle oboznachim gnomov za dvumya stolikami cherez \\(a_1,\\ldots,a_n\\) i \\(b_1,\\ldots,b_n\\) v tsiklicheskom poryadke, indeksy schitaem po modulyu \\(n\\). pust \\(n=2k-1\\). dobryy volshebnik dobavlyaet rebra \\(a_ib_i\\) i \\(a_ib_{i+1}\\) dlya vseh \\(i\\). posle togo kak zloy volshebnik udalit \\(n\\) iz etih \\(2n\\) reber, v odnoy iz dvuh sistem ostanetsya hotya by \\(k\\) reber. na nechetnom tsikle dliny \\(2k-1\\) lyubye \\(k\\) vybrannyh pozitsiy soderzhat dve sosednie. znachit, v odnoy sisteme utseleli dve sosednie peremychki. razrezav oba ishodnyh tsikla v sootvetstvuyuschih mestah i proydya po dvum utselevshim peremychkam, poluchaem odin tsikl cherez vse \\(2n\\) vershin. poetomu pri nechetnom \\(n\\) dobryy volshebnik mozhet garantirovat nuzhnuyu rassadku.","source_keys":["tc"]}
{"id":"ternary-nonzero-strings-perfect-matching","title":"Совершенное паросочетание на ненулевых троичных строках","path":"data\\problems\\classical\\ternary-nonzero-strings-perfect-matching.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/classical/ternary-nonzero-strings-perfect-matching.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#ternary-nonzero-strings-perfect-matching","source_key":"misc","source_label":"Прочее","source_titles":["Putnam 2025 A3, архивный источник"],"year":"","type":"lemma","authors":[],"tags":["matching","graph_model","goal_existence","classical_lemma"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"regional","local_score":3,"comment":"Короткая явная лемма о паросочетании: вся трудность в выборе первой ненулевой координаты, после чего паросочетание задаётся инволюцией.","status":"ai_checked"},"review_status":"ai_checked","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"official_complete_or_near_complete","label":"официальное полное/почти полное","status":"ai_checked","confidence":0.86,"basis":"агент high-reasoning extraction аудит","notes":"Извлечено из официального решения; лемма сверена с исходной карточкой.","audit_source":"manual-split-2026-05-05"},"statements":{"original":[{"id":"stmt-nonzero-ternary-strings","title":"Лемма о ненулевых троичных строках","status":"ai_checked","text":"Пусть \\(n\\ge1\\). Рассмотрим все строки длины \\(n\\) над алфавитом \\(\\{0,1,2\\}\\), кроме строки \\(0^n\\). Две строки считаются соседними, если они отличаются ровно в одной координате, причём значения в этой координате отличаются на 1. Тогда все ненулевые строки можно разбить на пары соседних строк.","definition_ids":["matching"]}],"graph_theory":[{"id":"stmt-graph","title":"Граф ненулевых троичных строк","status":"ai_checked","text":"Пусть \\(G_n\\) — граф на множестве вершин \\(\\{0,1,2\\}^n\\setminus\\{0^n\\}\\), где две вершины смежны тогда и только тогда, когда соответствующие строки отличаются ровно в одной координате на 1. Докажите, что \\(G_n\\) имеет совершенное паросочетание.","definition_ids":["matching"]}]},"solutions":[{"id":"sol-first-nonzero-involution","title":"Явное разбиение на пары","status":"ai_checked","definition_ids":["matching"],"standard_idea_ids":["invariant"],"tags":[],"has_text":true,"text_preview":"Возьмём произвольную ненулевую строку \\(x=(x_1,\\ldots,x_n)\\). Пусть \\(i\\) — первая координата, в которой \\(x_i\\ne0\\). Тогда \\(x_i\\) равно либо 1, либо 2. Определим строку \\(f(x)\\): все координаты, кроме \\(i\\)-й, оставим прежними, а в \\(i\\)-й заменим 1 на 2 или 2 на 1. Строка \\(f(x)\\) тоже ненулевая. Она отличается от \\(x\\) ровно в одной координате, и значение в этой координате изменилось на 1, значит \\(x\\) и \\(f(x)\\) смежны в \\(G_n\\). Кроме того, у \\(f(x)\\) первая ненулевая координата снова равна \\(i\\), поскольку все координаты перед \\(i\\) остались нулевыми, а \\(i\\)-я осталась ненулевой. Поэтому повторное применение той же операции возвращает исходную строку: \\(f(f(x))=x\\). Наконец, \\(f(x)\\ne x\\) для любой ненулевой строки. Значит, \\(f\\) является инволюцией без неподвижных точек на множестве вершин \\(G_n\\). Разобьём вершины на двухэлементные орбиты \\(\\{x,f(x)\\}\\). Каждая такая орбита яв…"}],"relations":[{"id":"rel-ternary-nonzero-matching-hall-explicit-vs-existence","neighbor_id":"hall-marriage-theorem","direction":"forward","type":"same_motif","distance":3,"status":"ai_checked"},{"id":"rel-ternary-nonzero-matching-imo-1994-pairing-strategy","neighbor_id":"imo-1994-c6-infinite-grid-pairing-strategy","direction":"forward","type":"solution_transfer","distance":2,"status":"ai_checked"},{"id":"rel-ternary-nonzero-matching-regular-bipartite-decomposition","neighbor_id":"regular-bipartite-perfect-matching-decomposition","direction":"forward","type":"same_motif","distance":3,"status":"needs_human_review"},{"id":"rel-ternary-nonzero-matching-simon-marais-2024-tripairable","neighbor_id":"simon-marais-2024-a2-tripairable-perfect-matching","direction":"forward","type":"same_motif","distance":3,"status":"ai_checked"},{"id":"rel-ternary-nonzero-matching-egmo-2022-domino-parity","neighbor_id":"egmo-2022-p5-domino-parity-bipartite-matching","direction":"forward","type":"same_motif","distance":4,"status":"needs_human_review"},{"id":"rel-putnam-2025-a3-ternary-matching-lemma","neighbor_id":"putnam-2025-a3-ternary-string-game-perfect-matching","direction":"backward","type":"prerequisite","distance":1,"status":"ai_checked"}],"search_text":"ternary-nonzero-strings-perfect-matching совершенное паросочетание на ненулевых троичных строках matching graph_model goal_existence classical_lemma https://maa.org/wp-content/uploads/2026/02/2025officialsolutions.pdf misc problem_and_solution putnam 2025 a3, архивный источник src-putnam-2025-a3-official with_solution прочее ? putnam 2025 a3, архивный источник stmt-nonzero-ternary-strings лемма о ненулевых троичных строках ai_checked пусть \\(n\\ge1\\). рассмотрим все строки длины \\(n\\) над алфавитом \\(\\{0,1,2\\}\\), кроме строки \\(0^n\\). две строки считаются соседними, если они отличаются ровно в одной координате, причём значения в этой координате отличаются на 1. тогда все ненулевые строки можно разбить на пары соседних строк. matching stmt-graph граф ненулевых троичных строк ai_checked пусть \\(g_n\\) — граф на множестве вершин \\(\\{0,1,2\\}^n\\setminus\\{0^n\\}\\), где две вершины смежны тогда и только тогда, когда соответствующие строки отличаются ровно в одной координате на 1. докажите, что \\(g_n\\) имеет совершенное паросочетание. matching idea-first-nonzero-coordinate первая ненулевая координата задаёт пару у ненулевой строки первая ненулевая координата равна 1 или 2; если заменить в ней 1 на 2 или 2 на 1, все предыдущие координаты останутся нулевыми, поэтому у партнёра первая ненулевая координата та же. matching ai_checked idea-fixed-point-free-involution инволюция без неподвижных точек даёт паросочетание операция смены 1 и 2 в первой ненулевой координате обратна сама себе и никогда не оставляет строку на месте. поэтому её орбиты — пары, а каждая пара соединена ребром графа. matching ai_checked sol-first-nonzero-involution явное разбиение на пары ai_checked matching invariant возьмём произвольную ненулевую строку \\(x=(x_1,\\ldots,x_n)\\). пусть \\(i\\) — первая координата, в которой \\(x_i\\ne0\\). тогда \\(x_i\\) равно либо 1, либо 2. определим строку \\(f(x)\\): все координаты, кроме \\(i\\)-й, оставим прежними, а в \\(i\\)-й заменим 1 на 2 или 2 на 1. строка \\(f(x)\\) тоже ненулевая. она отличается от \\(x\\) ровно в одной координате, и значение в этой координате изменилось на 1, значит \\(x\\) и \\(f(x)\\) смежны в \\(g_n\\). кроме того, у \\(f(x)\\) первая ненулевая координата снова равна \\(i\\), поскольку все координаты перед \\(i\\) остались нулевыми, а \\(i\\)-я осталась ненулевой. поэтому повторное применение той же операции возвращает исходную строку: \\(f(f(x))=x\\). наконец, \\(f(x)\\ne x\\) для любой ненулевой строки. значит, \\(f\\) является инволюцией без неподвижных точек на множестве вершин \\(g_n\\). разобьём вершины на двухэлементные орбиты \\(\\{x,f(x)\\}\\). каждая такая орбита яв… ternary-nonzero-strings-perfect-matching sovershennoe parosochetanie na nenulevyh troichnyh strokah matching graph_model goal_existence classical_lemma https://maa.org/wp-content/uploads/2026/02/2025officialsolutions.pdf misc problem_and_solution putnam 2025 a3, arhivnyy istochnik src-putnam-2025-a3-official with_solution prochee ? putnam 2025 a3, arhivnyy istochnik stmt-nonzero-ternary-strings lemma o nenulevyh troichnyh strokah ai_checked pust \\(n\\ge1\\). rassmotrim vse stroki dliny \\(n\\) nad alfavitom \\(\\{0,1,2\\}\\), krome stroki \\(0^n\\). dve stroki schitayutsya sosednimi, esli oni otlichayutsya rovno v odnoy koordinate, prichem znacheniya v etoy koordinate otlichayutsya na 1. togda vse nenulevye stroki mozhno razbit na pary sosednih strok. matching stmt-graph graf nenulevyh troichnyh strok ai_checked pust \\(g_n\\) — graf na mnozhestve vershin \\(\\{0,1,2\\}^n\\setminus\\{0^n\\}\\), gde dve vershiny smezhny togda i tolko togda, kogda sootvetstvuyuschie stroki otlichayutsya rovno v odnoy koordinate na 1. dokazhite, chto \\(g_n\\) imeet sovershennoe parosochetanie. matching idea-first-nonzero-coordinate pervaya nenulevaya koordinata zadaet paru u nenulevoy stroki pervaya nenulevaya koordinata ravna 1 ili 2; esli zamenit v ney 1 na 2 ili 2 na 1, vse predyduschie koordinaty ostanutsya nulevymi, poetomu u partnera pervaya nenulevaya koordinata ta zhe. matching ai_checked idea-fixed-point-free-involution involyutsiya bez nepodvizhnyh tochek daet parosochetanie operatsiya smeny 1 i 2 v pervoy nenulevoy koordinate obratna sama sebe i nikogda ne ostavlyaet stroku na meste. poetomu ee orbity — pary, a kazhdaya para soedinena rebrom grafa. matching ai_checked sol-first-nonzero-involution yavnoe razbienie na pary ai_checked matching invariant vozmem proizvolnuyu nenulevuyu stroku \\(x=(x_1,\\ldots,x_n)\\). pust \\(i\\) — pervaya koordinata, v kotoroy \\(x_i\\ne0\\). togda \\(x_i\\) ravno libo 1, libo 2. opredelim stroku \\(f(x)\\): vse koordinaty, krome \\(i\\)-y, ostavim prezhnimi, a v \\(i\\)-y zamenim 1 na 2 ili 2 na 1. stroka \\(f(x)\\) tozhe nenulevaya. ona otlichaetsya ot \\(x\\) rovno v odnoy koordinate, i znachenie v etoy koordinate izmenilos na 1, znachit \\(x\\) i \\(f(x)\\) smezhny v \\(g_n\\). krome togo, u \\(f(x)\\) pervaya nenulevaya koordinata snova ravna \\(i\\), poskolku vse koordinaty pered \\(i\\) ostalis nulevymi, a \\(i\\)-ya ostalas nenulevoy. poetomu povtornoe primenenie toy zhe operatsii vozvraschaet ishodnuyu stroku: \\(f(f(x))=x\\). nakonets, \\(f(x)\\ne x\\) dlya lyuboy nenulevoy stroki. znachit, \\(f\\) yavlyaetsya involyutsiey bez nepodvizhnyh tochek na mnozhestve vershin \\(g_n\\). razobem vershiny na dvuhelementnye orbity \\(\\{x,f(x)\\}\\). kazhdaya takaya orbita yav…","source_keys":["misc","putnam"]}
{"id":"usa-tst-2009-p6-tournament-gap-ordering","title":"Турнир с M-шаговой транзитивностью, USA TST 2009 P6","path":"data\\problems\\usa-tst\\usa-tst-2009-p6-tournament-gap-ordering.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/usa-tst/usa-tst-2009-p6-tournament-gap-ordering.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#usa-tst-2009-p6-tournament-gap-ordering","source_key":"usa","source_label":"USA TST","source_titles":["USA Team Selection Test 2009 (архив сообщества AoPS для печати)","Math StackExchange, Misha Lavrov on SCC ordering in tournaments","Math StackExchange, bof on cycles of all lengths in strong tournaments","ФЮМ 2009, первый тур (a), задача 7"],"year":"2009","type":"olympiad_problem","authors":["Gabriel Carroll"],"tags":["tournaments","connectivity","hamiltonian_cycles","goal_proof"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_hard","local_score":8,"comment":"Турнирная задача, где содержательное решение идёт через сильные компоненты и расширение циклов в сильных турнирах.","status":"ai_checked"},"review_status":"ai_checked","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"unofficial_published","status":"ai_checked","confidence":0.78,"basis":"non-официальный published source or published-solution marker","notes":"Решение опубликовано не в официальном архиве; источник надо отличать от официального.","label":"опубликованное неофициальное"},"statements":{"original":[{"id":"stmt-original","title":"Шахматный турнир","status":"ai_checked","text":"Пусть \\(N>M>1\\). В круговом шахматном турнире каждая пара игроков сыграла ровно одну партию без ничьих. Известно, что для любой последовательности из \\(M+1\\) различных игроков \\(P_0,P_1,\\ldots,P_M\\), в которой \\(P_{i-1}\\) победил \\(P_i\\) для всех \\(i=1,\\ldots,M\\), игрок \\(P_0\\) также победил \\(P_M\\). Докажите, что игроков можно занумеровать числами \\(1,2,\\ldots,N\\) так, что если \\(a\\ge b+M-1\\), то игрок \\(a\\) победил игрока \\(b\\).","definition_ids":[]}],"graph_theory":[{"id":"stmt-graph","title":"Турнир с M-шаговой транзитивностью","status":"ai_checked","text":"Пусть \\(T\\) — турнир на \\(N\\) вершинах. Предположим, что всякий ориентированный путь длины \\(M\\) имеет хорду из первой вершины в последнюю. Докажите, что вершины \\(T\\) можно упорядочить как \\(v_1,\\ldots,v_N\\) так, что для любых \\(i,j\\) с \\(j-i\\ge M-1\\) выполняется \\(v_j \\to v_i\\).","definition_ids":["tournament","path","cycle"]}],"olympiad_reformulations":[{"id":"stmt-fyum-2009-no-cycle-form","title":"FYUM 2009: формулировка без циклов","status":"ai_checked","text":"Даны натуральные числа \\(n>m>1\\). В полном \\(n\\)-вершинном ориентированном графе нет циклов из \\(m+1\\) вершины. Докажите, что вершины этого графа можно занумеровать числами от \\(1\\) до \\(n\\) так, что при любых \\(i\\) и \\(k\\), удовлетворяющих условию \\(i \\ge k+m-1\\), ребро направлено из \\(i\\)-й вершины в \\(k\\)-ю.","definition_ids":["tournament","cycle"]}]},"solutions":[{"id":"sol-components-hamiltonian-cycle","title":"Сильные компоненты и циклы всех длин в сильном турнире","status":"ai_checked","definition_ids":["tournament","path","cycle","strongly_connected_digraph","hamiltonian_cycle"],"standard_idea_ids":["extremal_choice"],"tags":[],"has_text":true,"text_preview":"Перейдём к турниру `T`: вершины — игроки, а ребро `x->y` означает, что `x` победил `y`. Сначала докажем используемую лемму. Если турнир сильно связен и содержит цикл `C=u_0->u_1->...->u_{k-1}->u_0` длины `k<n`, то в нём есть цикл длины `k+1`. Действительно, если найдётся вершина `v` вне `C`, для которой есть и ребро из `C` в `v`, и ребро из `v` в `C`, то при обходе цикла найдётся соседняя пара `u_i,u_{i+1}` с `u_i->v` и `v->u_{i+1}`; заменяем ребро `u_i->u_{i+1}` на два ребра через `v`. Иначе каждая внешняя вершина либо принимает все рёбра из `C`, либо посылает все рёбра в `C`. Обозначим через `V` первый класс, через `W` второй. В сильном турнире оба класса непусты, и не может быть так, что все рёбра между ними идут из `W` в `V`; иначе из `V` нельзя было бы добраться до `C`. Значит, есть ребро `v->w` с `v` из `V` и `w` из `W`. Тогда `u_0->u_1->...->u_{k-2}->v->w->u_0` — цикл длины `k+1`…"}],"relations":[{"id":"rel-tournament-path-usa-tst-2009-p6","neighbor_id":"tournament-hamiltonian-path","direction":"backward","type":"prerequisite","distance":2,"status":"ai_checked"},{"id":"rel-king-usa-tst-2009-p6","neighbor_id":"tournament-king-radius-two","direction":"backward","type":"same_motif","distance":3,"status":"ai_checked"},{"id":"rel-spbmo-1996-9-p46-usa-tst-2009-p6-tournament-gap-ordering","neighbor_id":"spbmo-1996-9-p46-strongly-connected-tournament-orientations","direction":"backward","type":"same_motif","distance":2,"status":"ai_checked"}],"search_text":"usa-tst-2009-p6-tournament-gap-ordering турнир с m-шаговой транзитивностью, usa tst 2009 p6 tournaments connectivity hamiltonian_cycles goal_proof 2009 gabriel carroll gabrielcarroll https://artofproblemsolving.com/downloads/printable_post_collections/4639 https://math.stackexchange.com/questions/1233862/prove-every-strongly-connected-tournament-has-a-cycle-of-length-k-for-k-3-4 https://math.stackexchange.com/questions/2235899/two-vertices-which-dont-lie-in-a-common-cycle-in-a-tournament https://www.guas.info/competit/fest/fest20/tur1a.tex math stackexchange, bof on cycles of all lengths in strong tournaments math stackexchange, misha lavrov on scc ordering in tournaments olympiad_archive secondary_archive secondary_solution src-fyum-2009-tur1a-p7-official src-mse-strong-tournament-cycles-bof src-mse-tournament-scc-ordering-lavrov src-usa-tst-2009-aops-community usa usa team selection test 2009 (архив сообщества aops для печати) usa tst usa2009 usatst usatst2009 with_solution фюм 2009, первый тур (a), задача 7 gabriel carroll usa team selection test 2009 (архив сообщества aops для печати) math stackexchange, misha lavrov on scc ordering in tournaments math stackexchange, bof on cycles of all lengths in strong tournaments фюм 2009, первый тур (a), задача 7 stmt-original шахматный турнир ai_checked пусть \\(n>m>1\\). в круговом шахматном турнире каждая пара игроков сыграла ровно одну партию без ничьих. известно, что для любой последовательности из \\(m+1\\) различных игроков \\(p_0,p_1,\\ldots,p_m\\), в которой \\(p_{i-1}\\) победил \\(p_i\\) для всех \\(i=1,\\ldots,m\\), игрок \\(p_0\\) также победил \\(p_m\\). докажите, что игроков можно занумеровать числами \\(1,2,\\ldots,n\\) так, что если \\(a\\ge b+m-1\\), то игрок \\(a\\) победил игрока \\(b\\). stmt-graph турнир с m-шаговой транзитивностью ai_checked пусть \\(t\\) — турнир на \\(n\\) вершинах. предположим, что всякий ориентированный путь длины \\(m\\) имеет хорду из первой вершины в последнюю. докажите, что вершины \\(t\\) можно упорядочить как \\(v_1,\\ldots,v_n\\) так, что для любых \\(i,j\\) с \\(j-i\\ge m-1\\) выполняется \\(v_j \\to v_i\\). tournament path cycle stmt-fyum-2009-no-cycle-form fyum 2009: формулировка без циклов ai_checked даны натуральные числа \\(n>m>1\\). в полном \\(n\\)-вершинном ориентированном графе нет циклов из \\(m+1\\) вершины. докажите, что вершины этого графа можно занумеровать числами от \\(1\\) до \\(n\\) так, что при любых \\(i\\) и \\(k\\), удовлетворяющих условию \\(i \\ge k+m-1\\), ребро направлено из \\(i\\)-й вершины в \\(k\\)-ю. tournament cycle idea-sccs-have-size-at-most-m сильные компоненты имеют размер не больше m если сильная компонента турнира имела бы хотя бы `m+1` вершин, то пансцикличность сильных турниров дала бы в ней ориентированный цикл длины `m+1`, что запрещено условием о путях длины `m`. tournaments connectivity ai_checked idea-order-components-and-cycle-blocks упорядочить сильные компоненты и отдельно обработать блоки размера m конденсация турнира линейно упорядочена. после расположения компонент подряд между разными компонентами все нужные рёбра направлены назад, а внутри компоненты размера `m` достаточно выписать вершины вдоль гамильтонова цикла. tournaments hamiltonian_cycles ai_checked sol-components-hamiltonian-cycle сильные компоненты и циклы всех длин в сильном турнире ai_checked tournament path cycle strongly_connected_digraph hamiltonian_cycle extremal_choice перейдём к турниру `t`: вершины — игроки, а ребро `x->y` означает, что `x` победил `y`. сначала докажем используемую лемму. если турнир сильно связен и содержит цикл `c=u_0->u_1->...->u_{k-1}->u_0` длины `k<n`, то в нём есть цикл длины `k+1`. действительно, если найдётся вершина `v` вне `c`, для которой есть и ребро из `c` в `v`, и ребро из `v` в `c`, то при обходе цикла найдётся соседняя пара `u_i,u_{i+1}` с `u_i->v` и `v->u_{i+1}`; заменяем ребро `u_i->u_{i+1}` на два ребра через `v`. иначе каждая внешняя вершина либо принимает все рёбра из `c`, либо посылает все рёбра в `c`. обозначим через `v` первый класс, через `w` второй. в сильном турнире оба класса непусты, и не может быть так, что все рёбра между ними идут из `w` в `v`; иначе из `v` нельзя было бы добраться до `c`. значит, есть ребро `v->w` с `v` из `v` и `w` из `w`. тогда `u_0->u_1->...->u_{k-2}->v->w->u_0` — цикл длины `k+1`… usa-tst-2009-p6-tournament-gap-ordering turnir s m-shagovoy tranzitivnostyu, usa tst 2009 p6 tournaments connectivity hamiltonian_cycles goal_proof 2009 gabriel carroll gabrielcarroll https://artofproblemsolving.com/downloads/printable_post_collections/4639 https://math.stackexchange.com/questions/1233862/prove-every-strongly-connected-tournament-has-a-cycle-of-length-k-for-k-3-4 https://math.stackexchange.com/questions/2235899/two-vertices-which-dont-lie-in-a-common-cycle-in-a-tournament https://www.guas.info/competit/fest/fest20/tur1a.tex math stackexchange, bof on cycles of all lengths in strong tournaments math stackexchange, misha lavrov on scc ordering in tournaments olympiad_archive secondary_archive secondary_solution src-fyum-2009-tur1a-p7-official src-mse-strong-tournament-cycles-bof src-mse-tournament-scc-ordering-lavrov src-usa-tst-2009-aops-community usa usa team selection test 2009 (arhiv soobschestva aops dlya pechati) usa tst usa2009 usatst usatst2009 with_solution fyum 2009, pervyy tur (a), zadacha 7 gabriel carroll usa team selection test 2009 (arhiv soobschestva aops dlya pechati) math stackexchange, misha lavrov on scc ordering in tournaments math stackexchange, bof on cycles of all lengths in strong tournaments fyum 2009, pervyy tur (a), zadacha 7 stmt-original shahmatnyy turnir ai_checked pust \\(n>m>1\\). v krugovom shahmatnom turnire kazhdaya para igrokov sygrala rovno odnu partiyu bez nichih. izvestno, chto dlya lyuboy posledovatelnosti iz \\(m+1\\) razlichnyh igrokov \\(p_0,p_1,\\ldots,p_m\\), v kotoroy \\(p_{i-1}\\) pobedil \\(p_i\\) dlya vseh \\(i=1,\\ldots,m\\), igrok \\(p_0\\) takzhe pobedil \\(p_m\\). dokazhite, chto igrokov mozhno zanumerovat chislami \\(1,2,\\ldots,n\\) tak, chto esli \\(a\\ge b+m-1\\), to igrok \\(a\\) pobedil igroka \\(b\\). stmt-graph turnir s m-shagovoy tranzitivnostyu ai_checked pust \\(t\\) — turnir na \\(n\\) vershinah. predpolozhim, chto vsyakiy orientirovannyy put dliny \\(m\\) imeet hordu iz pervoy vershiny v poslednyuyu. dokazhite, chto vershiny \\(t\\) mozhno uporyadochit kak \\(v_1,\\ldots,v_n\\) tak, chto dlya lyubyh \\(i,j\\) s \\(j-i\\ge m-1\\) vypolnyaetsya \\(v_j \\to v_i\\). tournament path cycle stmt-fyum-2009-no-cycle-form fyum 2009: formulirovka bez tsiklov ai_checked dany naturalnye chisla \\(n>m>1\\). v polnom \\(n\\)-vershinnom orientirovannom grafe net tsiklov iz \\(m+1\\) vershiny. dokazhite, chto vershiny etogo grafa mozhno zanumerovat chislami ot \\(1\\) do \\(n\\) tak, chto pri lyubyh \\(i\\) i \\(k\\), udovletvoryayuschih usloviyu \\(i \\ge k+m-1\\), rebro napravleno iz \\(i\\)-y vershiny v \\(k\\)-yu. tournament cycle idea-sccs-have-size-at-most-m silnye komponenty imeyut razmer ne bolshe m esli silnaya komponenta turnira imela by hotya by `m+1` vershin, to panstsiklichnost silnyh turnirov dala by v ney orientirovannyy tsikl dliny `m+1`, chto zaprescheno usloviem o putyah dliny `m`. tournaments connectivity ai_checked idea-order-components-and-cycle-blocks uporyadochit silnye komponenty i otdelno obrabotat bloki razmera m kondensatsiya turnira lineyno uporyadochena. posle raspolozheniya komponent podryad mezhdu raznymi komponentami vse nuzhnye rebra napravleny nazad, a vnutri komponenty razmera `m` dostatochno vypisat vershiny vdol gamiltonova tsikla. tournaments hamiltonian_cycles ai_checked sol-components-hamiltonian-cycle silnye komponenty i tsikly vseh dlin v silnom turnire ai_checked tournament path cycle strongly_connected_digraph hamiltonian_cycle extremal_choice pereydem k turniru `t`: vershiny — igroki, a rebro `x->y` oznachaet, chto `x` pobedil `y`. snachala dokazhem ispolzuemuyu lemmu. esli turnir silno svyazen i soderzhit tsikl `c=u_0->u_1->...->u_{k-1}->u_0` dliny `k<n`, to v nem est tsikl dliny `k+1`. deystvitelno, esli naydetsya vershina `v` vne `c`, dlya kotoroy est i rebro iz `c` v `v`, i rebro iz `v` v `c`, to pri obhode tsikla naydetsya sosednyaya para `u_i,u_{i+1}` s `u_i->v` i `v->u_{i+1}`; zamenyaem rebro `u_i->u_{i+1}` na dva rebra cherez `v`. inache kazhdaya vneshnyaya vershina libo prinimaet vse rebra iz `c`, libo posylaet vse rebra v `c`. oboznachim cherez `v` pervyy klass, cherez `w` vtoroy. v silnom turnire oba klassa nepusty, i ne mozhet byt tak, chto vse rebra mezhdu nimi idut iz `w` v `v`; inache iz `v` nelzya bylo by dobratsya do `c`. znachit, est rebro `v->w` s `v` iz `v` i `w` iz `w`. togda `u_0->u_1->...->u_{k-2}->v->w->u_0` — tsikl dliny `k+1`…","source_keys":["usa","fyum"]}
{"id":"usamo-2025-p3-gabriel-graph-road-network","title":"Дорожная сеть как граф Габриэля, USAMO 2025 P3","path":"data\\problems\\usamo\\usamo-2025-p3-gabriel-graph-road-network.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/usamo/usamo-2025-p3-gabriel-graph-road-network.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#usamo-2025-p3-gabriel-graph-road-network","source_key":"usamo","source_label":"USAMO","source_titles":["AoPS Wiki, 2025 USAMO Problems/Problem 3","Evan Chen, USAMO 2025 Solution Notes"],"year":"2025","type":"olympiad_problem","authors":["Carl Schildkraut"],"tags":["planar_graphs","goal_characterization"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"national_final_medium","local_score":7,"comment":"Красивая задача на распознавание графа Габриэля; после этого включается стандартный планарный инструментарий.","status":"ai_checked"},"review_status":"ai_checked","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"official_complete_or_near_complete","label":"официальное полное/почти полное","status":"ai_checked","confidence":0.78,"basis":"агентский аудит средней сложности","notes":"У олимпиадной карточки есть официальный источник или источник уровня шорт-листа/сборника, а решение имеет статус ai_checked.","audit_source":"agent-imo-us-classical.json"},"statements":{"original":[{"id":"stmt-original","title":"Оригинальная формулировка","status":"ai_checked","text":"Алиса выбирает две точки \\(P,Q\\) и множество \\(S\\) на плоскости; затем Боб ставит бесконечно много городов так, что расстояние между любыми двумя городами больше \\(1\\) и никакие три не коллинеарны. После этого каждая пара городов \\(A,B\\) соединяется дорогой по отрезку \\(AB\\) тогда и только тогда, когда для каждого третьего города \\(C\\) существует точка \\(R\\) из \\(S\\), для которой треугольник \\(PQR\\) прямо подобен одному из треугольников \\(ABC\\) или \\(BAC\\). Алиса выигрывает, если ей удаётся заранее подобрать \\(P,Q,S\\) так, что при любом допустимом расположении городов Бобом в построенной сети между любыми двумя городами можно проехать по конечной цепочке дорог и никакие две дороги не пересекаются внутренними точками; иначе выигрывает Боб. Докажите, что Алиса может выиграть.","definition_ids":[]}]},"solutions":[{"id":"sol-gabriel-planar-bound","title":"Полное решение: выбор S и сведение к двум леммам о графе Габриэля","status":"ai_checked","definition_ids":["gabriel_graph","planar_graph","connected_graph"],"standard_idea_ids":[],"tags":[],"has_text":true,"text_preview":"Выигрывает Алиса. Она выбирает произвольные разные точки \\(P,Q\\) и берёт \\(\\mathcal S\\) равным множеству всех точек, лежащих строго вне замкнутого диска с диаметром \\(PQ\\). Рассмотрим пару городов \\(A,B\\). Для третьего города \\(C\\) существование \\(R\\in\\mathcal S\\), при котором \\(\\triangle PQR\\) прямо подобен \\(\\triangle ABC\\) или \\(\\triangle BAC\\), означает ровно, что при одном из двух прямых подобий, переводящих упорядоченную пару \\((P,Q)\\) в \\((A,B)\\) или \\((B,A)\\), точка \\(R\\) переходит в \\(C\\). Так как прямое подобие переводит замкнутый диск с диаметром \\(PQ\\) в замкнутый диск с диаметром \\(AB\\), выбранное \\(\\mathcal S\\) даёт такое условие: для каждого третьего города \\(C\\) точка \\(C\\) лежит строго вне замкнутого диска с диаметром \\(AB\\). Иными словами, построенная сеть является графом Габриэля множества городов: ребро \\(AB\\) проводится ровно тогда, когда замкнутый диаметральный дис…"}],"relations":[{"id":"rel-gabriel-connectivity-lemma-usamo-2025-p3","neighbor_id":"gabriel-graph-connected-separated-points","direction":"backward","type":"prerequisite","distance":1,"status":"ai_checked"},{"id":"rel-gabriel-planarity-lemma-usamo-2025-p3","neighbor_id":"gabriel-graph-straight-line-planar","direction":"backward","type":"prerequisite","distance":1,"status":"ai_checked"}],"search_text":"usamo-2025-p3-gabriel-graph-road-network дорожная сеть как граф габриэля, usamo 2025 p3 planar_graphs goal_characterization 2025 aops wiki, 2025 usamo problems/problem 3 carl schildkraut carlschildkraut evan chen, usamo 2025 solution notes https://artofproblemsolving.com/wiki/index.php/2025_usamo_problems/problem_3 https://web.evanchen.cc/exams/usamo-2025-notes.pdf secondary_solution src-usamo-2025-evan-chen-notes src-usamo-2025-p3-aops-wiki statement usamo usamo2025 with_solution carl schildkraut aops wiki, 2025 usamo problems/problem 3 evan chen, usamo 2025 solution notes stmt-original оригинальная формулировка ai_checked алиса выбирает две точки \\(p,q\\) и множество \\(s\\) на плоскости; затем боб ставит бесконечно много городов так, что расстояние между любыми двумя городами больше \\(1\\) и никакие три не коллинеарны. после этого каждая пара городов \\(a,b\\) соединяется дорогой по отрезку \\(ab\\) тогда и только тогда, когда для каждого третьего города \\(c\\) существует точка \\(r\\) из \\(s\\), для которой треугольник \\(pqr\\) прямо подобен одному из треугольников \\(abc\\) или \\(bac\\). алиса выигрывает, если ей удаётся заранее подобрать \\(p,q,s\\) так, что при любом допустимом расположении городов бобом в построенной сети между любыми двумя городами можно проехать по конечной цепочке дорог и никакие две дороги не пересекаются внутренними точками; иначе выигрывает боб. докажите, что алиса может выиграть. idea-identify-gabriel-graph сначала распознать стандартный геометрический граф алиса выбирает `s` как множество точек строго вне замкнутого диска с диаметром `pq`; тогда условие прямого подобия для каждого третьего города эквивалентно тому, что замкнутый диск с диаметром между двумя городами не содержит других городов. planar_graphs ai_checked idea-connected-and-planar-gabriel-graph сослаться на две леммы о графе габриэля после распознавания построенной сети как графа габриэля остаются две независимые части: связность графа габриэля для разреженного множества точек и отсутствие пересечений в его прямолинейном рисунке. planar_graphs ai_checked sol-gabriel-planar-bound полное решение: выбор s и сведение к двум леммам о графе габриэля ai_checked gabriel_graph planar_graph connected_graph выигрывает алиса. она выбирает произвольные разные точки \\(p,q\\) и берёт \\(\\mathcal s\\) равным множеству всех точек, лежащих строго вне замкнутого диска с диаметром \\(pq\\). рассмотрим пару городов \\(a,b\\). для третьего города \\(c\\) существование \\(r\\in\\mathcal s\\), при котором \\(\\triangle pqr\\) прямо подобен \\(\\triangle abc\\) или \\(\\triangle bac\\), означает ровно, что при одном из двух прямых подобий, переводящих упорядоченную пару \\((p,q)\\) в \\((a,b)\\) или \\((b,a)\\), точка \\(r\\) переходит в \\(c\\). так как прямое подобие переводит замкнутый диск с диаметром \\(pq\\) в замкнутый диск с диаметром \\(ab\\), выбранное \\(\\mathcal s\\) даёт такое условие: для каждого третьего города \\(c\\) точка \\(c\\) лежит строго вне замкнутого диска с диаметром \\(ab\\). иными словами, построенная сеть является графом габриэля множества городов: ребро \\(ab\\) проводится ровно тогда, когда замкнутый диаметральный дис… usamo-2025-p3-gabriel-graph-road-network dorozhnaya set kak graf gabrielya, usamo 2025 p3 planar_graphs goal_characterization 2025 aops wiki, 2025 usamo problems/problem 3 carl schildkraut carlschildkraut evan chen, usamo 2025 solution notes https://artofproblemsolving.com/wiki/index.php/2025_usamo_problems/problem_3 https://web.evanchen.cc/exams/usamo-2025-notes.pdf secondary_solution src-usamo-2025-evan-chen-notes src-usamo-2025-p3-aops-wiki statement usamo usamo2025 with_solution carl schildkraut aops wiki, 2025 usamo problems/problem 3 evan chen, usamo 2025 solution notes stmt-original originalnaya formulirovka ai_checked alisa vybiraet dve tochki \\(p,q\\) i mnozhestvo \\(s\\) na ploskosti; zatem bob stavit beskonechno mnogo gorodov tak, chto rasstoyanie mezhdu lyubymi dvumya gorodami bolshe \\(1\\) i nikakie tri ne kollinearny. posle etogo kazhdaya para gorodov \\(a,b\\) soedinyaetsya dorogoy po otrezku \\(ab\\) togda i tolko togda, kogda dlya kazhdogo tretego goroda \\(c\\) suschestvuet tochka \\(r\\) iz \\(s\\), dlya kotoroy treugolnik \\(pqr\\) pryamo podoben odnomu iz treugolnikov \\(abc\\) ili \\(bac\\). alisa vyigryvaet, esli ey udaetsya zaranee podobrat \\(p,q,s\\) tak, chto pri lyubom dopustimom raspolozhenii gorodov bobom v postroennoy seti mezhdu lyubymi dvumya gorodami mozhno proehat po konechnoy tsepochke dorog i nikakie dve dorogi ne peresekayutsya vnutrennimi tochkami; inache vyigryvaet bob. dokazhite, chto alisa mozhet vyigrat. idea-identify-gabriel-graph snachala raspoznat standartnyy geometricheskiy graf alisa vybiraet `s` kak mnozhestvo tochek strogo vne zamknutogo diska s diametrom `pq`; togda uslovie pryamogo podobiya dlya kazhdogo tretego goroda ekvivalentno tomu, chto zamknutyy disk s diametrom mezhdu dvumya gorodami ne soderzhit drugih gorodov. planar_graphs ai_checked idea-connected-and-planar-gabriel-graph soslatsya na dve lemmy o grafe gabrielya posle raspoznavaniya postroennoy seti kak grafa gabrielya ostayutsya dve nezavisimye chasti: svyaznost grafa gabrielya dlya razrezhennogo mnozhestva tochek i otsutstvie peresecheniy v ego pryamolineynom risunke. planar_graphs ai_checked sol-gabriel-planar-bound polnoe reshenie: vybor s i svedenie k dvum lemmam o grafe gabrielya ai_checked gabriel_graph planar_graph connected_graph vyigryvaet alisa. ona vybiraet proizvolnye raznye tochki \\(p,q\\) i beret \\(\\mathcal s\\) ravnym mnozhestvu vseh tochek, lezhaschih strogo vne zamknutogo diska s diametrom \\(pq\\). rassmotrim paru gorodov \\(a,b\\). dlya tretego goroda \\(c\\) suschestvovanie \\(r\\in\\mathcal s\\), pri kotorom \\(\\triangle pqr\\) pryamo podoben \\(\\triangle abc\\) ili \\(\\triangle bac\\), oznachaet rovno, chto pri odnom iz dvuh pryamyh podobiy, perevodyaschih uporyadochennuyu paru \\((p,q)\\) v \\((a,b)\\) ili \\((b,a)\\), tochka \\(r\\) perehodit v \\(c\\). tak kak pryamoe podobie perevodit zamknutyy disk s diametrom \\(pq\\) v zamknutyy disk s diametrom \\(ab\\), vybrannoe \\(\\mathcal s\\) daet takoe uslovie: dlya kazhdogo tretego goroda \\(c\\) tochka \\(c\\) lezhit strogo vne zamknutogo diska s diametrom \\(ab\\). inymi slovami, postroennaya set yavlyaetsya grafom gabrielya mnozhestva gorodov: rebro \\(ab\\) provoditsya rovno togda, kogda zamknutyy diametralnyy dis…","source_keys":["usamo"]}
{"id":"yumt-2024-start-final-problem7","title":"Поиск диаметра скрытого дерева, ЮМТ 2024","path":"data\\problems\\yumt\\yumt-2024-start-final-problem7.yaml","raw_github_url":"https://raw.githubusercontent.com/didin-maxim/knowledge_graph_of_graphs/main/data/problems/yumt/yumt-2024-start-final-problem7.yaml","viewer_url":"https://didin-maxim.github.io/knowledge_graph_of_graphs/#yumt-2024-start-final-problem7","source_key":"yumt","source_label":"ЮМТ","source_titles":["ЮМТ 2024, Старт-лига, финал, 7. Поиск диаметра скрытого дерева"],"year":"2024","type":"olympiad_problem","authors":[],"tags":["trees","goal_algorithm"],"agent_topics":["game_strategy_candidate"],"difficulty":{"main":"regional","local_score":6,"comment":"Импортировано из проверенной архивной карточки ЮМТ 2024_start_final_problem7.md; этап: Старт-лига, финал.","status":"ai_checked"},"review_status":"ai_checked","public_ready":true,"solution_state":"with_solution","solution_classification":{"type":"official_complete_or_near_complete","label":"официальное полное/почти полное","status":"ai_checked","confidence":0.78,"basis":"агентский аудит средней сложности","notes":"Метаданные источника указывают на архивное или официальное решение; решение проверено.","audit_source":"agent-russian-archives.json"},"statements":{"original":[{"id":"stmt-original","title":"Оригинальная формулировка","status":"ai_checked","text":"Ана и Банан играют в следующую игру: Банан рисует дерево на вершинах 1, 2, ..., 2024, не показывая его. Ана может выбрать любые две вершины A и B и спросить Банана о длине кратчайшего пути из A в B. Может ли Ана гарантированно за 4045 вопросов найти две вершины, расстояние между которыми в этом графе максимально?","definition_ids":["tree","path"]}]},"solutions":[{"id":"sol-ai-double-sweep","title":"ИИ-решение: двойной поиск самой далёкой вершины","status":"ai_checked","definition_ids":["tree","path","distance"],"standard_idea_ids":[],"tags":[],"has_text":true,"text_preview":"Ответ: да. Ана выбирает произвольную вершину, например 1, и спрашивает расстояния от неё до всех остальных 2023 вершин. Пусть a - одна из вершин, для которой это расстояние максимально. Докажем лемму: такая вершина a является концом некоторого диаметра дерева. Укореним дерево в вершине 1. Тогда первая серия вопросов просто сообщает глубины всех вершин, и a имеет максимальную глубину. Возьмём любые концы x и y диаметра. Пусть c - их наименьший общий предок в укоренённом дереве. Так как a имеет максимальную глубину, depth(a) >= depth(x) и depth(a) >= depth(y). Если a лежит в поддереве c, то она может лежать не более чем в одной из двух ветвей от c к x и к y; выберем конец z из другой ветви, а другой конец обозначим через w. Тогда путь от a к z проходит через c, поэтому d(a,z)=depth(a)+depth(z)-2depth(c) >= depth(w)+depth(z)-2depth(c)=d(x,y). Если же a не лежит в поддереве c, то для z=x ил…"}],"relations":[],"search_text":"yumt-2024-start-final-problem7 поиск диаметра скрытого дерева, юмт 2024 trees goal_algorithm 2024 https://adygmath.ru/content/files/umt24/final/final_usl_start2.pdf olympiad_archive src-yumt-2024-start-final-problem7-official with_solution yumt yumt2024 юмт юмт 2024, старт-лига, финал, 7. поиск диаметра скрытого дерева юмт2024 ? юмт 2024, старт-лига, финал, 7. поиск диаметра скрытого дерева stmt-original оригинальная формулировка ai_checked ана и банан играют в следующую игру: банан рисует дерево на вершинах 1, 2, ..., 2024, не показывая его. ана может выбрать любые две вершины a и b и спросить банана о длине кратчайшего пути из a в b. может ли ана гарантированно за 4045 вопросов найти две вершины, расстояние между которыми в этом графе максимально? tree path idea-double-sweep-distance-queries два раза найти самую далёкую вершину в дереве любая вершина, наиболее удалённая от фиксированного корня, является концом некоторого диаметра. поэтому достаточно сначала найти такую вершину a запросами расстояний от произвольного корня, а затем найти самую далёкую от a вершину b. ai_checked sol-ai-double-sweep ии-решение: двойной поиск самой далёкой вершины ai_checked tree path distance ответ: да. ана выбирает произвольную вершину, например 1, и спрашивает расстояния от неё до всех остальных 2023 вершин. пусть a - одна из вершин, для которой это расстояние максимально. докажем лемму: такая вершина a является концом некоторого диаметра дерева. укореним дерево в вершине 1. тогда первая серия вопросов просто сообщает глубины всех вершин, и a имеет максимальную глубину. возьмём любые концы x и y диаметра. пусть c - их наименьший общий предок в укоренённом дереве. так как a имеет максимальную глубину, depth(a) >= depth(x) и depth(a) >= depth(y). если a лежит в поддереве c, то она может лежать не более чем в одной из двух ветвей от c к x и к y; выберем конец z из другой ветви, а другой конец обозначим через w. тогда путь от a к z проходит через c, поэтому d(a,z)=depth(a)+depth(z)-2depth(c) >= depth(w)+depth(z)-2depth(c)=d(x,y). если же a не лежит в поддереве c, то для z=x ил… yumt-2024-start-final-problem7 poisk diametra skrytogo dereva, yumt 2024 trees goal_algorithm 2024 https://adygmath.ru/content/files/umt24/final/final_usl_start2.pdf olympiad_archive src-yumt-2024-start-final-problem7-official with_solution yumt yumt2024 yumt yumt 2024, start-liga, final, 7. poisk diametra skrytogo dereva yumt2024 ? yumt 2024, start-liga, final, 7. poisk diametra skrytogo dereva stmt-original originalnaya formulirovka ai_checked ana i banan igrayut v sleduyuschuyu igru: banan risuet derevo na vershinah 1, 2, ..., 2024, ne pokazyvaya ego. ana mozhet vybrat lyubye dve vershiny a i b i sprosit banana o dline kratchayshego puti iz a v b. mozhet li ana garantirovanno za 4045 voprosov nayti dve vershiny, rasstoyanie mezhdu kotorymi v etom grafe maksimalno? tree path idea-double-sweep-distance-queries dva raza nayti samuyu dalekuyu vershinu v dereve lyubaya vershina, naibolee udalennaya ot fiksirovannogo kornya, yavlyaetsya kontsom nekotorogo diametra. poetomu dostatochno snachala nayti takuyu vershinu a zaprosami rasstoyaniy ot proizvolnogo kornya, a zatem nayti samuyu dalekuyu ot a vershinu b. ai_checked sol-ai-double-sweep ii-reshenie: dvoynoy poisk samoy dalekoy vershiny ai_checked tree path distance otvet: da. ana vybiraet proizvolnuyu vershinu, naprimer 1, i sprashivaet rasstoyaniya ot nee do vseh ostalnyh 2023 vershin. pust a - odna iz vershin, dlya kotoroy eto rasstoyanie maksimalno. dokazhem lemmu: takaya vershina a yavlyaetsya kontsom nekotorogo diametra dereva. ukorenim derevo v vershine 1. togda pervaya seriya voprosov prosto soobschaet glubiny vseh vershin, i a imeet maksimalnuyu glubinu. vozmem lyubye kontsy x i y diametra. pust c - ih naimenshiy obschiy predok v ukorenennom dereve. tak kak a imeet maksimalnuyu glubinu, depth(a) >= depth(x) i depth(a) >= depth(y). esli a lezhit v poddereve c, to ona mozhet lezhat ne bolee chem v odnoy iz dvuh vetvey ot c k x i k y; vyberem konets z iz drugoy vetvi, a drugoy konets oboznachim cherez w. togda put ot a k z prohodit cherez c, poetomu d(a,z)=depth(a)+depth(z)-2depth(c) >= depth(w)+depth(z)-2depth(c)=d(x,y). esli zhe a ne lezhit v poddereve c, to dlya z=x il…","source_keys":["yumt"]}
