Kaka's Matrix Travels(최대 요금 흐름)
Time Limit:1000MS Memory Limit:65536KTotal Submit:6 Accepted:3
Description
On an N × N chessboard with a non-negative number in each grid, Kaka starts his matrix travels with SUM = 0. For each travel, Kaka moves one rook from the left-upper grid to the right-bottom one, taking care that the rook moves only to the right or down. Kaka adds the number to SUM in each grid the rook visited, and replaces it with zero. It is not difficult to know the maximum SUM Kaka can obtain for his first travel. Now Kaka is wondering what is the maximum SUM he can obtain after his Kth travel. Note the SUM is accumulative during the K travels.
Input
The first line contains two integers N and K (1 ≤ N ≤ 50, 0 ≤ K ≤ 10) described above. The following N lines represents the matrix. You can assume the numbers in the matrix are no more than 1000.
Output
The maximum SUM Kaka can obtain after his Kth travel.
Sample Input
3 2
1 2 3
0 2 1
1 4 2
Sample Output
15
Source
POJ Monthly--2007.10.06, Huang, Jinsong
#include
제목 대의: n*n(1<=n<=50)의 행렬을 드리겠습니다. 칸마다 값array[i][j]가 있습니다.만약 i행 제j열의 좌표가 (i, j)라고 가정하면 점(i, j)은 점(i+1, j)과 점(i, j+1)까지만 갈 수 있다. 즉, 오른쪽과 아래로 갈 수 있다.점(1,1)에서 점(n,n)까지 K번을 가면 얻을 수 있는 최대치를 묻는다. 칸마다 처음 지나갈 때만 총액이 붙는다.
문제 풀이 사고방식: 최대 비용 최대 흐름.각 칸을 하나의 점 A로 보고 이 점 A를 두 개의 점 A와 A로 뜯어라.만약에 점 B가 점 A의 오른쪽이나 아래에 있다면 점 A'는 점 B와 하나의 비용이 0이고 용량은 무한한 가장자리이다.두 개의 점 A와 A에 대해 점 A가 점 A로 연결되는 비용은 점 A라는 칸의 값, 용량이 1인 변과 한 개의 비용은 0이고 용량은 무한한 변이다.소스 S 를 하나 더 만듭니다.S와 점 C(1,1)는 하나의 비용이 0이고 용량은 K의 가장자리이며 송금점은 점 D'(n,n)로 정한다.그리고 점 S에서 점 D'(n, n)까지의 최대 비용 최대 흐름을 구할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby의 구조체 클래스은 접근자 메서드가 있는 속성 모음입니다. 클래스를 명시적으로 작성할 필요 없이. Struct 클래스는 구성원 및 해당 값 집합을 포함하는 새 하위 클래스를 생성합니다. 각 멤버에 대해 #attr_accessor 와...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.