Upgrade to Pro — share decks privately, control downloads, hide ads and more …

sig-procon-regular-03

Avatar for ZenReKkyo ZenReKkyo
October 17, 2025
9

 sig-procon-regular-03

Avatar for ZenReKkyo

ZenReKkyo

October 17, 2025

Transcript

  1. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 October 17, 2025 Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 1 / 27
  2. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ໨࣍ 1 ͸͡Ίʹ 2 Min Cost Flow 3 b-flow 4 άϥϑͷߏங Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 2 / 27
  3. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ໨࣍ 1 ͸͡Ίʹ 2 Min Cost Flow 3 b-flow 4 άϥϑͷߏங Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 3 / 27
  4. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࣗݾ঺հ Rho17 • ཧֶ෦৘ใՊֶՊ B4(2025 ೥ ݱࡏ) • AtCoder ԫ (2009) • ຖ೔ Overleaf ͱ޲͖߹͍ͬͯΔ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 4 / 27
  5. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ໨࣍ 1 ͸͡Ίʹ 2 Min Cost Flow 3 b-flow 4 άϥϑͷߏங Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 5 / 27
  6. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow ࠷খඅ༻ྲྀ N ݸͷڌ఺͕͋Γɺڌ఺ S ͔Βڌ఺ T ·Ͱ෺ࢿΛӡͼ͍ͨɻ෺ࢿ͸ڌ఺ ui ͔ Βڌ఺ vi ʹҰํ௨ߦͰӡͿ͜ͱ͕Ͱ͖ɺ1 ೔͋ͨΓ࠷େͷ༌ૹྔ ci ͱ༌ૹྔ 1 ౰ͨΓͷίετ wi ͕ܾ·͍ͬͯΔɻ1 ೔ʹ S ͔Β T ·Ͱ F ӡͼ͍ͨ࣌ɺ࠷খ ίετ͸͍͘Β͔ʁ F ӡ΂ͳ͍৔߹͸ͦͷΑ͏ʹใࠂͤΑɻ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 6 / 27
  7. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow ໰୊Λάϥϑཧ࿦ͷ༻ޠͰݴ͍׵͑Δ ࠷খඅ༻ྲྀ N ௖఺ͷ༗޲άϥϑ G = (V, E) ͕͋Γɺ֤ลʹ͸༰ྔ c(e) ͱίετ w(e) ͕ఆ ·͍ͬͯΔɻ ֤ล͔Β࣮਺΁ͷؔ਺ f : E → R ΛҎԼͷ৚݅Λຬͨ͢Α͏ʹ ఆΊΔɻ • 0 ≤ f(e) ≤ c(e) • ༰ྔ੍໿ • u ∈ V \ {S, T} ʹ͍ͭͯɺ ∑ v∈V f(v, u) = ∑ v∈V f(u, v) • ࢝఺ͱऴ఺Ҏ֎ͰೖΔྔͱग़Δྔ͸ಉ͡ ྲྀྔ ∑ v∈V f(S, v) = F ͷԼͰɺ ∑ f(e)w(e) Λ minimize ͤΑɻ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 7 / 27
  8. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow ACL ͕ఏڙͯ͘͠Ε͍ͯΔͷͰɺͦΕΛ࢖͏ʢऴʣ ࢀߟɿAtCoder Library ͷυΩϡϝϯτ Listing 1: mcf 1 auto graph=mcf_graph<int,int>(N); 2 for(int i=0;i<E;i++){ 3 graph.add_edge(u[i],v[i],c[i],w[i]); 4 } 5 auto ans=graph.flow(S,T,F); Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 8 / 27
  9. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow ACL ͕ఏڙͯ͘͠Ε͍ͯΔͷͰɺͦΕΛ࢖͏ʢऴʣ ࢀߟɿAtCoder Library ͷυΩϡϝϯτ Listing 2: mcf 1 auto graph=mcf_graph<int,int>(N); 2 for(int i=0;i<E;i++){ 3 graph.add_edge(u[i],v[i],c[i],w[i]); 4 } 5 auto ans=graph.flow(S,T,F); ಺෦ͷΞϧΰϦζϜ͸ʁˠ Ford-Fulkerson ͱ΄΅ಉ͡ʂ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 9 / 27
  10. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow • ࠷୹࿏൓෮๏ • શͯͷลͷྲྀྔΛ 0 ͰॳظԽ • S ͔Β T ·Ͱ࢒༨άϥϑ্Ͱ࠷΋҆͘ྲྀͤΔύεΛݟ͚ͭɺྲྀͤΔ͚ͩ ྲྀ͢ • F ྲྀͤͳ͘ͳ͔ͬͨ F ྲྀ͠੾ͬͨΒ͓ΘΓ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 10 / 27
  11. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow ࠷΋҆͘ྲྀͤΔύεˠ࠷୹࿏໰୊ʁ ࠓճ͸࢒༨άϥϑͷ͍ͤͰෛลೖΓˠ Bellman-Ford Λ࢖͏ ܭࢉྔ͸ O(FV E) Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 11 / 27
  12. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow ਖ਼౰ੑͷུ֓ f ͕࠷খඅ༻ྲྀͰ͋Δ͜ͱͱ࢒༨άϥϑʹෛͷด࿏͕ଘࡏ͠ͳ͍͜ͱ͸ಉ஋Ͱ ͋Δɻྲྀྔ x ͷϑϩʔ fx ͕࠷খඅ༻ྲྀͰ͋ΔͱԾఆ͠ɺͦͷ࢒༨άϥϑͰ࠷ ୹࿏ΛͱΓ 1 ྲྀͨ͠ϑϩʔ fx+1 Λߟ͑Δɻ͜Ε͕࠷খඅ༻ྲྀͰͳ͍ͱԾఆ͢ Δͱෛͷด࿏͕ଘࡏ͢Δ͜ͱʹͳΓɺໃ६ɻ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 12 / 27
  13. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow • Bellman-Ford Λճ͢ඞཁ͕͋Γɼ஗͍ • Dijkstra ͰԿͱ͔Ͱ͖ͳ͍͔ʁˠ ϙςϯγϟϧͷಋೖ • ͜ͷΑ͏ͳΞϧΰϦζϜΛ Primal-Dual ๏ͱݺͿ͜ͱ΋͋Δ ࢒༨άϥϑʹ͓͍ͯɼwuv + pu − pv ≥ 0 Λຬͨ͢Α͏ͳϙςϯγϟϧ͕ଘࡏ͢ Δɽ ʢ؆໿අ༻࠷దੑ৚݅ʣ͜ΕΛຬ͍ͨͯ͠ΔͳΒ͹ɼdistuv + pu − pv ≥ 0 ΋ຬͨ͞ΕΔ͜ͱʹ஫ҙɽ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 13 / 27
  14. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow ลͷίετΛ wuv + pu − pv (؆໿අ༻) ʹஔ͖׵͑ΔɽS → V ΁ͷ؆໿අ༻Λ ܭࢉ͢Δͱɼ͍͍ײ͡ʹϙςϯγϟϧ͕ଧͪফ͠߹͏͜ͱͰ (S → T ࠷୹ڑ ཭)+pS − pV ͱͳΔͷͰɼ؆໿අ༻Λ༻͍ͯ࠷୹࿏ͷܭࢉΛͯ͠΋ྑ͍ɽ ίετ͕ඇෛͳͷͰ Dijkstra Ͱܭࢉͯ͠ྑ͍ɽ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 14 / 27
  15. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங MinCostFlow άϥϑʹෛล͕ͳ͚Ε͹࠷ॳͷ 1 ճ͸ Dijkstra ͰٻΊΕ͹ྑ͍. ࠷ॳͷ Dijkstra Ͱɼ௖఺ v ͷϙςϯγϟϧ hv = distv ͱͯ͠ॳظԽ͢Δɽ ຖճͷ Dijkstra Ͱ͸؆໿අ༻Λڑ཭ͱ͢Δ࠷୹ڑ཭ dv Λܭࢉ͠ɼϑϩʔΛߋ৽ ͨ͠ͷͪ pv ← pv + dv ͱϙςϯγϟϧ΋ߋ৽͢Δɽ ܭࢉྔ͸ O(F(V + E) log(V + E)) Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 15 / 27
  16. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࿅श໰୊ MinCostFlow N × N ͷϚε໨ʹ੔਺ Aij ͕ॻ͔Ε͍ͯΔɽ͜ͷத͔Β͍͔ͭ͘ͷϚεΛબ Ϳ͕ɼͲͷߦͲͷྻʹ͍ͭͯ΋બΜͩϚε K ݸҎԼͰͳ͚Ε͹ͳΒͳ͍ɽબ Μͩ਺ͷ૯࿨ͷ࠷େ஋ΛٻΊɼͦͷ഑ஔΛ෮ݩͤΑɽ • 1 ≤ N ≤ 50 • 0 ≤ Aij ≤ 109 ग़య: AtCoder Library Practice Contest-E Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 16 / 27
  17. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࿅श໰୊ • ߦɾྻΛ௖఺ͱݟͯɼ֤ϚεΛ௖఺ؒʹுΔลͩͱߟ͑Δ • ֤ߦ֤ྻʹ͍ͭͯ S → Ri ʹ༰ྔ K ίετ 0, Ri → Cj ʹ ༰ྔ 1 ίετ −Aij, Cj → T ʹ༰ྔ K ίετ 0 ͷลΛுΔʁʁ • ෛล͸ͦͷ··ுΔ͜ͱ͕Ͱ͖ͳ͍ • ྲྀͤΔ͚ͩྲྀ͢ʢNK ݸऔΔʣͷ͕࠷దͱ͸ݶΒͳ͍ • ͦΕͧΕΛղܾ͢ΔΑ͏ʹάϥϑΛߏங͠Α͏ʂ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 17 / 27
  18. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࿅श໰୊ • NK ҎԼͷྲྀྔͳΒͳΜͰ΋ྑ͍ˠ༨ͬͨྲྀྔΛࣺͯΔ • S → T ʹ༰ྔ ∞, ίετ 0 ͷลΛுΔ • ෛลͷআڈ͸Ұൠʹ͸΍΍໘౗͕ͩɼࠓճ͸ྲྀྔ 1 ͝ͱʹෛลΛ 1 ճ͚ͩ ௨Δ • Ri → Cj ͓Αͼ S → T ͷลͷίετΛશͯఆ਺ M ͚ͩήλΛ͸͔ͤΔ ͱɼίετ͸શମͰ MNK ૿Ճ͢Δ • ͜ͷΑ͏ʹมߋͨ͠άϥϑͰ NK ྲྀ͠ɼ౴͔͑Β MNK ΛҾ͚͹ OK Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 18 / 27
  19. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࿅श໰୊ • AtCoder Beginner Contest 247 G - Dream Team (2159) • AtCoder Beginner Contest 263 G - Erasing Prime Pairs (2261) • AtCoder Regular Contest 137 E - Bakery (3034) • AtCoder Beginner Contest 214 H - Collecting (3138) (MinCostFlow, Ͳ͏ͯ͠΋Ϛονϯά΍ LP བྷΈ͕ଟ͘ MinCostFlow ୯ମ͸͋ ·Γͳ͍......) Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 19 / 27
  20. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ໨࣍ 1 ͸͡Ίʹ 2 Min Cost Flow 3 b-flow 4 άϥϑͷߏங Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 20 / 27
  21. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங b-flow • ௖఺ v ʹ͸ਫͷधཁ/ڙڅׂ͕Γ౰ͯΒΕ͍ͯΔ • bv ≥ 0 ͳΒ௖఺ v ʹ͸ਫ͕ bv ༨͍ͬͯΔ • bv < 0 ͳΒਫ͕ −bv ෆ଍͍ͯ͠Δ • ∑ bi = 0 • cuv ෷ͬͯਫΛ 1u ͔Β v ʹҠ͢͜ͱ͕Ͱ͖Δ ෆ଍Λͳ͘͢࠷খίετʁ Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 21 / 27
  22. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங b-flow • ௖఺ S, T Λ௥Ճ • bi ≥ ͳΒ S → i ʹίετ 0, ༰ྔ bi • bi < 0 ͳΒ i → T ʹίετ 0, ༰ྔ −bi Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 22 / 27
  23. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࿅श໰୊ Increase to make it Increasing ௕͞ N ͷ਺ྻ (A1, · · · , AN ) ͕༩͑ΒΕΔ. M छྨͷૢ࡞͕͋Γɺ ALi , · · · , ARi ʹ 1 Ճࢉ͕Ͱ͖Δ. ਺ྻΛ޿ٛ୯ௐ૿Ճʹ͢Δίετ͸ʁ • 1 ≤ N ≤ 300 • 1 ≤ M ≤ 300 • 1 ≤ Ai ≤ 300 ग़య: ABC421-G Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 23 / 27
  24. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࿅श໰୊ • ֊ࠩΛͱΔͱ BLi−1 ʹ 1 Ճࢉ, BRi ʹ 1 ݮࢉΛͯ͠ BN Ҏ֎Λਖ਼ʹͰ͖Δ ͔ʁˠ b-flow ͷܗ • Ri → Li − 1 ʹίετ 1ɺͦΕҎ֎͸ίετ 0 ʹͳΔΑ͏ʹ b-flow ͷߏங Λ͢Δ • ྲྀͤΔ͚ͩྲྀͯ͠ྲྀྔ͕ෆ଍෼ΑΓখ͚͞Ε͹ෆՄɺͦΕҎ֎͸ min cost flow Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 24 / 27
  25. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ໨࣍ 1 ͸͡Ίʹ 2 Min Cost Flow 3 b-flow 4 άϥϑͷߏங Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 25 / 27
  26. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࠷খඅ༻ྲྀͷάϥϑ • ෛͷลΛআڈ • ࠷খྲྀྔ੍ݶ b-flow ʹؼணͤ͞Δͱߟ͑΍͍͢ (Todo) Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 26 / 27
  27. ڝϓϩ෼Պձ Regular ୈ 3 ճ Rho17 ͸͡Ίʹ Min Cost Flow

    b-flow άϥϑͷߏங ࣍ճ༧ࠂ 10/28(Ր) ͱ͔Ͳ͏Ͱ͠ΐ͏ʁ Ϛονϯάɺύεඃ෴ͳͲͳͲ...... Rho17 ڝϓϩ෼Պձ Regular ୈ 3 ճ October 17, 2025 27 / 27