IMO 2019 · Problem 3
A social network has 2019 users, some pairs of whom are friends. Whenever user \(A\) is friends with user \(B\), user \(B\) is also friends with user \(A\). Events of the following kind may happen repeatedly, one at a time:
Three users \(A\), \(B\), and \(C\) such that \(A\) is friends with both \(B\) and \(C\), but \(B\) and \(C\) are not friends, change their friendship statuses such that \(B\) and \(C\) are now friends, but \(A\) is no longer friends with \(B\), and no longer friends with \(C\). All other friendship statuses are unchanged.
Initially, 1010 users have 1009 friends each, and 1009 users have 1010 friends each. Prove that there exists a sequence of such events after which each user is friends with at most one other user.
Official text of the problem. Official problem paper (PDF)
Solution
Represent the network by a simple undirected graph, with users as vertices and friendships as edges. An allowed operation replaces edges \(ab,ac\) by the edge \(bc\), provided \(bc\) is absent. It decreases the degree of \(a\) by two and leaves all other degrees unchanged. Thus every degree keeps its parity, while the number of edges decreases by one.
We prove the following stronger statement.
Lemma. Every finite connected graph that is not complete and has a vertex of odd degree can be transformed by allowed operations into a graph whose vertices all have degree at most one.
A bridge is an edge whose deletion disconnects its connected component.
First, we can obtain a connected graph containing a bridge. Suppose the current graph has no bridge. Choose a vertex \(v\) of maximum degree \(d\). An odd-degree vertex cannot have degree one, since its incident edge would be a bridge. Therefore \(d\geq 3\).
The neighbours of \(v\) cannot all be pairwise adjacent. Indeed, if they were, each of them would already have \(d\) neighbours within the set consisting of \(v\) and its neighbours. By maximality of \(d\), none would have a neighbour outside this set. Connectedness would then imply that the whole graph was complete.
We now choose an operation that preserves connectedness.
- If deleting \(v\) leaves a connected graph, choose two nonadjacent neighbours \(a,b\) of \(v\) and replace \(va,vb\) by \(ab\). The graph without \(v\) remains connected, and \(v\) retains \(d-2\geq 1\) neighbours, so the resulting graph is connected.
- If deleting \(v\) leaves several components, each contains at least two neighbours of \(v\): otherwise its unique edge to \(v\) would be a bridge. Choose neighbours \(a,b\) in different components. They are nonadjacent, so the operation at \(v\) is allowed. After it, every component of the graph without \(v\) still has a neighbour of \(v\), so connectedness is again preserved.
The resulting graph is not complete, since \(va\) is now absent, and it still has an odd-degree vertex by parity preservation. Consequently, whenever there is no bridge, we can repeat this procedure. Since each operation decreases the number of edges, the procedure must eventually produce a bridge.
Second, any graph in which every component with at least two vertices contains a bridge can be reduced to the required form. We show how to preserve this property while reducing any component \(H\) with at least three vertices.
Choose a bridge \(uv\) of \(H\). At least one endpoint, say \(v\), has degree at least two; otherwise connectedness would force \(H\) to consist of just this edge.
If \(v\) has an incident edge \(vw\) that is not a bridge, choose such an edge. Otherwise, choose any neighbour \(w\neq u\). In either case, \(u\) and \(w\) are nonadjacent, since an edge \(uw\) would put the bridge \(uv\) in a triangle. Hence we may replace \(uv,vw\) by \(uw\).
There are two cases.
- The edge \(vw\) is not a bridge. The two components of \(H-uv\) remain connected after \(vw\) is deleted: if the component containing \(v,w\) became disconnected, then \(H-vw\) would also be disconnected, contrary to the choice of \(vw\). The new edge \(uw\) joins these two components and is a bridge. Thus the resulting graph is connected and contains a bridge.
- Every edge incident with \(v\) is a bridge. Deleting \(uv\) and \(vw\) produces three components, containing \(u,v,w\), respectively. The new edge \(uw\) joins the first and third components and is a bridge. The component containing \(v\) is either the isolated vertex \(v\), or contains a remaining edge incident with \(v\). Such an edge is still a bridge, because deleting other edges cannot create a path bypassing it.
Thus every resulting component with at least two vertices still contains a bridge. We can repeat whenever some component has at least three vertices. The number of edges decreases each time, so eventually every component has at most two vertices. This proves the lemma.
We now apply it to the given network. Every vertex initially has degree at least \(1009\), so every connected component has at least \(1010\) vertices. Two components would therefore require at least \(2020\) vertices. Since there are only \(2019\), the graph is connected.
It is not complete, because its degrees are at most \(1010<2018\), and it has vertices of odd degree \(1009\). The lemma therefore supplies a sequence of allowed events after which every vertex has degree at most one, as required. \(\square\)
The solution was checked against the official IMO shortlist solutions.
IMO 2019 · Aufgabe 3
Ein soziales Netzwerk hat 2019 Nutzer, von denen einige paarweise befreundet sind. Immer wenn der Nutzer \(A\) mit dem Nutzer \(B\) befreundet ist, dann ist auch der Nutzer \(B\) mit dem Nutzer \(A\) befreundet. Ereignisse der folgenden Art können wiederholt nacheinander stattfinden:
Drei Nutzer \(A\), \(B\) und \(C\), von denen \(A\) mit \(B\) und \(C\) befreundet ist, aber \(B\) und \(C\) nicht befreundet sind, wechseln den Status ihrer Freundschaften so, dass jetzt \(B\) und \(C\) befreundet sind, aber \(A\) nicht mehr mit \(B\) befreundet ist und auch nicht mehr mit \(C\) befreundet ist. Der Status aller anderen Freundschaften bleibt unverändert.
Anfangs sind 1010 Nutzer mit jeweils genau 1009 Nutzern befreundet und 1009 Nutzer mit jeweils genau 1010 Nutzern befreundet. Man beweise, dass es eine Folge solcher Ereignisse gibt, nach der jeder Nutzer höchstens mit einem anderen Nutzer befreundet ist.
Offizieller deutscher Aufgabentext. Offizielles Aufgabenblatt (PDF)
Lösung
Wir stellen das Netzwerk als einfachen ungerichteten Graphen dar, dessen Knoten die Nutzer und dessen Kanten die Freundschaften sind. Eine erlaubte Operation ersetzt die Kanten \(ab,ac\) durch die Kante \(bc\), sofern \(bc\) nicht vorhanden ist. Sie verringert den Grad von \(a\) um zwei und lässt alle anderen Grade unverändert. Somit behält jeder Grad seine Parität, während die Anzahl der Kanten um eins abnimmt.
Wir beweisen die folgende stärkere Aussage.
Lemma. Jeder endliche zusammenhängende Graph, der nicht vollständig ist und einen Knoten ungeraden Grades besitzt, lässt sich durch erlaubte Operationen in einen Graphen überführen, dessen Knoten alle höchstens Grad eins haben.
Eine Brücke ist eine Kante, deren Entfernung ihre Zusammenhangskomponente in mehrere Komponenten zerlegt.
Zunächst können wir einen zusammenhängenden Graphen erhalten, der eine Brücke enthält. Angenommen, der aktuelle Graph besitzt keine Brücke. Wähle einen Knoten \(v\) mit maximalem Grad \(d\). Ein Knoten ungeraden Grades kann nicht Grad eins haben, da seine inzidente Kante eine Brücke wäre. Daher ist \(d\geq 3\).
Die Nachbarn von \(v\) können nicht alle paarweise benachbart sein. Andernfalls hätte nämlich jeder von ihnen bereits \(d\) Nachbarn innerhalb der Menge, die aus \(v\) und seinen Nachbarn besteht. Wegen der Maximalität von \(d\) hätte keiner von ihnen einen Nachbarn außerhalb dieser Menge. Aus dem Zusammenhang würde dann folgen, dass der gesamte Graph vollständig wäre.
Wir wählen nun eine Operation, die den Zusammenhang erhält.
- Bleibt nach dem Entfernen von \(v\) ein zusammenhängender Graph übrig, so wählen wir zwei nicht benachbarte Nachbarn \(a,b\) von \(v\) und ersetzen \(va,vb\) durch \(ab\). Der Graph ohne \(v\) bleibt zusammenhängend, und \(v\) behält \(d-2\geq 1\) Nachbarn, also ist der entstehende Graph zusammenhängend.
- Bleiben nach dem Entfernen von \(v\) mehrere Komponenten übrig, so enthält jede mindestens zwei Nachbarn von \(v\): Andernfalls wäre ihre einzige Kante zu \(v\) eine Brücke. Wähle Nachbarn \(a,b\) in verschiedenen Komponenten. Sie sind nicht benachbart, also ist die Operation bei \(v\) erlaubt. Danach enthält jede Komponente des Graphen ohne \(v\) weiterhin einen Nachbarn von \(v\), sodass der Zusammenhang auch hier erhalten bleibt.
Der entstehende Graph ist nicht vollständig, da \(va\) nun fehlt, und wegen der Erhaltung der Parität besitzt er weiterhin einen Knoten ungeraden Grades. Solange keine Brücke vorhanden ist, können wir dieses Verfahren also wiederholen. Da jede Operation die Anzahl der Kanten verringert, muss das Verfahren schließlich eine Brücke erzeugen.
Zweitens lässt sich jeder Graph, in dem jede Komponente mit mindestens zwei Knoten eine Brücke enthält, auf die geforderte Form reduzieren. Wir zeigen, wie sich diese Eigenschaft erhalten lässt, während wir eine beliebige Komponente \(H\) mit mindestens drei Knoten reduzieren.
Wähle eine Brücke \(uv\) von \(H\). Mindestens einer ihrer Endpunkte, etwa \(v\), hat mindestens Grad zwei; andernfalls würde aus dem Zusammenhang folgen, dass \(H\) nur aus dieser Kante besteht.
Falls \(v\) eine inzidente Kante \(vw\) besitzt, die keine Brücke ist, wählen wir eine solche Kante. Andernfalls wählen wir einen beliebigen Nachbarn \(w\neq u\). In beiden Fällen sind \(u\) und \(w\) nicht benachbart, da eine Kante \(uw\) dazu führen würde, dass die Brücke \(uv\) in einem Dreieck liegt. Daher dürfen wir \(uv,vw\) durch \(uw\) ersetzen.
Es gibt zwei Fälle.
- Die Kante \(vw\) ist keine Brücke. Die beiden Komponenten von \(H-uv\) bleiben nach dem Entfernen von \(vw\) zusammenhängend: Würde die Komponente, die \(v,w\) enthält, zerfallen, so wäre auch \(H-vw\) nicht zusammenhängend, im Widerspruch zur Wahl von \(vw\). Die neue Kante \(uw\) verbindet diese beiden Komponenten und ist eine Brücke. Somit ist der entstehende Graph zusammenhängend und enthält eine Brücke.
- Jede zu \(v\) inzidente Kante ist eine Brücke. Das Entfernen von \(uv\) und \(vw\) erzeugt drei Komponenten, die jeweils \(u,v,w\) enthalten. Die neue Kante \(uw\) verbindet die erste und die dritte Komponente und ist eine Brücke. Die Komponente, die \(v\) enthält, ist entweder der isolierte Knoten \(v\) oder enthält eine verbleibende zu \(v\) inzidente Kante. Eine solche Kante ist weiterhin eine Brücke, da durch das Entfernen anderer Kanten kein Weg entstehen kann, der sie umgeht.
Somit enthält jede entstehende Komponente mit mindestens zwei Knoten weiterhin eine Brücke. Wir können dies wiederholen, solange eine Komponente mindestens drei Knoten hat. Die Anzahl der Kanten nimmt jedes Mal ab, sodass schließlich jede Komponente höchstens zwei Knoten hat. Damit ist das Lemma bewiesen.
Wir wenden es nun auf das gegebene Netzwerk an. Jeder Knoten hat anfangs mindestens Grad \(1009\), also hat jede Zusammenhangskomponente mindestens \(1010\) Knoten. Zwei Komponenten würden daher mindestens \(2020\) Knoten erfordern. Da es nur \(2019\) gibt, ist der Graph zusammenhängend.
Er ist nicht vollständig, da seine Grade höchstens \(1010<2018\) betragen, und er besitzt Knoten mit dem ungeraden Grad \(1009\). Das Lemma liefert daher eine Folge erlaubter Ereignisse, nach der jeder Knoten wie gefordert höchstens Grad eins hat. \(\square\)
Die Lösung wurde mit den offiziellen Lösungen der IMO-Shortlist abgeglichen.
IMO 2019 · Soru 3
Sanal alemdeki bir sosyal şebekede 2019 kullanıcı bulunuyor. Bu kullanıcılardan bazıları arkadaştır. Arkadaşlık karşılıklıdır, yani \(A\) kullanıcısı \(B\) ile arkadaş ise, \(B\) kullanıcısı da \(A\) ile arkadaştır. Bu sosyal şebekedeki arkadaşlık durumlarını değiştiren aşağıdaki türden olaylar, her defada sadece bir olay olmak üzere, çok defa meydana gelebiliyor:
Olay: \(A\), \(B\) ve \(C\); \(A\) hem \(B\), hem de \(C\) ile arkadaş olacak, fakat \(B\) ile \(C\) birbirleriyle arkadaş olmayacak şekilde üç kullanıcı olmak üzere, arkadaşlık durumları değişip \(B\) ile \(C\) birbirleriyle arkadaş olmaya, \(A\) ise hem \(B\), hem de \(C\) ile arkadaş olmamaya başlıyor. Diğer arkadaşlık durumları ise değişmiyor.
Başlangıçta, 1010 adet kullanıcının her birinin 1009 arkadaşı, 1009 adet kullanıcının ise her birinin 1010 arkadaşı bulunuyor. Her kullanıcının en çok 1 arkadaşının olmasıyla sonuçlanacak bir olaylar dizisinin bulunduğunu gösteriniz.
Sorunun resmi Türkçe metni. Resmi soru kâğıdı (PDF)
Çözüm
Şebekeyi, kullanıcıların köşe, arkadaşlıkların kenar olduğu basit bir yönsüz çizgeyle temsil edelim. İzin verilen bir işlem, \(bc\) kenarı mevcut değilse \(ab,ac\) kenarlarını \(bc\) kenarıyla değiştirir. Bu işlem \(a\)'nın derecesini iki azaltır ve diğer tüm dereceleri değiştirmeden bırakır. Böylece her derecenin tekliği veya çiftliği korunur, kenar sayısı ise bir azalır.
Aşağıdaki daha güçlü önermeyi ispatlayacağız.
Yardımcı önerme. Tam olmayan ve tek dereceli bir köşesi bulunan her sonlu bağlantılı çizge, izin verilen işlemlerle tüm köşelerinin derecesi en çok bir olan bir çizgeye dönüştürülebilir.
Silinmesi, ait olduğu bağlantılı bileşenin bağlantısını koparan kenara köprü denir.
İlk olarak, bir köprü içeren bağlantılı bir çizge elde edebiliriz. Mevcut çizgenin köprüsü olmadığını varsayalım. Derecesi en büyük olan bir \(v\) köşesi seçelim ve derecesine \(d\) diyelim. Tek dereceli bir köşenin derecesi bir olamaz; çünkü bu köşeye bağlı kenar bir köprü olurdu. Dolayısıyla \(d\geq 3\)'tür.
\(v\)'nin komşularının tümü ikişer ikişer komşu olamaz. Gerçekten, öyle olsaydı bunların her birinin, \(v\) ve komşularından oluşan küme içinde zaten \(d\) komşusu bulunurdu. \(d\)'nin en büyük derece olması nedeniyle hiçbirinin bu kümenin dışında bir komşusu olamazdı. O zaman bağlantılılık, çizgenin tamamının tam olmasını gerektirirdi.
Şimdi bağlantılılığı koruyan bir işlem seçelim.
- \(v\) silindiğinde geriye bağlantılı bir çizge kalıyorsa, \(v\)'nin birbirine komşu olmayan iki komşusu \(a,b\)'yi seçip \(va,vb\)'yi \(ab\) ile değiştirelim. \(v\)'nin çıkarıldığı çizge bağlantılı kalır ve \(v\)'nin \(d-2\geq 1\) komşusu kalır; dolayısıyla elde edilen çizge bağlantılıdır.
- \(v\) silindiğinde geriye birden fazla bileşen kalıyorsa, her bileşen \(v\)'nin en az iki komşusunu içerir: aksi takdirde bu bileşeni \(v\)'ye bağlayan tek kenar bir köprü olurdu. Farklı bileşenlerde bulunan \(a,b\) komşularını seçelim. Bunlar birbirine komşu değildir; dolayısıyla \(v\)'de işlem yapılabilir. İşlemden sonra, \(v\)'nin çıkarıldığı çizgenin her bileşeni hâlâ \(v\)'nin bir komşusunu içerir; böylece bağlantılılık yine korunur.
Elde edilen çizge, artık \(va\) bulunmadığından tam değildir ve derecelerin tekliği veya çiftliği korunduğundan hâlâ tek dereceli bir köşesi vardır. Dolayısıyla köprü bulunmadığı sürece bu yöntemi tekrarlayabiliriz. Her işlem kenar sayısını azalttığından, bu yöntem sonunda mutlaka bir köprü oluşturur.
İkinci olarak, en az iki köşeli her bileşeni bir köprü içeren herhangi bir çizge, istenen biçime indirgenebilir. En az üç köşesi olan herhangi bir \(H\) bileşenini küçültürken bu özelliği nasıl koruyacağımızı göstereceğiz.
\(H\)'nin bir \(uv\) köprüsünü seçelim. Uç noktalarından en az birinin, diyelim ki \(v\)'nin, derecesi en az ikidir; aksi takdirde bağlantılılık, \(H\)'nin yalnızca bu kenardan oluşmasını gerektirirdi.
\(v\)'ye bağlı, köprü olmayan bir \(vw\) kenarı varsa böyle bir kenar seçelim. Yoksa herhangi bir \(w\neq u\) komşusunu seçelim. Her iki durumda da \(u\) ve \(w\) birbirine komşu değildir; çünkü bir \(uw\) kenarı, \(uv\) köprüsünün bir üçgende bulunmasına yol açardı. Dolayısıyla \(uv,vw\)'yi \(uw\) ile değiştirebiliriz.
İki durum vardır.
- \(vw\) kenarı köprü değildir. \(H-uv\)'nin iki bileşeni, \(vw\) silindikten sonra da bağlantılı kalır: \(v,w\)'yi içeren bileşenin bağlantısı kopsaydı \(H-vw\)'nin de bağlantısı kopardı ve bu, \(vw\)'nin seçimiyle çelişirdi. Yeni \(uw\) kenarı bu iki bileşeni birleştirir ve bir köprüdür. Böylece elde edilen çizge bağlantılıdır ve bir köprü içerir.
- \(v\)'ye bağlı her kenar bir köprüdür. \(uv\) ve \(vw\)'nin silinmesi, sırasıyla \(u,v,w\)'yi içeren üç bileşen oluşturur. Yeni \(uw\) kenarı birinci ve üçüncü bileşenleri birleştirir ve bir köprüdür. \(v\)'yi içeren bileşen ya yalnızca yalıtılmış \(v\) köşesinden oluşur ya da \(v\)'ye bağlı kalan bir kenar içerir. Böyle bir kenar hâlâ köprüdür; çünkü başka kenarları silmek, onu kullanmadan uçlarını birleştiren bir yol oluşturamaz.
Böylece elde edilen en az iki köşeli her bileşen hâlâ bir köprü içerir. En az üç köşeli bir bileşen olduğu sürece işlemi tekrarlayabiliriz. Kenar sayısı her defasında azaldığından, sonunda her bileşenin en çok iki köşesi olur. Bu, yardımcı önermeyi ispatlar.
Şimdi bunu verilen şebekeye uygulayalım. Başlangıçta her köşenin derecesi en az \(1009\) olduğundan, her bağlantılı bileşenin en az \(1010\) köşesi vardır. Dolayısıyla iki bileşen için en az \(2020\) köşe gerekirdi. Yalnızca \(2019\) köşe bulunduğundan çizge bağlantılıdır.
Dereceleri en çok \(1010<2018\) olduğundan çizge tam değildir ve derecesi tek sayı olan \(1009\)'a eşit köşeleri vardır. Dolayısıyla yardımcı önerme, istenildiği gibi, sonunda her köşenin derecesinin en çok bir olduğu, izin verilen olaylardan oluşan bir dizi sağlar. \(\square\)
Çözüm, resmi IMO shortlist çözümleriyle karşılaştırılarak kontrol edildi.
IMO 2019 · Problema 3
Una red social tiene 2019 usuarios, algunos de los cuales son amigos. Siempre que el usuario \(A\) es amigo del usuario \(B\), el usuario \(B\) también es amigo del usuario \(A\). Eventos del siguiente tipo pueden ocurrir repetidamente, uno a la vez:
Tres usuarios \(A\), \(B\), y \(C\) tales que \(A\) es amigo de \(B\) y de \(C\), pero \(B\) y \(C\) no son amigos, cambian su estado de amistad de modo que \(B\) y \(C\) ahora son amigos, pero \(A\) ya no es amigo ni de \(B\) ni de \(C\). Las otras relaciones de amistad no cambian.
Inicialmente, hay 1010 usuarios que tienen 1009 amigos cada uno, y hay 1009 usuarios que tienen 1010 amigos cada uno. Demostrar que hay una sucesión de este tipo de eventos después de la cual cada usuario es amigo como máximo de uno de los otros usuarios.
Texto oficial en español del problema. Enunciado oficial (PDF)
Solución
Representamos la red mediante un grafo simple no dirigido, cuyos vértices son los usuarios y cuyas aristas son las amistades. Una operación permitida sustituye las aristas \(ab,ac\) por la arista \(bc\), siempre que \(bc\) no exista. Esta operación disminuye en dos el grado de \(a\) y deja inalterados todos los demás grados. Así, cada grado conserva su paridad, mientras que el número de aristas disminuye en uno.
Demostramos la siguiente afirmación más fuerte.
Lema. Todo grafo finito conexo que no sea completo y tenga un vértice de grado impar puede transformarse mediante operaciones permitidas en un grafo cuyos vértices tengan todos grado a lo sumo uno.
Un puente es una arista cuya eliminación desconecta su componente conexa.
Primero, podemos obtener un grafo conexo que contenga un puente. Supongamos que el grafo actual no tiene puentes. Elegimos un vértice \(v\) de grado máximo \(d\). Un vértice de grado impar no puede tener grado uno, pues su arista incidente sería un puente. Por lo tanto, \(d\geq 3\).
Los vecinos de \(v\) no pueden ser todos adyacentes dos a dos. En efecto, si lo fueran, cada uno de ellos ya tendría \(d\) vecinos dentro del conjunto formado por \(v\) y sus vecinos. Por la maximalidad de \(d\), ninguno tendría un vecino fuera de este conjunto. La conexidad implicaría entonces que todo el grafo sería completo.
Elegimos ahora una operación que preserve la conexidad.
- Si al eliminar \(v\) queda un grafo conexo, elegimos dos vecinos no adyacentes \(a,b\) de \(v\) y sustituimos \(va,vb\) por \(ab\). El grafo sin \(v\) sigue siendo conexo, y \(v\) conserva \(d-2\geq 1\) vecinos, por lo que el grafo resultante es conexo.
- Si al eliminar \(v\) quedan varias componentes, cada una contiene al menos dos vecinos de \(v\): de lo contrario, su única arista hacia \(v\) sería un puente. Elegimos vecinos \(a,b\) en componentes diferentes. No son adyacentes, por lo que la operación en \(v\) está permitida. Después de ella, cada componente del grafo sin \(v\) sigue teniendo un vecino de \(v\), por lo que de nuevo se preserva la conexidad.
El grafo resultante no es completo, puesto que ahora falta \(va\), y sigue teniendo un vértice de grado impar por la conservación de la paridad. Por consiguiente, siempre que no haya puentes, podemos repetir este procedimiento. Como cada operación disminuye el número de aristas, el procedimiento debe acabar produciendo un puente.
Segundo, cualquier grafo en el que toda componente con al menos dos vértices contenga un puente puede reducirse a la forma requerida. Mostramos cómo preservar esta propiedad al reducir cualquier componente \(H\) con al menos tres vértices.
Elegimos un puente \(uv\) de \(H\). Al menos uno de sus extremos, digamos \(v\), tiene grado al menos dos; de lo contrario, la conexidad obligaría a que \(H\) constara únicamente de esta arista.
Si \(v\) tiene una arista incidente \(vw\) que no es un puente, elegimos una de ellas. En caso contrario, elegimos cualquier vecino \(w\neq u\). En ambos casos, \(u\) y \(w\) no son adyacentes, puesto que una arista \(uw\) haría que el puente \(uv\) perteneciera a un triángulo. Por tanto, podemos sustituir \(uv,vw\) por \(uw\).
Hay dos casos.
- La arista \(vw\) no es un puente. Las dos componentes de \(H-uv\) siguen siendo conexas después de eliminar \(vw\): si la componente que contiene a \(v,w\) quedara desconectada, entonces \(H-vw\) también quedaría desconectado, en contradicción con la elección de \(vw\). La nueva arista \(uw\) une estas dos componentes y es un puente. Así, el grafo resultante es conexo y contiene un puente.
- Toda arista incidente con \(v\) es un puente. Al eliminar \(uv\) y \(vw\) se obtienen tres componentes que contienen a \(u,v,w\), respectivamente. La nueva arista \(uw\) une la primera y la tercera componente y es un puente. La componente que contiene a \(v\) es el vértice aislado \(v\), o bien contiene alguna arista restante incidente con \(v\). Tal arista sigue siendo un puente, porque eliminar otras aristas no puede crear un camino que permita evitarla.
Así, toda componente resultante con al menos dos vértices sigue conteniendo un puente. Podemos repetir el procedimiento siempre que alguna componente tenga al menos tres vértices. El número de aristas disminuye cada vez, por lo que finalmente toda componente tiene a lo sumo dos vértices. Esto demuestra el lema.
Lo aplicamos ahora a la red dada. Inicialmente, cada vértice tiene grado al menos \(1009\), por lo que toda componente conexa tiene al menos \(1010\) vértices. Por tanto, dos componentes requerirían al menos \(2020\) vértices. Como solo hay \(2019\), el grafo es conexo.
No es completo, porque sus grados son a lo sumo \(1010<2018\), y tiene vértices de grado impar \(1009\). El lema proporciona, por tanto, una sucesión de eventos permitidos tras la cual cada vértice tiene grado a lo sumo uno, como se pedía. \(\square\)
La solución se comprobó con las soluciones oficiales de la shortlist de la IMO.
IMO 2019 · 问题 3
一个社交网络上有2019个用户, 某些用户之间是朋友关系. 只要用户\(A\)是用户\(B\)的朋友, 则用户\(B\)也是用户\(A\)的朋友. 如下形式的操作可反复进行, 每一时刻只进行一个操作:
三个用户\(A,B\)和\(C\), 满足\(A\)与\(B,C\)都是朋友, 但\(B\)和\(C\)不是朋友, 则同时改变他们之间的朋友关系, 即\(B\)和\(C\)变为朋友, 但\(A\)与\(B\)不再是朋友, \(A\)与\(C\)也不再是朋友. 所有其他的朋友关系不改变.
已知最初时有1010个用户每人拥有1009个朋友, 有1009个用户每人拥有1010个朋友. 证明: 存在一个操作序列, 使得操作结束后, 每个用户至多只有一个朋友.
题目为官方中文译本。 官方试卷 (PDF)
解答
用一个简单无向图表示这个网络,其中顶点代表用户,边代表朋友关系。在边\(bc\)不存在的条件下,一次允许的操作将边\(ab,ac\)替换为边\(bc\)。它使\(a\)的度数减少二,而其余所有顶点的度数不变。因此,每个顶点的度数的奇偶性保持不变,而边数减少一。
我们证明下面这个更强的结论。
引理。 每个非完全且有奇度顶点的有限连通图,都可以通过允许的操作变为所有顶点的度数均不超过一的图。
一条边称为桥,是指删去这条边会使它所在的连通分支不再连通。
首先,我们可以得到一个含有桥的连通图。 假设当前的图没有桥。选取一个度数达到最大值\(d\)的顶点\(v\)。奇度顶点的度数不可能为一,否则与它关联的边就是桥。因此\(d\geq 3\)。
\(v\)的邻点不可能全都两两相邻。事实上,若它们全都两两相邻,则其中每个顶点在由\(v\)及其邻点组成的集合内就已经有\(d\)个邻点。由\(d\)的最大性,它们都不可能在该集合外还有邻点。于是,由连通性可知整个图是完全图。
现在我们选择一个保持连通性的操作。
- 若删去\(v\)后图仍然连通,则选取\(v\)的两个不相邻的邻点\(a,b\),并将\(va,vb\)替换为\(ab\)。不含\(v\)的图仍然连通,而\(v\)还保留\(d-2\geq 1\)个邻点,所以所得的图是连通的。
- 若删去\(v\)后得到若干个连通分支,则每个分支都含有\(v\)的至少两个邻点:否则,该分支与\(v\)相连的唯一一条边就是桥。从不同的分支中选取邻点\(a,b\)。它们不相邻,因此允许在\(v\)处进行操作。操作后,不含\(v\)的图的每个分支中仍有\(v\)的邻点,所以连通性仍然保持。
所得的图不是完全图,因为此时边\(va\)不存在;由奇偶性保持不变,它仍有奇度顶点。因此,只要没有桥,我们就可以重复这一过程。由于每次操作都使边数减少,这一过程最终必定产生一条桥。
其次,对于任何一个图,若其每个至少含有两个顶点的连通分支都含有桥,则可以将它化为所要求的形式。 我们说明如何在保持这一性质的同时,对任何至少含有三个顶点的分支\(H\)进行化简。
选取\(H\)的一条桥\(uv\)。至少有一个端点的度数不小于二,不妨设为\(v\);否则,由连通性可知\(H\)只由这一条边组成。
若存在一条与\(v\)关联且不是桥的边\(vw\),则选取这样一条边。否则,任取一个邻点\(w\neq u\)。在这两种情形下,\(u\)和\(w\)都不相邻,因为若存在边\(uw\),则桥\(uv\)会位于一个三角形中。因此,我们可以将\(uv,vw\)替换为\(uw\)。
分两种情形讨论。
- 边\(vw\)不是桥。 删去\(vw\)后,\(H-uv\)的两个分支仍然各自连通:若含有\(v,w\)的分支变得不连通,则\(H-vw\)也会不连通,这与\(vw\)的选取矛盾。新边\(uw\)连接这两个分支,且是一条桥。因此,所得的图连通且含有桥。
- 每条与\(v\)关联的边都是桥。 删去\(uv\)和\(vw\)后,得到分别含有\(u,v,w\)的三个分支。新边\(uw\)连接第一个和第三个分支,且是一条桥。含有\(v\)的分支或者是孤立顶点\(v\),或者含有一条剩余的与\(v\)关联的边。这样的边仍然是桥,因为删去其他边不可能产生一条绕过它的路径。
因此,所得图的每个至少含有两个顶点的分支仍然含有桥。只要有某个分支至少含有三个顶点,就可以重复这一过程。边数每次都减少,所以最终每个分支都至多含有两个顶点。引理得证。
现在将引理应用于题目中的网络。初始时每个顶点的度数至少为\(1009\),所以每个连通分支至少含有\(1010\)个顶点。因此,若有两个分支,就至少需要\(2020\)个顶点。由于总共只有\(2019\)个顶点,该图是连通的。
它不是完全图,因为其顶点的度数至多为\(1010<2018\),并且它有度数为奇数\(1009\)的顶点。因此,由引理可得一个允许的操作序列,使得操作后每个顶点的度数至多为一,这正是所要证明的结论。\(\square\)
解答已与 IMO 官方预选题(shortlist)解答核对。
IMO 2019 · Задача 3
В социальной сети 2019 пользователей. Некоторые пользователи дружат с некоторыми другими, при этом отношение дружбы взаимно, то есть если пользователь \(A\) дружит с пользователем \(B\), то \(B\) также дружит с \(A\). Перестройки следующего типа производятся последовательно, по одной перестройке за раз:
выбираются три пользователя \(A\), \(B\) и \(C\) таких, что \(A\) дружит и с \(B\) и с \(C\), но \(B\) и \(C\) не дружат между собой; после чего \(B\) и \(C\) становятся друзьями, но \(A\) теперь не дружит ни с \(B\), ни с \(C\).
Изначально 1010 пользователей имеют по 1009 друзей, а 1009 пользователей имеют по 1010 друзей. Докажите, что существует последовательность перестроек, после которой каждый пользователь будет иметь не более одного друга.
Официальный русский текст задачи. Официальный текст задач (PDF)
Решение
Представим сеть простым неориентированным графом, в котором пользователям соответствуют вершины, а отношениям дружбы — рёбра. Разрешённая операция заменяет рёбра \(ab,ac\) ребром \(bc\) при условии, что ребро \(bc\) отсутствует. Она уменьшает степень \(a\) на два и оставляет все остальные степени неизменными. Таким образом, чётность степени каждой вершины сохраняется, а число рёбер уменьшается на один.
Докажем следующее более сильное утверждение.
Лемма. Любой конечный связный граф, не являющийся полным и имеющий вершину нечётной степени, можно разрешёнными операциями преобразовать в граф, все вершины которого имеют степень не больше единицы.
Мостом называется ребро, удаление которого нарушает связность содержащей его компоненты связности.
Во-первых, можно получить связный граф, содержащий мост. Предположим, что в текущем графе нет мостов. Выберем вершину \(v\) максимальной степени \(d\). Вершина нечётной степени не может иметь степень один, поскольку тогда инцидентное ей ребро было бы мостом. Поэтому \(d\geq 3\).
Соседи \(v\) не могут быть все попарно смежными. Действительно, в противном случае каждый из них уже имел бы \(d\) соседей в множестве, состоящем из \(v\) и её соседей. В силу максимальности \(d\) ни у одного из них не было бы соседей вне этого множества. Тогда из связности следовало бы, что весь граф полный.
Теперь выберем операцию, сохраняющую связность.
- Если после удаления \(v\) остаётся связный граф, выберем двух несмежных соседей \(a,b\) вершины \(v\) и заменим \(va,vb\) ребром \(ab\). Граф без \(v\) остаётся связным, а у \(v\) сохраняется \(d-2\geq 1\) соседей, поэтому полученный граф связен.
- Если после удаления \(v\) остаётся несколько компонент, каждая из них содержит хотя бы двух соседей \(v\): иначе её единственное ребро, соединяющее её с \(v\), было бы мостом. Выберем соседей \(a,b\) в разных компонентах. Они несмежны, поэтому операция в вершине \(v\) разрешена. После неё в каждой компоненте графа без \(v\) по-прежнему остаётся сосед \(v\), так что связность снова сохраняется.
Полученный граф не является полным, поскольку теперь ребро \(va\) отсутствует, и в нём по-прежнему есть вершина нечётной степени в силу сохранения чётности. Следовательно, пока мостов нет, мы можем повторять эту процедуру. Поскольку каждая операция уменьшает число рёбер, в конце концов процедура обязательно приводит к появлению моста.
Во-вторых, любой граф, в котором каждая компонента, содержащая хотя бы две вершины, имеет мост, можно привести к требуемому виду. Покажем, как сохранить это свойство, уменьшая число рёбер в любой компоненте \(H\), содержащей хотя бы три вершины.
Выберем мост \(uv\) компоненты \(H\). Хотя бы один его конец, скажем \(v\), имеет степень не меньше двух; иначе из связности следовало бы, что \(H\) состоит только из этого ребра.
Если у \(v\) есть инцидентное ребро \(vw\), не являющееся мостом, выберем такое ребро. В противном случае выберем любого соседа \(w\neq u\). В обоих случаях \(u\) и \(w\) несмежны, поскольку наличие ребра \(uw\) означало бы, что мост \(uv\) входит в треугольник. Следовательно, можно заменить \(uv,vw\) ребром \(uw\).
Возможны два случая.
- Ребро \(vw\) не является мостом. Две компоненты графа \(H-uv\) остаются связными после удаления \(vw\): если бы связность компоненты, содержащей \(v,w\), нарушилась, то и граф \(H-vw\) был бы несвязным, вопреки выбору \(vw\). Новое ребро \(uw\) соединяет эти две компоненты и является мостом. Таким образом, полученный граф связен и содержит мост.
- Каждое ребро, инцидентное \(v\), является мостом. Удаление \(uv\) и \(vw\) даёт три компоненты, содержащие соответственно \(u,v,w\). Новое ребро \(uw\) соединяет первую и третью компоненты и является мостом. Компонента, содержащая \(v\), либо состоит из изолированной вершины \(v\), либо содержит оставшееся ребро, инцидентное \(v\). Такое ребро по-прежнему является мостом, поскольку удаление других рёбер не может создать путь в обход него.
Таким образом, каждая полученная компонента, содержащая хотя бы две вершины, по-прежнему имеет мост. Мы можем повторять процедуру, пока есть компонента, содержащая хотя бы три вершины. Число рёбер каждый раз уменьшается, поэтому в конце концов каждая компонента будет содержать не более двух вершин. Лемма доказана.
Теперь применим её к данной сети. Изначально каждая вершина имеет степень не меньше \(1009\), поэтому каждая компонента связности содержит хотя бы \(1010\) вершин. Для двух компонент потребовалось бы, следовательно, хотя бы \(2020\) вершин. Поскольку их всего \(2019\), граф связен.
Он не является полным, поскольку степени его вершин не превосходят \(1010<2018\), и в нём есть вершины нечётной степени \(1009\). Следовательно, по лемме существует последовательность разрешённых перестроек, после которой каждая вершина имеет степень не больше единицы, что и требовалось. \(\square\)
Решение проверено по официальным решениям шортлиста IMO.
IMO 2019 · المسألة 3
لدينا شبكة اتصالات اجتماعية فيها \(2019\) مستخدم، بعض الثنائيات منهم أصدقاء. فعندما يكون \(A\) صديقاً لـ \(B\) يكون \(B\) صديقاً لـ \(A\). الأحداث من النوع التالي يمكن أن تتكرر في كل حادثة مرة واحدة:
عندما يكون لدينا ثلاثة مستخدمين \(A,B,C\) بحيث أن \(A\) صديق لكل من \(B,C\) ولكن \(B,C\) ليسا صديقين فإن هذا يتغير إلى الحالة التالية والتي فيها \(B,C\) يصبحان صديقين ولكن \(A\) لايعود صديقاً لـ \(B\) ولا لـ \(C\). كل علاقات الصداقة الأخرى لا تتغير.
ابتداءً لدينا \(1010\) مستخدماً كل منهم صديق لـ \(1009\) من المستخدمين، و \(1009\) مستخدماً كل واحد منهم له \(1010\) صديق.
برهن أنه توجد متوالية من الأحداث بحيث يكون لكل شخص صديق واحد على الأكثر.
نص المسألة هو الترجمة العربية الرسمية. ورقة المسائل الرسمية (PDF)
الحل
نمثل الشبكة ببيان بسيط غير موجه، يمثل المستخدمون رؤوسه وتمثل الصداقات حوافه. تستبدل العملية المسموح بها الحافتين \(ab,ac\) بالحافة \(bc\)، بشرط عدم وجود \(bc\). وهي تنقص درجة \(a\) بمقدار اثنين وتترك جميع الدرجات الأخرى دون تغيير. ومن ثم تحتفظ كل درجة بزوجيتها أو فرديتها، بينما ينقص عدد الحواف بمقدار واحد.
نثبت العبارة الأقوى الآتية.
لمّة. يمكن تحويل كل بيان منتهٍ متصل غير كامل وله رأس ذو درجة فردية، بواسطة العمليات المسموح بها، إلى بيان تكون درجة كل رأس فيه واحدًا على الأكثر.
الجسر هو حافة يؤدي حذفها إلى فصل المركبة المتصلة التي تحتوي عليها.
أولًا، يمكننا الحصول على بيان متصل يحتوي على جسر. لنفترض أن البيان الحالي لا يحتوي على جسر. نختار رأسًا \(v\) ذا درجة عظمى \(d\). لا يمكن أن تكون درجة رأس ذي درجة فردية مساوية لواحد، وإلا كانت الحافة المتصلة به جسرًا. لذلك \(d\geq 3\).
لا يمكن أن يكون كل رأسين من جيران \(v\) متجاورين. فلو كان الأمر كذلك، لكان لكل منهم بالفعل \(d\) جيران ضمن المجموعة المؤلفة من \(v\) وجيرانه. وبما أن \(d\) هي الدرجة العظمى، فلن يكون لأي منهم جار خارج هذه المجموعة. وعندئذ يقتضي الاتصال أن يكون البيان كله كاملًا.
نختار الآن عملية تحافظ على الاتصال.
- إذا كان حذف \(v\) يترك بيانًا متصلًا، نختار جارين غير متجاورين \(a,b\) للرأس \(v\)، ونستبدل \(va,vb\) بالحافة \(ab\). يبقى البيان دون \(v\) متصلًا، ويحتفظ \(v\) بعدد من الجيران يساوي \(d-2\geq 1\)، فيكون البيان الناتج متصلًا.
- إذا كان حذف \(v\) يترك عدة مركبات، فإن كلًا منها تحتوي على جارين على الأقل للرأس \(v\): وإلا كانت الحافة الوحيدة التي تصلها بـ\(v\) جسرًا. نختار جارين \(a,b\) من مركبتين مختلفتين. وهما غير متجاورين، فتكون العملية عند \(v\) مسموحًا بها. وبعدها، تظل كل مركبة من البيان دون \(v\) محتوية على جار للرأس \(v\)، فيُحافَظ على الاتصال مرة أخرى.
البيان الناتج غير كامل، لأن \(va\) لم تعد موجودة، ولا يزال فيه رأس ذو درجة فردية بسبب الحفاظ على زوجية الدرجات وفرديتها. وبالتالي، كلما لم يوجد جسر أمكننا تكرار هذا الإجراء. وبما أن كل عملية تنقص عدد الحواف، فلا بد أن ينتج عن هذا الإجراء جسر في نهاية المطاف.
ثانيًا، يمكن اختزال أي بيان تحتوي فيه كل مركبة ذات رأسين على الأقل على جسر إلى الشكل المطلوب. نبين كيف نحافظ على هذه الخاصية مع اختزال أي مركبة \(H\) ذات ثلاثة رؤوس على الأقل.
نختار جسرًا \(uv\) من \(H\). لا بد أن يكون أحد طرفيه على الأقل، وليكن \(v\)، ذا درجة لا تقل عن اثنين؛ وإلا لاقتضى الاتصال أن تتكون \(H\) من هذه الحافة وحدها.
إذا كانت هناك حافة \(vw\) متصلة بالرأس \(v\) وليست جسرًا، نختار حافة كهذه. وإلا، نختار أي جار \(w\neq u\). في كلتا الحالتين، يكون \(u\) و\(w\) غير متجاورين، لأن وجود حافة \(uw\) سيجعل الجسر \(uv\) ضمن مثلث. ومن ثم يمكننا استبدال \(uv,vw\) بالحافة \(uw\).
لدينا حالتان.
- الحافة \(vw\) ليست جسرًا. تبقى كل من مركبتي \(H-uv\) متصلة بعد حذف \(vw\): فلو انفصلت المركبة المحتوية على \(v,w\)، لكان \(H-vw\) أيضًا غير متصل، خلافًا لاختيار \(vw\). تصل الحافة الجديدة \(uw\) بين هاتين المركبتين وتكون جسرًا. إذن البيان الناتج متصل ويحتوي على جسر.
- كل حافة متصلة بالرأس \(v\) هي جسر. ينتج عن حذف \(uv\) و\(vw\) ثلاث مركبات تحتوي على \(u,v,w\)، على الترتيب. تصل الحافة الجديدة \(uw\) بين المركبتين الأولى والثالثة وتكون جسرًا. أما المركبة المحتوية على \(v\)، فإما أن تكون الرأس المعزول \(v\)، أو أن تحتوي على حافة باقية متصلة بالرأس \(v\). وتظل هذه الحافة جسرًا، لأن حذف حواف أخرى لا يمكن أن ينشئ مسارًا يتجاوزها.
إذن تظل كل مركبة ناتجة ذات رأسين على الأقل محتوية على جسر. يمكننا التكرار كلما وجدت مركبة ذات ثلاثة رؤوس على الأقل. وينقص عدد الحواف في كل مرة، لذا يصبح لكل مركبة في النهاية رأسان على الأكثر. وهذا يثبت اللمّة.
نطبقها الآن على الشبكة المعطاة. درجة كل رأس في البداية لا تقل عن \(1009\)، لذا تحتوي كل مركبة متصلة على \(1010\) رؤوس على الأقل. وبالتالي فإن وجود مركبتين يتطلب \(2020\) رأسًا على الأقل. وبما أنه لا يوجد سوى \(2019\) رأسًا، فإن البيان متصل.
وهو غير كامل، لأن درجاته لا تتجاوز \(1010<2018\)، وفيه رؤوس ذات درجة فردية \(1009\). ومن ثم توفر اللمّة متوالية من الأحداث المسموح بها تصبح بعدها درجة كل رأس واحدًا على الأكثر، كما هو مطلوب. \(\square\)
تمت مراجعة الحل بمقارنته بالحلول الرسمية لقائمة IMO المختصرة.