Âîëãà ÈÒ - 2012


                          Îñíîâíîé òóð
                          Ðàçáîð çàäà÷



                              Óëüÿíîâñê
                                2012ã.




1/9   Îñíîâíîé òóð   Ðàçáîð çàäà÷    Âîëãà ÈÒ - 2012
À. Ïèê Áàëìåðà.




      Íàéäåì ìèíèìàëüíî âîçìîæíûé ðàçìåð îäíîé ïîðöèè, ïðè êîòîðîì
      õâàòèò âñåõ êîìïîíåíò. Îí ðàâåí min( Acnt , Bcnt , Ccnt ). Èñõîäÿ èç
                                            Av     Bv     Cv

      ýòîãî ðàçìåðà, íàõîäèì îáúåì êîêòåéëÿ, ñîäåðæàùåãî
      Acnt + Bcnt + Ccnt ïîðöèé.




2/9                 Îñíîâíîé òóð   Ðàçáîð çàäà÷   Âîëãà ÈÒ - 2012
B. Óïðàæíåíèå.




      Îòâåò - ÷èñëà 1m+1 , 2m+1 . . . ( m+1 + 1)m+1 . Íåîáõîäèìî áûëî
                                        n−1

      âûâîäèòü ïî ìîäóëþ 1000000007.




3/9                 Îñíîâíîé òóð   Ðàçáîð çàäà÷   Âîëãà ÈÒ - 2012
C. Ðàäèîñòàíöèÿ.




       çàäà÷å íåîáõîäèìî ïðîâåðèòü ÷òî êàæäûå m ïîäðÿä èäóùèõ ÷èñåë
      èç n ñîäåðæàò âñå ÷èñëà îò 1 äî m ðîâíî ïî îäíîìó ðàçó.
      Ïðîñòàÿ ïðîâåðêà íå óêëàäûâàåòñÿ âî âðåìÿ. Íî åñëè èçâåñòíî ÷òî
      äëÿ èíòåðâàëà [1 . . . n] óñëîâèå âûïîëíÿåòñÿ, òîãäà äëÿ ñëåäóþøåãî
      îíî áóäåò âûïîëíÿòüñÿ ïðè óñëîâèè ðàâåíñòâà ýëåìåíòîâ íà ïîçèöèè
      1 è (m+1), êîòîðûé ïðèõîäèò åé íà çàìåíó ïðè ñäâèãå.
      Òàêèì îáðàçîì, íåîáõîäèìî ïðîâåðèòü äëÿ íà÷àëüíîãî èíòåðâàëà, à
      çàòåì ïðîâåðèòü ðàâåíñòâà âñåõ ïàð ýëåìåíòîâ, ìåæäó êîòîðûìè
      äèñòàíöèÿ (m+1).




4/9                 Îñíîâíîé òóð   Ðàçáîð çàäà÷   Âîëãà ÈÒ - 2012
D. Äîðîãè.




       çàäà÷å òðåáóåòñÿ çíàíèå àëãîðèòìà ïîèñêà êðàò÷àéøåãî ïóòè,
      íàïðèìåð Äåéêñòðû. Ñóùåñòâóåò äâà ñïîñîáà íàïèñàíèÿ ýòîãî
      àëãîðèòìà - O(n2 ) è O(m ∗ log(n)). Â çàâèñèìîñòè îò òîãî ÿâëÿåòñÿ
      ëè ãðàô ðàçðåæåííûì ìîæíî ïðèìåíèòü îäèí èëè äðóãîé. Â äàííîì
      ñëó÷àåå âûãîäíåå íàïèñàòü àëãîðèòì çà êâàäðàòíîå âðåìÿ.
      Íîâûå äîðîãè ïðîâîäÿòñÿ òîëüêî ìåæäó ãîðîäàìè. Ïðîâåäåì ñæàòèå
      ãðàôà äî ãðàôà ãîðîäîâ çà O(k ∗ n2 ). Êàæäûé çàïðîñ íà äîáàâëåíèå
      äîðîãè âûïîëíÿåì çà O(k 2 ) ïåðåáèðàÿ âñå ïàðû ãîðîäîâ è
      ïåðåñ÷èòûâàÿ ðàññòîÿíèÿ ìåæäó íèìè. Ýòîò àëãîðèòì óêëàäûâàåòñÿ
      â Time Limit.




5/9                Îñíîâíîé òóð   Ðàçáîð çàäà÷   Âîëãà ÈÒ - 2012
E. Çàìå÷àòåëüíîå ðåøåíèå.




      "Íàèâíîå"ðåøåíèå - õðàíèì âñå èçìåíåíèÿ, ïðè êàæäîì çàïðîñå íà
      âûâîä èçìåíÿåì ìàòðèöó è ïðîèçâîäèì ïîäñ÷åò êîíòðîëüíîãî
      çíà÷åíèÿ. Ñëîæíîñòü â õóäøåì ñëó÷àå - O(m2 + mn).
      Áîëåå áûñòðîå ðåøåíèå - èñïîëüçîâàíèå ïåðñèñòåíòíûõ ñòðóêòóð
      äàííûõ, ïîçâîëÿþùèõ íàõîäèòü ôóíêöèþ íà ïîäìàòðèöå çà
      O(log 2 n).
      Íàïðèìåð, äåðåâî îòðåçêîâ (http://e-maxx.ru/algo/segment_tree).




6/9                Îñíîâíîé òóð   Ðàçáîð çàäà÷   Âîëãà ÈÒ - 2012
F. Ñêëàä.




      Êàæäûé êîíòåéíåð, ñòîÿùèé íà êàêîì-ëèáî äðóãîì íàâåðíÿêà
      ïðèäåòñÿ ïåðåäâèíóòü, òàê ÷òî âñå òàêèå êîíòåéíåðû ìîæíî ñðàçó
      ïðèáàâèòü ê îòâåòó. Äàëåå, íàäî íàéòè ïðÿìîóãîëüíèê, êîòîðûé óæå
      ñîäåðæèò íàèáîëüøåå êîëè÷åñòâî êîíòåéíåðîâ, ñ ïëîùàäüþ, ðàâíîé
      îáùåìó êîëè÷åñòâó êîíòåéíåðîâ. Ýòî ìîæíî ñäåëàòü, ïåðåáðàâ âñå
      âîçìîæíûå ïðÿìîóãîëüíèêè çà O(n4 ).




7/9                Îñíîâíîé òóð   Ðàçáîð çàäà÷   Âîëãà ÈÒ - 2012
G. Äâàäöàòü îäíî.



      Ðàññìîòðèì âñå âîçìîæíûå ñîñòîÿíèÿ â êîòîðûõ ìîæåò íàõîäèòüñÿ
      èãðà è ïîñ÷èòàåì âåðîÿòíîñòü ïîáåäû. Êîäèðóåì ñîñòîÿíèÿ òàê: ãäå
      íàõîäèòñÿ êàæäàÿ êàðòà, ÷åé õîä, ïðîïóñêàåò ëè õîä äðóãîé èãðîê;
      dp[3n ][2][2]. Äåëàåì ðåêóðñèâíóþ ôóíêöèþ ïîäñ÷åòà ñ ìåìîèçàöåé.
      Åñëè èãðà çàêàí÷èâàåòñÿ â äàííîé ïîçèöèè - âåðîÿòíîñòü ïîáåäû
      ëèáî 1.0, ëèáî 0.0.  èíîì ñëó÷àå âåðîÿòíîñòü ïåðåñ÷èòûâàåòñÿ
      èñõîäÿ èç äîñòèæèìûõ ñîñòîÿíèé.  ñëó÷àå êîãäà õîä äåëàåò èãðîê
      1, îí ìàêñèìèçèðóåò âåðîÿòíîñòü åãî ïîáåäû, èãðîê 2 æå
      ìèíèìèçèðóåò (minmax ìåòîä). Åñëè â îïðåäåëåííîì ñîñòîÿíèè
      òåêóùèì èãðîêîì áåðåòñÿ åùå îäíà êàðòà, òîãäà îíà âûïàäàåò
      ñëó÷àéíî èç âñåõ îñòàâøèõñÿ. Òàêèì îáðàçîì ñóììàðíàÿ
      âåðîÿòíîñòü ïîáåäû ðàâíà ñðåäíåìó àðèôìåòè÷åñêîìó îòâåòîâ äëÿ
      âñåõ íîâûõ ñîñòîÿíèé. Ñ÷èòàåì ðåêóðñèâíî ôóíêöèþ solve(mask,
      player, skip). Îñòàåòñÿ âûâåñòè â îòâåò solve(0, 0, 0).




8/9                Îñíîâíîé òóð   Ðàçáîð çàäà÷   Âîëãà ÈÒ - 2012
Ñïàñèáî çà âíèìàíèå!




9/9   Îñíîâíîé òóð   Ðàçáîð çàäà÷   Âîëãà ÈÒ - 2012

Volga IT - 2012 Final round task analisys

  • 1.
    Âîëãà ÈÒ -2012 Îñíîâíîé òóð Ðàçáîð çàäà÷ Óëüÿíîâñê 2012ã. 1/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012
  • 2.
    À. Ïèê Áàëìåðà. Íàéäåì ìèíèìàëüíî âîçìîæíûé ðàçìåð îäíîé ïîðöèè, ïðè êîòîðîì õâàòèò âñåõ êîìïîíåíò. Îí ðàâåí min( Acnt , Bcnt , Ccnt ). Èñõîäÿ èç Av Bv Cv ýòîãî ðàçìåðà, íàõîäèì îáúåì êîêòåéëÿ, ñîäåðæàùåãî Acnt + Bcnt + Ccnt ïîðöèé. 2/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012
  • 3.
    B. Óïðàæíåíèå. Îòâåò - ÷èñëà 1m+1 , 2m+1 . . . ( m+1 + 1)m+1 . Íåîáõîäèìî áûëî n−1 âûâîäèòü ïî ìîäóëþ 1000000007. 3/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012
  • 4.
    C. Ðàäèîñòàíöèÿ.  çàäà÷å íåîáõîäèìî ïðîâåðèòü ÷òî êàæäûå m ïîäðÿä èäóùèõ ÷èñåë èç n ñîäåðæàò âñå ÷èñëà îò 1 äî m ðîâíî ïî îäíîìó ðàçó. Ïðîñòàÿ ïðîâåðêà íå óêëàäûâàåòñÿ âî âðåìÿ. Íî åñëè èçâåñòíî ÷òî äëÿ èíòåðâàëà [1 . . . n] óñëîâèå âûïîëíÿåòñÿ, òîãäà äëÿ ñëåäóþøåãî îíî áóäåò âûïîëíÿòüñÿ ïðè óñëîâèè ðàâåíñòâà ýëåìåíòîâ íà ïîçèöèè 1 è (m+1), êîòîðûé ïðèõîäèò åé íà çàìåíó ïðè ñäâèãå. Òàêèì îáðàçîì, íåîáõîäèìî ïðîâåðèòü äëÿ íà÷àëüíîãî èíòåðâàëà, à çàòåì ïðîâåðèòü ðàâåíñòâà âñåõ ïàð ýëåìåíòîâ, ìåæäó êîòîðûìè äèñòàíöèÿ (m+1). 4/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012
  • 5.
    D. Äîðîãè.  çàäà÷å òðåáóåòñÿ çíàíèå àëãîðèòìà ïîèñêà êðàò÷àéøåãî ïóòè, íàïðèìåð Äåéêñòðû. Ñóùåñòâóåò äâà ñïîñîáà íàïèñàíèÿ ýòîãî àëãîðèòìà - O(n2 ) è O(m ∗ log(n)).  çàâèñèìîñòè îò òîãî ÿâëÿåòñÿ ëè ãðàô ðàçðåæåííûì ìîæíî ïðèìåíèòü îäèí èëè äðóãîé.  äàííîì ñëó÷àåå âûãîäíåå íàïèñàòü àëãîðèòì çà êâàäðàòíîå âðåìÿ. Íîâûå äîðîãè ïðîâîäÿòñÿ òîëüêî ìåæäó ãîðîäàìè. Ïðîâåäåì ñæàòèå ãðàôà äî ãðàôà ãîðîäîâ çà O(k ∗ n2 ). Êàæäûé çàïðîñ íà äîáàâëåíèå äîðîãè âûïîëíÿåì çà O(k 2 ) ïåðåáèðàÿ âñå ïàðû ãîðîäîâ è ïåðåñ÷èòûâàÿ ðàññòîÿíèÿ ìåæäó íèìè. Ýòîò àëãîðèòì óêëàäûâàåòñÿ â Time Limit. 5/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012
  • 6.
    E. Çàìå÷àòåëüíîå ðåøåíèå. "Íàèâíîå"ðåøåíèå - õðàíèì âñå èçìåíåíèÿ, ïðè êàæäîì çàïðîñå íà âûâîä èçìåíÿåì ìàòðèöó è ïðîèçâîäèì ïîäñ÷åò êîíòðîëüíîãî çíà÷åíèÿ. Ñëîæíîñòü â õóäøåì ñëó÷àå - O(m2 + mn). Áîëåå áûñòðîå ðåøåíèå - èñïîëüçîâàíèå ïåðñèñòåíòíûõ ñòðóêòóð äàííûõ, ïîçâîëÿþùèõ íàõîäèòü ôóíêöèþ íà ïîäìàòðèöå çà O(log 2 n). Íàïðèìåð, äåðåâî îòðåçêîâ (http://e-maxx.ru/algo/segment_tree). 6/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012
  • 7.
    F. Ñêëàä. Êàæäûé êîíòåéíåð, ñòîÿùèé íà êàêîì-ëèáî äðóãîì íàâåðíÿêà ïðèäåòñÿ ïåðåäâèíóòü, òàê ÷òî âñå òàêèå êîíòåéíåðû ìîæíî ñðàçó ïðèáàâèòü ê îòâåòó. Äàëåå, íàäî íàéòè ïðÿìîóãîëüíèê, êîòîðûé óæå ñîäåðæèò íàèáîëüøåå êîëè÷åñòâî êîíòåéíåðîâ, ñ ïëîùàäüþ, ðàâíîé îáùåìó êîëè÷åñòâó êîíòåéíåðîâ. Ýòî ìîæíî ñäåëàòü, ïåðåáðàâ âñå âîçìîæíûå ïðÿìîóãîëüíèêè çà O(n4 ). 7/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012
  • 8.
    G. Äâàäöàòü îäíî. Ðàññìîòðèì âñå âîçìîæíûå ñîñòîÿíèÿ â êîòîðûõ ìîæåò íàõîäèòüñÿ èãðà è ïîñ÷èòàåì âåðîÿòíîñòü ïîáåäû. Êîäèðóåì ñîñòîÿíèÿ òàê: ãäå íàõîäèòñÿ êàæäàÿ êàðòà, ÷åé õîä, ïðîïóñêàåò ëè õîä äðóãîé èãðîê; dp[3n ][2][2]. Äåëàåì ðåêóðñèâíóþ ôóíêöèþ ïîäñ÷åòà ñ ìåìîèçàöåé. Åñëè èãðà çàêàí÷èâàåòñÿ â äàííîé ïîçèöèè - âåðîÿòíîñòü ïîáåäû ëèáî 1.0, ëèáî 0.0.  èíîì ñëó÷àå âåðîÿòíîñòü ïåðåñ÷èòûâàåòñÿ èñõîäÿ èç äîñòèæèìûõ ñîñòîÿíèé.  ñëó÷àå êîãäà õîä äåëàåò èãðîê 1, îí ìàêñèìèçèðóåò âåðîÿòíîñòü åãî ïîáåäû, èãðîê 2 æå ìèíèìèçèðóåò (minmax ìåòîä). Åñëè â îïðåäåëåííîì ñîñòîÿíèè òåêóùèì èãðîêîì áåðåòñÿ åùå îäíà êàðòà, òîãäà îíà âûïàäàåò ñëó÷àéíî èç âñåõ îñòàâøèõñÿ. Òàêèì îáðàçîì ñóììàðíàÿ âåðîÿòíîñòü ïîáåäû ðàâíà ñðåäíåìó àðèôìåòè÷åñêîìó îòâåòîâ äëÿ âñåõ íîâûõ ñîñòîÿíèé. Ñ÷èòàåì ðåêóðñèâíî ôóíêöèþ solve(mask, player, skip). Îñòàåòñÿ âûâåñòè â îòâåò solve(0, 0, 0). 8/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012
  • 9.
    Ñïàñèáî çà âíèìàíèå! 9/9 Îñíîâíîé òóð Ðàçáîð çàäà÷ Âîëãà ÈÒ - 2012