SlideShare a Scribd company logo
How To Find a Solution
SKKU NPC 송은짂
Introduction
• 맋은 문제들은 문제를 제대로 읽는 것 맊으로 문제를 해법
  을 찾을 수 있다.
• 비슷한 해법을 가지는 문제들은 비슷한 특성을 가지고 있
  기 때문이다.
• 따라서 이런 특징을 발견해 낼 수 있는 고수들에게는 더할
  나위 없는 힌트가 된다.
• 이번 세미나의 주요 목적은 이러한 특징을 찾아 낼 수 있도
  록 하는 것이다.
Straight-forward problem
• 시뮬레이션이나 탐색, 정렬 등 특별한 기술을 필요로 하지
  않는 문제이다.
• 맋은 경우에, 이런 문제들은 Straight-forward 한 일들을 차
  례로 수행하면서 해결할 수 있다.
• 문제의 범위나 크기 제한은 맋이 높지 않으며, 맋이 낮지도
  않다.
• 주로 쉬운 문제로 출제되며, TopCoder 에서는 얼마나 빠르
  고 문제에 적합하게 코딩 하는지를 테스트하기 위해 출제
  된다.
• 이 유형의 정말 갂단한 문제들은 단지 문제에 쓰여짂 것을
  차례로 실행하는 것맊을 요구하는 경우도 있다.
Straight-forward problem
Business Tasks – SRM 236 Div 1:
N개의 작업이 원형 리스트의 형식으로 쓰여져 있어, 첫 번째 작업은 마지막 에
인접해 있다. 첫번째 작업부터, 시계방향으로 - 1번 부터 N번까지- 작업이 수
행된다. N번 작업을 수행하고 난 뒤, N번째 작업을 리스트에서 없애고 다시 다
음 사용 가능한 작업을 N번 수행한다.
리스트에 하나가 남을 때 까지 반복하고, 마지막으로 남은 수를 리턴 하라.


• N<=1000 일 경우, 이 문제는 단지 코딩을 하기맊 하면 된다.
  차례차례 하나가 남을 때까지 작업을 짂행하면 된다. 대개
  이런 타입의 문제들은 N이 작게 주어지고, 우리는 N이 큰
  경우에 대한 복잡한 solution을 생각할 필요가 없다.
• 대략 1억 번 정도의 연산을 수행하면 시갂 제한을 채우게
  된다.
Straight-forward problem
TallPeople – SRM 208 Div 1:
사람들이 R행과 C열로 서있다. 문제는 2개의 특정한 키를 리턴 하는 것이다.
첫번째 수는 각 행마다 가장 키가 작은 사람들을 찾고, 그 중에 가장 키가 큰 사
람의 키이다. (“tallest-of-the-shortest”)
두번째 수는 각 열마다 가장 키가 큰 사람들을 찾고, 그 중에 가장 키가 작은 사
람의 키이다. (“shortest-of-the-tallest”)


• 갂단한 탐색 문제이다.
• 정렬맊 하면 된다.
Breadth First Search (BFS)
• BFS를 사용하는 문제들은 대개 문제에 주어짂
  Starting Point 부터 End Point까지 도달하는데 가장 작
  은 비용을 찾는 문제들이다.
• N행 M열의 테이블로 데이터가 주어지기도 하며, 여
  기에 지나갈 수 있는 칸과 없는 칸이 나뉘어져 시점
  에서 종점까지의 최단 경로를 묻곤 한다 (모든 비용
  을 1이라고 가정 할 때). 이런 테이블은 미로, 지도, 도
  시들, 그리고 다른 것들로 표현된다.
• 이러한 BFS 문제들은 시갂 복잡도가 맋은 경우에
  linear(O(n)) 이므로, N또는 M이 높게 주어질 수 있다.
Breadth First Search (BFS)
SmartWordToy – SRM 233 Div 1:
소문자로 이루어짂 단어가 주어짂다. 당싞은 한번의 click 맊으로 어떤 문자를
이젂이나 다음의 알파벳으로 바꿀 수 있다. (예를 들어, ‘c’는 ‘b’나 ‘d’로 바뀔 수
있다.) 알파벳을 둥글게 나열해서, ‘a’는 ‘z’가 될 수 있고, ‘z’는 ‘a’가 될 수 있다.
또 “X X X X” 형식의 금지어 형식이 입력되는데, 주어짂 시작단어에서 끝 단어
까지 이런 금지어를 나타내지 않고 갈 수 없다면 -1, 갈 수 있다면 최소의 click
수를 구하여 리턴 하라.
(예를 들어, “lf a tc e”이 금지어의 형식으로써 “late”, “fate”, “lace”, “face” 의 금
지어를 정의할 수 있다.)

• Word는 상태로써 생각될 수 있고, 최대 26^4개의 4개의 문자로 된 단어
  를 구성할 수 있다.
• 한 상태에서 다른 상태로 가는 두 가지 방법이 존재하며, 비용은 항상 1
  이다. (A single click)
• 시작 상태에서 끝 상태까지 가는 최소 비용을 구해야 한다.
  -> 전형적인 BFS문제!
Breadth First Search (BFS)
CaptureThemAll – SRM 207 Div 2:
해리와 조는 마법 체스게임을 하고 있다. 그는 나이트 하나를 가지고 있고, 그
의 상대편인 조는 하나의 퀸과 하나의 룩을 가지고 있다. 해리는 이번 턴에
“Haste”라는 주문을 외어서, 나이트를 여러 번 움직일 수 있다. 해리의 나이트
가 최소 몇 번을 움직여야 퀸과 룩을 다 잡을 수 있는지 구하여라.



얶뜻 보면 dynamic programming이나 backtracking 같아 보인다. 하
지맊 문제를 잘 읽어보면 BFS 문제라는 다음의 힌트들이 보인다.
• 테이블이 주어짂다.
• 나이트는 점프를 하여 근처의 여러 위치로 이동할 수 있다.
• 지금의 위치에서 다음의 위치로 가는데 비용이 1이다. (한번 움
  직인다.)
• 나이트의 최소 움직임을 구해야 한다.
Flood Fill
• BFS를 이용해 모든 도착가능 지점을 찾는 기술이다. BFS
  와 다른 점은 최소 비용/경로가 요구되지 않는다는 것이
  다.
• 예를 들어, 1이면 못 지나가고 0이면 지나갈 수 있는 미로
  가 주어질 때, 출발점으로부터 갈 수 있는 모든 위치를 구
  하는 문제가 될 수 있다.
• Solution은 매우 갂단하다 – 하나 씩 차례로 방문하고, 방
  문하지 않은 이웃 들을 방문한 목록을 저장하는 큐에 넣
  고, 차례대로 큐에서 하나씩 빼서 같은 작업을 수행한다.
• 이런 문제일 경우 DFS로는 Stack overflow가 일어나기 때
  문에 사용하지 않는다.
Flood Fill
grafixMask – SRM 211 Div 1:
400 x 600 의 비트맵이 주어지고, 몇 개의 사각형들이 비트맵의 특정 부분을 덮
고 있다. (사각형들의 꼭지점은 정수로 주어짂다.) 사각형들이 덮지 않은 부분
에서 연결된 부분들의 넓이를 각각 구하라.




• 테이블이다. (Map)
• 특정한 포인트는 지나갈 수 없다. (사각형으로
  덮힌 부분)
• 이어짂 지역을 찾아야 한다.
-> 쉽게 Flood Fill 문제라는 것을 알 수 있다.
Brute Force and Backtracking
• Brute force에서 답의 lower bound를 가지고
  pruning(가지치기) 한 것을 backtracking이라고
  한다. 둘 다 모든 가능한 경우를 찾고 최적을
  찾거나 경우의 수를 찾는 것이 대부분이다.
• 범위가 작다는 것(N<=20 정도)이 문제의 힌트
  가 될 수 있다.
Brute Force
LargestCircle – SRM 212 Div 2:
몇 개의 사각형으로 표시된 영역이 있는 격자판이 주어짂다. 격자판 위에 그릴
수 있는 가장 큰 원의 반지름을 찾아라. 원은 정사각형으로 표시된 영역을 지
나가지 않아야 한다. 원의 중앙은 격자 위의 점이어야 하며, 반지름은 정수여
야 한다.
격자의 크기는 최대 50이다.


• 가장 큰 힌트는 격자의 작은 사이즈이다.
• 이 문제는 모든 위치에서 주어짂 규칙에 따라 원을 구해보는 것
  을 시도해 볼 수 있기 때문에 Brute Force로 문제를 푸는 것이 가
  능하다.
• 모든 원을 찾은 다음, 큰 것을 선택하면 된다.
• 최대 50x50 크기에 각 위치마다 최대 원의 개수는 25 개까지 시도
  해볼 수 있으며 잘 구현하면 선형 시갂에 원이 지나가는 칸들을
  하나씩 검사할 수 있다.
Backtracking
MNS – SRM 148 Div 1:
9개의 숫자가 있는 magic number square가 필요하다. Magic number square는
숫자가 각 행과 각 열의 합이 모두 같게 나열되어 있는 경우를 말한다. 0부터 9
범위 안의 숫자가 9개가 제시된다. 주어짂 숫자로 맊들 수 있는 서로 다른
Magic number square의 수를 구하여라.
하나 이상의 위치에서 다른 값을 가지면 다른 Magic number square라고 하자.


• 최대 9개의 작은 수의 숫자가 제시되고, 다른 방법으
  로 숫자를 나열하여 Magic number square를 찾아야 하
  므로, Backtracking 문제의 특성을 가지고 있다.
• 모든 숫자들의 나열의 생각해 볼 수 있고, 해당 나열이
  Magic number square의 특성을 가지는지 확인해 보고
  맞으면 답에 더하면 된다.
Dynamic Programming
• 꽤 맋은 수의 문제들이 이 방법으로 풀 수 있다. 이 형
  식의 문제라고 찾아내는 것은 매우 중요한 일이다. 그
  것을 하기 위해서는 DP에 맋은 경험이 필요하다.
• DP 문제에서 제한은 너무 크지도, 너무 작지도 않아
  서, N^2나 N^3의 복잡도를 가짂다. N이 너무 작다면
  DP 문제가 아니다.
• 어떤 여러 개의 작은 상태에서 큰 상태로 가기 위한
  방법이 존재하고, 큰 상태는 오직 작은 상태들에 의해
  서 결정된다.

• 자세한 내용은 다음주에!
Maximum Flow
• 최대 유량 문제.
• 문제의 제한이, O(N^3) 이나 O(N^4) 의 해법이
  가능한 지를 본다. (500을 넘지 않고, 주로 100
  이하이다.)
• 용량을 가짂 그래프가 있거나, 문제의 데이터
  로 용량을 가짂 그래프를 정의할 수 있어야 한
  다. 그리고 어떤 최대 값을 찾아야 한다.
Maximum Flow
Sample problem :
연결된 파이프의 리스트가 있고, 각 파이프의 최대 유량이 주어짂다.
시작 지점에서 끝 지점까지 물이 흐른다고 할 때, 끝 지점에서 흐를 수 있는 최
대 유량을 구하여라 .
N<=100.
Optimal Pair Matching
Parking – SRM 236 Div 1
N 대의 자동차와 M개의 주차 공갂이 사각형의 평면상에 주어지고, 차가 지나
가지 못하는 벽이 존재한다. 각 자동차 마다 가장 짧은 거리를 이동해 주차를
시킨다고 할 때, 이동 거리 중 가장 큰 거리를 구하라.
하나의 주차공갂에는 한 대의 자동차맊 주차할 수 있다.




                          s                t




                              자동차   주차공갂
Q&A

More Related Content

More from skku_npc

Maximum Flow
Maximum FlowMaximum Flow
Maximum Flow
skku_npc
 
Computational Complexity
Computational ComplexityComputational Complexity
Computational Complexity
skku_npc
 
String Searching Algorithms
String Searching AlgorithmsString Searching Algorithms
String Searching Algorithms
skku_npc
 
disjoint-set data structures
disjoint-set data structuresdisjoint-set data structures
disjoint-set data structures
skku_npc
 
Line sweep algorithms
Line sweep algorithmsLine sweep algorithms
Line sweep algorithms
skku_npc
 
Data Structures
Data StructuresData Structures
Data Structures
skku_npc
 
Prime numbers, factorization
Prime numbers, factorizationPrime numbers, factorization
Prime numbers, factorization
skku_npc
 
Mathematics
MathematicsMathematics
Mathematics
skku_npc
 
Greedy is Good
Greedy is GoodGreedy is Good
Greedy is Good
skku_npc
 
Binary Search
Binary SearchBinary Search
Binary Search
skku_npc
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programming
skku_npc
 
An introduction to recursion
An introduction to recursionAn introduction to recursion
An introduction to recursion
skku_npc
 
Algorithm Games
Algorithm GamesAlgorithm Games
Algorithm Games
skku_npc
 
Introduction to Graphs
Introduction to GraphsIntroduction to Graphs
Introduction to Graphs
skku_npc
 

More from skku_npc (14)

Maximum Flow
Maximum FlowMaximum Flow
Maximum Flow
 
Computational Complexity
Computational ComplexityComputational Complexity
Computational Complexity
 
String Searching Algorithms
String Searching AlgorithmsString Searching Algorithms
String Searching Algorithms
 
disjoint-set data structures
disjoint-set data structuresdisjoint-set data structures
disjoint-set data structures
 
Line sweep algorithms
Line sweep algorithmsLine sweep algorithms
Line sweep algorithms
 
Data Structures
Data StructuresData Structures
Data Structures
 
Prime numbers, factorization
Prime numbers, factorizationPrime numbers, factorization
Prime numbers, factorization
 
Mathematics
MathematicsMathematics
Mathematics
 
Greedy is Good
Greedy is GoodGreedy is Good
Greedy is Good
 
Binary Search
Binary SearchBinary Search
Binary Search
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programming
 
An introduction to recursion
An introduction to recursionAn introduction to recursion
An introduction to recursion
 
Algorithm Games
Algorithm GamesAlgorithm Games
Algorithm Games
 
Introduction to Graphs
Introduction to GraphsIntroduction to Graphs
Introduction to Graphs
 

How to find a solution

  • 1. How To Find a Solution SKKU NPC 송은짂
  • 2. Introduction • 맋은 문제들은 문제를 제대로 읽는 것 맊으로 문제를 해법 을 찾을 수 있다. • 비슷한 해법을 가지는 문제들은 비슷한 특성을 가지고 있 기 때문이다. • 따라서 이런 특징을 발견해 낼 수 있는 고수들에게는 더할 나위 없는 힌트가 된다. • 이번 세미나의 주요 목적은 이러한 특징을 찾아 낼 수 있도 록 하는 것이다.
  • 3. Straight-forward problem • 시뮬레이션이나 탐색, 정렬 등 특별한 기술을 필요로 하지 않는 문제이다. • 맋은 경우에, 이런 문제들은 Straight-forward 한 일들을 차 례로 수행하면서 해결할 수 있다. • 문제의 범위나 크기 제한은 맋이 높지 않으며, 맋이 낮지도 않다. • 주로 쉬운 문제로 출제되며, TopCoder 에서는 얼마나 빠르 고 문제에 적합하게 코딩 하는지를 테스트하기 위해 출제 된다. • 이 유형의 정말 갂단한 문제들은 단지 문제에 쓰여짂 것을 차례로 실행하는 것맊을 요구하는 경우도 있다.
  • 4. Straight-forward problem Business Tasks – SRM 236 Div 1: N개의 작업이 원형 리스트의 형식으로 쓰여져 있어, 첫 번째 작업은 마지막 에 인접해 있다. 첫번째 작업부터, 시계방향으로 - 1번 부터 N번까지- 작업이 수 행된다. N번 작업을 수행하고 난 뒤, N번째 작업을 리스트에서 없애고 다시 다 음 사용 가능한 작업을 N번 수행한다. 리스트에 하나가 남을 때 까지 반복하고, 마지막으로 남은 수를 리턴 하라. • N<=1000 일 경우, 이 문제는 단지 코딩을 하기맊 하면 된다. 차례차례 하나가 남을 때까지 작업을 짂행하면 된다. 대개 이런 타입의 문제들은 N이 작게 주어지고, 우리는 N이 큰 경우에 대한 복잡한 solution을 생각할 필요가 없다. • 대략 1억 번 정도의 연산을 수행하면 시갂 제한을 채우게 된다.
  • 5. Straight-forward problem TallPeople – SRM 208 Div 1: 사람들이 R행과 C열로 서있다. 문제는 2개의 특정한 키를 리턴 하는 것이다. 첫번째 수는 각 행마다 가장 키가 작은 사람들을 찾고, 그 중에 가장 키가 큰 사 람의 키이다. (“tallest-of-the-shortest”) 두번째 수는 각 열마다 가장 키가 큰 사람들을 찾고, 그 중에 가장 키가 작은 사 람의 키이다. (“shortest-of-the-tallest”) • 갂단한 탐색 문제이다. • 정렬맊 하면 된다.
  • 6. Breadth First Search (BFS) • BFS를 사용하는 문제들은 대개 문제에 주어짂 Starting Point 부터 End Point까지 도달하는데 가장 작 은 비용을 찾는 문제들이다. • N행 M열의 테이블로 데이터가 주어지기도 하며, 여 기에 지나갈 수 있는 칸과 없는 칸이 나뉘어져 시점 에서 종점까지의 최단 경로를 묻곤 한다 (모든 비용 을 1이라고 가정 할 때). 이런 테이블은 미로, 지도, 도 시들, 그리고 다른 것들로 표현된다. • 이러한 BFS 문제들은 시갂 복잡도가 맋은 경우에 linear(O(n)) 이므로, N또는 M이 높게 주어질 수 있다.
  • 7. Breadth First Search (BFS) SmartWordToy – SRM 233 Div 1: 소문자로 이루어짂 단어가 주어짂다. 당싞은 한번의 click 맊으로 어떤 문자를 이젂이나 다음의 알파벳으로 바꿀 수 있다. (예를 들어, ‘c’는 ‘b’나 ‘d’로 바뀔 수 있다.) 알파벳을 둥글게 나열해서, ‘a’는 ‘z’가 될 수 있고, ‘z’는 ‘a’가 될 수 있다. 또 “X X X X” 형식의 금지어 형식이 입력되는데, 주어짂 시작단어에서 끝 단어 까지 이런 금지어를 나타내지 않고 갈 수 없다면 -1, 갈 수 있다면 최소의 click 수를 구하여 리턴 하라. (예를 들어, “lf a tc e”이 금지어의 형식으로써 “late”, “fate”, “lace”, “face” 의 금 지어를 정의할 수 있다.) • Word는 상태로써 생각될 수 있고, 최대 26^4개의 4개의 문자로 된 단어 를 구성할 수 있다. • 한 상태에서 다른 상태로 가는 두 가지 방법이 존재하며, 비용은 항상 1 이다. (A single click) • 시작 상태에서 끝 상태까지 가는 최소 비용을 구해야 한다. -> 전형적인 BFS문제!
  • 8. Breadth First Search (BFS) CaptureThemAll – SRM 207 Div 2: 해리와 조는 마법 체스게임을 하고 있다. 그는 나이트 하나를 가지고 있고, 그 의 상대편인 조는 하나의 퀸과 하나의 룩을 가지고 있다. 해리는 이번 턴에 “Haste”라는 주문을 외어서, 나이트를 여러 번 움직일 수 있다. 해리의 나이트 가 최소 몇 번을 움직여야 퀸과 룩을 다 잡을 수 있는지 구하여라. 얶뜻 보면 dynamic programming이나 backtracking 같아 보인다. 하 지맊 문제를 잘 읽어보면 BFS 문제라는 다음의 힌트들이 보인다. • 테이블이 주어짂다. • 나이트는 점프를 하여 근처의 여러 위치로 이동할 수 있다. • 지금의 위치에서 다음의 위치로 가는데 비용이 1이다. (한번 움 직인다.) • 나이트의 최소 움직임을 구해야 한다.
  • 9. Flood Fill • BFS를 이용해 모든 도착가능 지점을 찾는 기술이다. BFS 와 다른 점은 최소 비용/경로가 요구되지 않는다는 것이 다. • 예를 들어, 1이면 못 지나가고 0이면 지나갈 수 있는 미로 가 주어질 때, 출발점으로부터 갈 수 있는 모든 위치를 구 하는 문제가 될 수 있다. • Solution은 매우 갂단하다 – 하나 씩 차례로 방문하고, 방 문하지 않은 이웃 들을 방문한 목록을 저장하는 큐에 넣 고, 차례대로 큐에서 하나씩 빼서 같은 작업을 수행한다. • 이런 문제일 경우 DFS로는 Stack overflow가 일어나기 때 문에 사용하지 않는다.
  • 10. Flood Fill grafixMask – SRM 211 Div 1: 400 x 600 의 비트맵이 주어지고, 몇 개의 사각형들이 비트맵의 특정 부분을 덮 고 있다. (사각형들의 꼭지점은 정수로 주어짂다.) 사각형들이 덮지 않은 부분 에서 연결된 부분들의 넓이를 각각 구하라. • 테이블이다. (Map) • 특정한 포인트는 지나갈 수 없다. (사각형으로 덮힌 부분) • 이어짂 지역을 찾아야 한다. -> 쉽게 Flood Fill 문제라는 것을 알 수 있다.
  • 11. Brute Force and Backtracking • Brute force에서 답의 lower bound를 가지고 pruning(가지치기) 한 것을 backtracking이라고 한다. 둘 다 모든 가능한 경우를 찾고 최적을 찾거나 경우의 수를 찾는 것이 대부분이다. • 범위가 작다는 것(N<=20 정도)이 문제의 힌트 가 될 수 있다.
  • 12. Brute Force LargestCircle – SRM 212 Div 2: 몇 개의 사각형으로 표시된 영역이 있는 격자판이 주어짂다. 격자판 위에 그릴 수 있는 가장 큰 원의 반지름을 찾아라. 원은 정사각형으로 표시된 영역을 지 나가지 않아야 한다. 원의 중앙은 격자 위의 점이어야 하며, 반지름은 정수여 야 한다. 격자의 크기는 최대 50이다. • 가장 큰 힌트는 격자의 작은 사이즈이다. • 이 문제는 모든 위치에서 주어짂 규칙에 따라 원을 구해보는 것 을 시도해 볼 수 있기 때문에 Brute Force로 문제를 푸는 것이 가 능하다. • 모든 원을 찾은 다음, 큰 것을 선택하면 된다. • 최대 50x50 크기에 각 위치마다 최대 원의 개수는 25 개까지 시도 해볼 수 있으며 잘 구현하면 선형 시갂에 원이 지나가는 칸들을 하나씩 검사할 수 있다.
  • 13. Backtracking MNS – SRM 148 Div 1: 9개의 숫자가 있는 magic number square가 필요하다. Magic number square는 숫자가 각 행과 각 열의 합이 모두 같게 나열되어 있는 경우를 말한다. 0부터 9 범위 안의 숫자가 9개가 제시된다. 주어짂 숫자로 맊들 수 있는 서로 다른 Magic number square의 수를 구하여라. 하나 이상의 위치에서 다른 값을 가지면 다른 Magic number square라고 하자. • 최대 9개의 작은 수의 숫자가 제시되고, 다른 방법으 로 숫자를 나열하여 Magic number square를 찾아야 하 므로, Backtracking 문제의 특성을 가지고 있다. • 모든 숫자들의 나열의 생각해 볼 수 있고, 해당 나열이 Magic number square의 특성을 가지는지 확인해 보고 맞으면 답에 더하면 된다.
  • 14. Dynamic Programming • 꽤 맋은 수의 문제들이 이 방법으로 풀 수 있다. 이 형 식의 문제라고 찾아내는 것은 매우 중요한 일이다. 그 것을 하기 위해서는 DP에 맋은 경험이 필요하다. • DP 문제에서 제한은 너무 크지도, 너무 작지도 않아 서, N^2나 N^3의 복잡도를 가짂다. N이 너무 작다면 DP 문제가 아니다. • 어떤 여러 개의 작은 상태에서 큰 상태로 가기 위한 방법이 존재하고, 큰 상태는 오직 작은 상태들에 의해 서 결정된다. • 자세한 내용은 다음주에!
  • 15. Maximum Flow • 최대 유량 문제. • 문제의 제한이, O(N^3) 이나 O(N^4) 의 해법이 가능한 지를 본다. (500을 넘지 않고, 주로 100 이하이다.) • 용량을 가짂 그래프가 있거나, 문제의 데이터 로 용량을 가짂 그래프를 정의할 수 있어야 한 다. 그리고 어떤 최대 값을 찾아야 한다.
  • 16. Maximum Flow Sample problem : 연결된 파이프의 리스트가 있고, 각 파이프의 최대 유량이 주어짂다. 시작 지점에서 끝 지점까지 물이 흐른다고 할 때, 끝 지점에서 흐를 수 있는 최 대 유량을 구하여라 . N<=100.
  • 17. Optimal Pair Matching Parking – SRM 236 Div 1 N 대의 자동차와 M개의 주차 공갂이 사각형의 평면상에 주어지고, 차가 지나 가지 못하는 벽이 존재한다. 각 자동차 마다 가장 짧은 거리를 이동해 주차를 시킨다고 할 때, 이동 거리 중 가장 큰 거리를 구하라. 하나의 주차공갂에는 한 대의 자동차맊 주차할 수 있다. s t 자동차 주차공갂
  • 18. Q&A