{"id":13,"date":"2022-06-04T10:52:00","date_gmt":"2022-06-04T02:52:00","guid":{"rendered":"http:\/\/ubuntu.tim-wcx.ltd\/wordpress\/index.php\/2022\/06\/04\/2020-09-26-%e6%9c%80%e5%b0%8f%e8%b4%b9%e7%94%a8%e6%9c%80%e5%a4%a7%e6%b5%81%e9%97%ae%e9%a2%98\/"},"modified":"2022-06-04T10:52:00","modified_gmt":"2022-06-04T02:52:00","slug":"2020-09-26-%e6%9c%80%e5%b0%8f%e8%b4%b9%e7%94%a8%e6%9c%80%e5%a4%a7%e6%b5%81%e9%97%ae%e9%a2%98","status":"publish","type":"post","link":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/2022\/06\/04\/2020-09-26-%e6%9c%80%e5%b0%8f%e8%b4%b9%e7%94%a8%e6%9c%80%e5%a4%a7%e6%b5%81%e9%97%ae%e9%a2%98\/","title":{"rendered":"2020-09-26 \u6700\u5c0f\u8d39\u7528\u6700\u5927\u6d41\u95ee\u9898"},"content":{"rendered":"<p><svg  style=\"display: none;\">\n                        <path stroke-linecap=\"round\" d=\"M5,0 0,2.5 5,5z\" id=\"raphael-marker-block\" style=\"-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\"><\/path>\n                    <\/svg><\/p>\n<p><a href=\"http:\/\/icpc.upc.edu.cn\/problem.php?cid=2587&#038;pid=6\">http:\/\/icpc.upc.edu.cn\/problem.php?cid=2587&#038;pid=6<\/a><\/p>\n<h5><a id=\"_1\"><\/a>\u9898\u76ee\u63cf\u8ff0<\/h5>\n<p>Bonnie and Clyde have noticed that parallel processing improves throughput so, instead of robbing one bank together, they\u2019ve decided to rob two different banks simultaneously (each robbing one).<br \/> They both succeeded and now they need to run to their get-away 1934 Ford Model (730 Deluxe Sedan). There are complications, of course, or the movie won\u2019t be exciting!<\/p>\n<p>The city is in the shape of a matrix with cells. Bonnie and Clyde are in two different cells, and the get-away car is in a different cell as well. Bonnie and Clyde can move in four directions: north, south, east, and west (the border cells of course have fewer move options since they cannot move across the outer walls of the city). Some cells are also blocked, i.e., neither one can move into it.<br \/> To put more adventure in the movie, it is also the case that once Bonnie or Clyde moves into a cell, then neither one can move into that cell anymore, i.e., a cell is used at most once. Bonnie and Clyde cannot move into each other\u2019s starting position either.<\/p>\n<p>Given the city map (in the form of a matrix), the location for Bonnie, Clyde, and car, you are to compute the minimum total number of moves needed for both Bonnie and Clyde to get to the car, i.e., the total number of moves made by Bonnie plus the total number of moves made by Clyde.<\/p>\n<h5><a id=\"_9\"><\/a>\u8f93\u5165<\/h5>\n<p>The first input line contains two integers, r and c (2 \u2264 r, c \u2264 30), providing the number of rows and columns for the matrix. Each of the next r lines contains c characters, starting in column 1; this is the input matrix. There will be exactly one \u201cB\u201d (Bonnie\u2019s starting location), one \u201cC\u201d (Clyde\u2019s starting location), and one \u201cF\u201d (where the get-away Ford car is) in the input maze. The remaining cells will be \u201c.\u201d (empty cell \u2013 one can move into) or \u201cx\u201d (blocked \u2013 one cannot move into).<\/p>\n<h5><a id=\"_11\"><\/a>\u8f93\u51fa<\/h5>\n<p>Print the minimum total number of moves needed for both Bonnie and Clyde to get to the car. If they cannot get to the car, print -1. Note that when one reaches the car, he\/she stops moving.<\/p>\n<h5><a id=\"_13\"><\/a>\u6837\u4f8b\u8f93\u5165<\/h5>\n<pre><code>6 5 \n..... \n...C. \n.B.x. \n..... \n...F. \n.....\n<\/code><\/pre>\n<h5><a id=\"_23\"><\/a>\u6837\u4f8b\u8f93\u51fa<\/h5>\n<pre><code>9\n<\/code><\/pre>\n<h5><a id=\"_27\"><\/a>\u63d0\u793a<\/h5>\n<p>Bonnie can reach the car with 4 moves and Clyde can reach the car with 5 moves, for a total of 9 moves.<\/p>\n<pre><code class=\"prism language-cpp\"><span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(1)<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(2)<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(3,\"Ofast\",\"inline\")<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">include<\/span><span class=\"token string\"><bits\/stdc++.h><\/span><\/span>\n<span class=\"token keyword\">using<\/span> <span class=\"token keyword\">namespace<\/span> std<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">struct<\/span> node\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">int<\/span> next<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> flow<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> dis<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> to<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> head<span class=\"token punctuation\">[<\/span><span class=\"token number\">100500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nnode edge<span class=\"token punctuation\">[<\/span><span class=\"token number\">100500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> dis<span class=\"token punctuation\">[<\/span><span class=\"token number\">100500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> pre<span class=\"token punctuation\">[<\/span><span class=\"token number\">100500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> vis<span class=\"token punctuation\">[<\/span><span class=\"token number\">100500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> last<span class=\"token punctuation\">[<\/span><span class=\"token number\">100500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> flow<span class=\"token punctuation\">[<\/span><span class=\"token number\">100500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">char<\/span> g<span class=\"token punctuation\">[<\/span><span class=\"token number\">1000<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">1000<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> n<span class=\"token punctuation\">,<\/span>m<span class=\"token punctuation\">,<\/span>s<span class=\"token punctuation\">,<\/span>t<span class=\"token punctuation\">,<\/span>cnt<span class=\"token operator\">=<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>maxflow<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span>mincost<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> j<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">return<\/span> i<span class=\"token operator\">*<\/span>m<span class=\"token operator\">+<\/span>j<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> from<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> to<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> flow<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> dis<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    edge<span class=\"token punctuation\">[<\/span><span class=\"token operator\">++<\/span>cnt<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>next<span class=\"token operator\">=<\/span>head<span class=\"token punctuation\">[<\/span>from<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n    edge<span class=\"token punctuation\">[<\/span>cnt<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token operator\">=<\/span>to<span class=\"token punctuation\">;<\/span>\n    edge<span class=\"token punctuation\">[<\/span>cnt<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>flow<span class=\"token operator\">=<\/span>flow<span class=\"token punctuation\">;<\/span>\n    edge<span class=\"token punctuation\">[<\/span>cnt<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>dis<span class=\"token operator\">=<\/span>dis<span class=\"token punctuation\">;<\/span>\n    head<span class=\"token punctuation\">[<\/span>from<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>cnt<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\nqueue<span class=\"token operator\"><<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">><\/span>w<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">bool<\/span> <span class=\"token function\">spfa<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> start<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> end1<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    w<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span>start<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">memset<\/span><span class=\"token punctuation\">(<\/span>dis<span class=\"token punctuation\">,<\/span><span class=\"token number\">0x3f3f3f<\/span><span class=\"token punctuation\">,<\/span><span class=\"token keyword\">sizeof<\/span><span class=\"token punctuation\">(<\/span>dis<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">memset<\/span><span class=\"token punctuation\">(<\/span>vis<span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token keyword\">sizeof<\/span><span class=\"token punctuation\">(<\/span>vis<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">memset<\/span><span class=\"token punctuation\">(<\/span>flow<span class=\"token punctuation\">,<\/span><span class=\"token number\">0x3f3f3f<\/span><span class=\"token punctuation\">,<\/span><span class=\"token keyword\">sizeof<\/span><span class=\"token punctuation\">(<\/span>flow<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    pre<span class=\"token punctuation\">[<\/span>end1<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    vis<span class=\"token punctuation\">[<\/span>start<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    dis<span class=\"token punctuation\">[<\/span>start<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span>w<span class=\"token punctuation\">.<\/span><span class=\"token function\">empty<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">int<\/span> now<span class=\"token operator\">=<\/span>w<span class=\"token punctuation\">.<\/span><span class=\"token function\">front<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        w<span class=\"token punctuation\">.<\/span><span class=\"token function\">pop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        vis<span class=\"token punctuation\">[<\/span>now<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span>head<span class=\"token punctuation\">[<\/span>now<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">!=<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">=<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>next<span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token comment\">\/\/cout<<i<<endl;<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>flow<span class=\"token operator\">><\/span><span class=\"token number\">0<\/span><span class=\"token operator\">&&<\/span>dis<span class=\"token punctuation\">[<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">]<\/span><span class=\"token operator\">><\/span>dis<span class=\"token punctuation\">[<\/span>now<span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>dis<span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                dis<span class=\"token punctuation\">[<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>dis<span class=\"token punctuation\">[<\/span>now<span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>dis<span class=\"token punctuation\">;<\/span>\n                pre<span class=\"token punctuation\">[<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>now<span class=\"token punctuation\">;<\/span>\n                last<span class=\"token punctuation\">[<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>i<span class=\"token punctuation\">;<\/span>\n                flow<span class=\"token punctuation\">[<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token function\">min<\/span><span class=\"token punctuation\">(<\/span>flow<span class=\"token punctuation\">[<\/span>now<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>flow<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span>vis<span class=\"token punctuation\">[<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span>\n                <span class=\"token punctuation\">{<!-- --><\/span>\n                    vis<span class=\"token punctuation\">[<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n                    w<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span>edge<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>to<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token punctuation\">}<\/span>\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">return<\/span> pre<span class=\"token punctuation\">[<\/span>end1<span class=\"token punctuation\">]<\/span><span class=\"token operator\">!=<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">MCMF<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">spfa<\/span><span class=\"token punctuation\">(<\/span>s<span class=\"token punctuation\">,<\/span>t<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        maxflow<span class=\"token operator\">+<\/span><span class=\"token operator\">=<\/span>flow<span class=\"token punctuation\">[<\/span>t<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n        mincost<span class=\"token operator\">+<\/span><span class=\"token operator\">=<\/span>dis<span class=\"token punctuation\">[<\/span>t<span class=\"token punctuation\">]<\/span><span class=\"token operator\">*<\/span>flow<span class=\"token punctuation\">[<\/span>t<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">int<\/span> now<span class=\"token operator\">=<\/span>t<span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span>now<span class=\"token operator\">!=<\/span>s<span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            edge<span class=\"token punctuation\">[<\/span>last<span class=\"token punctuation\">[<\/span>now<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>flow<span class=\"token operator\">-<\/span><span class=\"token operator\">=<\/span>flow<span class=\"token punctuation\">[<\/span>t<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n            edge<span class=\"token punctuation\">[<\/span>last<span class=\"token punctuation\">[<\/span>now<span class=\"token punctuation\">]<\/span><span class=\"token operator\">^<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>flow<span class=\"token operator\">+<\/span><span class=\"token operator\">=<\/span>flow<span class=\"token punctuation\">[<\/span>t<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n            now<span class=\"token operator\">=<\/span>pre<span class=\"token punctuation\">[<\/span>now<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token function\">memset<\/span><span class=\"token punctuation\">(<\/span>head<span class=\"token punctuation\">,<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token keyword\">sizeof<\/span><span class=\"token punctuation\">(<\/span>head<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%d%d\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>n<span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>m<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    s<span class=\"token operator\">=<\/span>n<span class=\"token operator\">*<\/span>m<span class=\"token operator\">+<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">,<\/span>t<span class=\"token operator\">=<\/span>n<span class=\"token operator\">*<\/span>m<span class=\"token operator\">+<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\"><=<\/span>n<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%s\"<\/span><span class=\"token punctuation\">,<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\"><=<\/span>n<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> j<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> j<span class=\"token operator\"><=<\/span>m<span class=\"token punctuation\">;<\/span> j<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">==<\/span><span class=\"token string\">'x'<\/span><span class=\"token punctuation\">)<\/span>\n                <span class=\"token keyword\">continue<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>j<span class=\"token operator\">><\/span><span class=\"token number\">1<\/span><span class=\"token operator\">&&<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">!=<\/span><span class=\"token string\">'x'<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">><\/span><span class=\"token number\">1<\/span><span class=\"token operator\">&&<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">!=<\/span><span class=\"token string\">'x'<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>j<span class=\"token operator\"><<\/span>m<span class=\"token operator\">&&<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">!=<\/span><span class=\"token string\">'x'<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\"><<\/span>n<span class=\"token operator\">&&<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">!=<\/span><span class=\"token string\">'x'<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">==<\/span><span class=\"token string\">'F'<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span>s<span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>s<span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">==<\/span><span class=\"token string\">'C'<\/span><span class=\"token operator\">||<\/span>g<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">==<\/span><span class=\"token string\">'B'<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>t<span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span>t<span class=\"token punctuation\">,<\/span><span class=\"token function\">num<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">,<\/span>j<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token function\">MCMF<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n   <span class=\"token comment\">\/\/ cout<<maxflow<<\" \"<<mincost<<endl;<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>maxflow<span class=\"token operator\">!=<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"-1n\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">else<\/span>\n        <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%dn\"<\/span><span class=\"token punctuation\">,<\/span>mincost<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/icpc.upc.edu.cn\/pr&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-13","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/comments?post=13"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts\/13\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/media?parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/categories?post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/tags?post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}