#1495. BALLGAME - Trò chơi thả bóng

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Trò chơi thả bóng được chơi trên một bảng gồm P block, mỗi block gồm M hàng và N cột (bảng M\times N lặp lại P lần). Các hàng được đánh số từ 1 đến P\times M từ trên xuống dưới, các cột được đánh số từ 1 đến N từ trái sang phải. Ô ở hàng i , cột j được gọi là ô (i, j) .

Ở mỗi ô của bảng, có một vách ngăn chéo chạy theo một trong hai hướng: trên trái xuống dưới phải, hoặc trên phải xuống dưới trái.

Nếu bạn thả quả bóng ở một cột X nào đó, theo trọng lực quả bóng sẽ rơi xuống dưới. Quả bóng sẽ không thể đi xuyên các vách ngăn nên sẽ xảy ra các trường hợp sau:

  • Quả bóng bị kẹt ở trong bảng và không thể di chuyển nữa;
  • Quả bóng rơi ra ngoài bảng ở cạnh bên trái;
  • Quả bóng rơi ra ngoài bảng ở cạnh bên phải;
  • Quả bóng rơi ra ngoài bảng ở đáy của bảng ở cột Y .

Nếu trường hợp 1 đến 3 xảy ra, ta gọi f(X) = -1 , nếu trường hợp cuối xảy ra ta gọi f(X) =Y .

Ví dụ nếu ta thả quả bóng ở cột 4 thì quả bóng sẽ rơi ra ngoài ở cạnh bên phải.

Nếu chúng ta thả quả bóng ở cột 1 thì quả bóng sẽ rơi ra ngoài bảng ở cột 3 .

Ngoài ra, chúng ta có thể thực hiện phép thay đổi chiều vách ngăn với các ô trên bảng. Ví dụ sau đây là bảng sau khi ta thực hiện phép thay đổi với ô (4, 2) . Phép thay đổi ở ô (4, 2) sẽ có chi phí là cost_{4,2} :

Bây giờ, nếu chúng ta thả quả bóng ở cột 1 thì quả bóng sẽ rơi ra ngoài bảng ở cột 1 .

Trong bài toán này, cho cấu hình bảng ban đầu, chi phí thay đổi vách ngăn, K là số lượng quả bóng sẽ được thả, mảng start gồm K phần tử là chỉ số các cột sẽ thả bóng, mảng target gồm K phần tử là giá trị f(start_1), f(start_2), \ldots, f(start_K) . Bạn có thể thực hiện một số phép đổi chiều vách ngăn, sau đó thả lần lượt K quả bóng. Hãy tính chi phí tối thiểu để đạt được kết quả mong muốn.

Dữ liệu:

  • Dòng thứ nhất ghi ba số P M, N\ (1\le P\le 10^6, 1\le M\le 1000, 1\le N\le 10) ;
  • Tiếp theo là M dòng, mỗi dòng ghi xâu N kí tự để mô tả một block của bảng ban đầu. Các xâu chỉ chứa các kí tự \ tương ứng với vách ngăn từ trái trên xuống phải dưới hoặc / tương ứng với vách ngăn từ phải trên xuống trái dưới;
  • Tiếp theo là M dòng, mỗi dòng ghi N số nguyên dương, mô tả chi phí thay đổi vách ngăn của các ô (1\le cost_{i,j}\le 10^6) ;
  • Dòng tiếp theo chỉ chứa duy nhất số K\ (1\le K\le N) ;
  • Dòng tiếp theo ghi K số có giá trị tăng dần start_1,start_2,\ldots, start_K\ (1\le start_i\le N );
  • Dòng cuối cùng ghi K số target_1,target_2,\ldots, target_K\ (1\le target_i\le N hoặc target_i=-1) .

Kết quả:

  • Ghi ra một dòng là chi phí tối thiểu tìm được.

Giới hạn:

  • 16\% số test ứng với 16\% số điểm của bài có P=1 M\times N\le 20 ;
  • 16\% số test khác ứng với 16\% số điểm của bài có P\le 10 K=1 ;
  • 16\% số test khác ứng với 16\% số điểm của bài có P\le 10 K=2 ;
  • 16\% số test khác ứng với 16\% số điểm của bài có P\le 10 ;
  • 36\% số test còn lại ứng với 36\% số điểm của bài không có giới hạn gì thêm.

Ví dụ:

Dữ liệu

1 4 4
\\\\
////
\\\\
/\\\
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
2
1 4
1 -1

Kết quả;

1

Dữ liệu:

2 4 4
 \\\\
////
\\\\
/\\\
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
2
1 4
1 4

Kết quả:

5