{"id":37,"date":"2025-01-11T22:37:43","date_gmt":"2025-01-11T14:37:43","guid":{"rendered":"http:\/\/150.230.63.147\/blog\/?p=37"},"modified":"2025-01-11T22:37:43","modified_gmt":"2025-01-11T14:37:43","slug":"d-design-tutorial-inverse-the-problem-%e8%a7%a3%e6%9e%90%e5%90%ab%e5%bf%ab%e9%80%9f%e8%a7%a3%e6%b3%95mst%e3%80%81lca%e3%80%81%e6%80%9d%e7%b6%ad","status":"publish","type":"post","link":"https:\/\/blog.seekrealthing.net\/blog\/?p=37","title":{"rendered":"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad)"},"content":{"rendered":"\n<div class=\"wp-block-jetpack-markdown\"><h1>Codeforce 472D Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad)<\/h1>\n<p>\u4eca\u5929\u6211\u5011\u4f86\u770b\u770bCF472D<br>\n<a href=\"https:\/\/codeforces.com\/problemset\/problem\/472\/D\">\u984c\u76ee\u9023\u7d50<\/a><\/p>\n<blockquote>\n<p><strong>\u984c\u76ee<\/strong><br>\n\u7d66\u4f60\u4e00\u500b$n\\times n$\u7684\u77e9\u9663\u4ee3\u8868\u9ede$i$\u5230\u9ede$j$\u7684\u6700\u77ed\u8ddd\u96e2\u3002\u554f\u662f\u5426\u53ef\u4ee5\u9020\u51fa\u4e00\u68f5\u908a\u6b0a\u70ba\u6b63\u7684\u6a39\u3002<\/p>\n<\/blockquote>\n<h3>\u524d\u8a00<\/h3>\n<p>\u9019\u984c\u7684\u8f38\u5165\uff0c\u8f38\u51653e6\u500bInteger\u7d93\u904e\u5be6\u6e2c\u5c31\u5927\u6982\u9700\u8981700ms\u4ee5\u4e0a\u4e86(\u5982\u679c\u6c92\u958b\u8f38\u5165\u512a\u5316\u597d\u50cf\u9084\u6703\u76f4\u63a5TLE\u7684\u6a23\u5b50)\u3002\u4e26\u4e14\u6211\u4e00\u958b\u59cb\u662f\u7528Prim\u2019s Algo\u53bb\u5bebMST\u7684\uff0cpriority_queue\u7528class\u4f86\u5c0dpair&lt;int,int&gt; overload compare function\uff0c\u7d50\u679c\u4e0d\u7ba1\u600e\u9ebc\u5f04\u90fdTLE\u3002\u6700\u5f8c\u653e\u68c4\u4f7f\u7528pair&lt;int,int&gt;\uff0c\u76f4\u63a5\u5275\u4e00\u500bstruct\uff0c\u5c31AC\u4e86\u2026\u3002<br>\n\u770b\u4f86Prim\u9019\u7a2e\u6771\u897f\u4e0d\u4f46\u5e38\u6578\u5927\uff0c\u78b0\u4e0a\u4e00\u4e9b\u5947\u602a\u7684\u554f\u984c\u7684\u6a5f\u7387\u9084\u6bd4\u8f03\u9ad8\u963f\u2026(<strong>EDIT<\/strong>:\u4e4b\u5f8c\u6211\u5728\u5176\u4ed6\u984c\u76ee\u767c\u73fe\uff0c\u5982\u679c\u628aqueue&lt;element&gt; q;\u5ba3\u544a\u5728\u975e\u5168\u57df\uff0c\u90a3\u9ebc\u5f88\u6709\u53ef\u80fd\u53ea\u8981\u6539\u52d5\u4f8b\u5982\u9663\u5217size\u9019\u7a2e\u7121\u95dc\u7dca\u8981\u7684\u5730\u65b9\uff0c\u5c31\u6703\u9020\u6210TLE\uff0c\u7576\u6642\u7684\u60c5\u6cc1\u662f\u6bcf\u6b21bfs\u90fd\u5728local\u5ba3\u544a\u4e00\u6b21queue&lt;element&gt; q;)<br>\n\u4e56\u4e56\u7528Kruskal\u5c31\u597d\u4e86\u5427<br>\n(\u4ee5\u4e0b\u63d0\u4f9b\u5169\u7a2e\u65b9\u6cd5\u7684code)<\/p>\n<h3>\u60f3\u6cd5<\/h3>\n<p>\u5047\u8a2d\u76ee\u524d\u4f60\u53ea\u7372\u5f97\u4e86\u90e8\u5206\u7684\u6a39(\u9084\u6709\u9ede\u6c92\u6709\u5728\u6a39\u88e1\u9762)\uff0c\u90a3\u9ebc\u9019\u68f5\u6a39\u5230\u90a3\u4e9b\u9084\u6c92\u52a0\u5165\u7684\u9ede\u7684\u6700\u77ed\u8ddd\u96e2\u300c\u4e2d\u300d\u7684\u6700\u77ed\u7684\uff0c\u5fc5\u5b9a\u662f\u4e00\u689d\u5b58\u5728\u7684\u9023\u51fa\u53bb\u7684\u908a\uff0c\u90a3\u9ebc\u6211\u5011\u7576\u7136\u9700\u8981\u628a\u9019\u689d\u908a\u52a0\u9032\u53bb\u3002<br>\n\u4ee5\u4e0a\u7684\u8a0e\u8ad6\u53ef\u4ee5\u767c\u73fe\uff0c\u9019\u6070\u597d\u5c31\u662fPrim\u2019s Algo\u7684\u904e\u7a0b\u963f!\u4e5f\u5c31\u662f\u9019\u68f5\u6a39\u5c31\u662f\u4e00\u500b\u6700\u5c0f\u751f\u6210\u6a39\u3002<br>\n\u90a3\u6211\u5011\u53ef\u4ee5\u9078\u7528\u5169\u7a2e\u65b9\u6cd5\u4f86\u9020\u51fa\u9019\u68f5\u6a39(Kruskal,Prim)\u3002<br>\n\u5269\u4e0b\u5c31\u662f\u628a\u6700\u77ed\u8def\u5f91\u7684\u77e9\u9663\u9020\u51fa\u4f86\u4e26\u4e14\u6bd4\u5c0d\u662f\u5426\u6b63\u78ba\u5c31\u597d(\u4f7f\u7528LCA\u627e\u5230\u6b63\u78ba\u7684\u8def\u5f91\uff0c\u4e26\u4e14\u8a18\u9304root\u5230\u6bcf\u500b\u9ede\u7684\u8ddd\u96e2(\u4e5f\u5c31\u662f\u524d\u7db4\u548c)\uff0c\u5982\u6b64\u5c31\u53ef\u4ee5$O(\\lg n)$\u7b97\u51fa\u6700\u77ed\u8ddd\u96e2\u4e86)\u3002<\/p>\n<h3>\u60f3\u6cd52<\/h3>\n<p>\u9019\u500b\u60f3\u6cd5\u7db2\u8def\u4e0a\u597d\u50cf\u6c92\u6709\u4eba\u5beb\uff0c\u4f46\u662f\u6bd4\u8cfd\u6642\u5f88\u591a\u4eba\u90fd\u662f\u9019\u6a23\u5beb\u7684\uff0c\u5f88\u5feb\u3002<br>\n\u9996\u5148\u78ba\u8a8d$i\\rightarrow i$\u7684\u8ddd\u96e2\u662f$0$\u3001$i\\rightarrow j,\\ i\\neq j$\u7684\u8ddd\u96e2\u4e0d\u70ba$0$\u3001$dis(i\\rightarrow j)==dis(j\\rightarrow i)$\u3002<br>\n\u63a5\u8457\u6cbf\u7528\u60f3\u6cd5\u4e00\uff0c\u6211\u5011\u77e5\u9053MST\u662f\u5b58\u5728\u7684\uff0c\u800c\u6211\u5011\u6709\u7684\u8cc7\u8a0a\u53ea\u6709\u90a3$n\\times n$\u7684\u8ddd\u96e2\u77e9\u9663\uff0c\u63a5\u4e0b\u4f86\u53ea\u8981\u6e2c\u8a66\u4efb\u4f55\u908a(u,v)\u9019\u689d\u908a\u662f\u53ef\u4ee5\u5728\u6a39\u4e0a\u5c31\u597d(\u7531\u65bc\u6211\u5011\u64c1\u6709\u7684\u8cc7\u8a0a\u53ea\u6709\u9019$n\\times n$\u7684\u77e9\u9663\uff0c\u6240\u4ee5\u6211\u5011\u53ea\u8981\u78ba\u8a8d\u6240\u6709\u7d93\u904e(u,v)\u7684\u8def\u5f91\u90fd\u53ef\u4ee5\u5982\u77e9\u9663\u4e0a\u90a3\u6a23\u5c31\u597d)\uff0c\u6700\u5f8c\u53ea\u8981\u628a\u5168\u90e8\u7684(u,v) pair\u90fd\u6e2c\u8a66\u904e\u4e00\u904d\uff0c\u5c31\u7d50\u675f\u4e86\u3002<br>\n(\u9019\u6bb5\u8a71\u5beb\u5f97\u6bd4\u8f03\u6a21\u7cca\uff0c\u5efa\u8b70\u76f4\u63a5\u770bcode)<\/p>\n<h3>\u7a0b\u5f0f\u78bc(\u60f3\u6cd5\u4e8c):<\/h3>\n<pre><code class=\"language-cpp=\">const int _n=2010;  \nint t,n,d[_n][_n];  \nmain(void) {cin.tie(0);ios_base::sync_with_stdio(0);  \n  cin&gt;&gt;n;rep(i,1,n+1)rep(j,1,n+1)cin&gt;&gt;d[i][j];  \n  rep(i,1,n+1)rep(j,i,n+1)if((i==j and d[i][i]) or d[i][j]!=d[j][i] or (i!=j and d[i][j]==0)){cout&lt;&lt;&quot;NO\\n&quot;;return 0;}  \n  rep(i,1,n+1){  \n    int r=1;  \n    rep(j,2,n+1)if(i!=j and d[r][i]&gt;d[j][i])r=j;  \n    rep(k,1,n+1)if(abs(d[k][i]-d[k][r])!=d[i][r]){cout&lt;&lt;&quot;NO\\n&quot;;return 0;}  \n  }cout&lt;&lt;&quot;YES\\n&quot;;  \n  return 0;  \n}  \n<\/code><\/pre>\n<p>\u6a19\u982d\u3001\u6a21\u677f\u8acb\u9edecodepad\u770b<br>\n<a href=\"http:\/\/codepad.org\/CSRVdWog\">Submission<\/a><\/p>\n<h3>\u7a0b\u5f0f\u78bc(Kruskal):<\/h3>\n<pre><code class=\"language-cpp=\">const int _n=2010,MAXB=12;  \nint parent[_n], rank[_n];  \ninline void dsinit(int n) {for (int i = 0; i &lt; n; i++)parent[i] = i;memset(rank, 0, sizeof rank);}  \ninline int dsfind(int e) {return parent[e] == e ? e : parent[e] = dsfind(parent[e]);}  \ninline void dsunion(int s1, int s2) {if (rank[s1] &lt; rank[s2])swap(s1, s2);parent[s2] = s1;if (rank[s1] == rank[s2]) rank[s1]++;}  \n\/\/\u4ee5\u4e0a\u662fdsu\u6a21\u677f  \nint t,n,dep[_n],fa[_n][MAXB],d[_n][_n];  \nll dis[_n];  \nvector&lt;PII&gt; G[_n];  \nstruct E{  \n  int f,t,w;  \n  bool operator&lt;(const E&amp; rhs) const {return w&lt;rhs.w;}  \n};  \nvector&lt;E&gt; e;  \nbool vis[_n];  \nvoid dfs(int v,int faa,ll len){  \n  dep[v]=dep[faa]+1;dis[v]=dis[faa]+len;fa[v][0]=faa;  \n  rep(i,0,SZ(G[v]))if(faa!=G[v][i].fi)dfs(G[v][i].fi,v,G[v][i].se);  \n}  \nvoid bfa(){  \n  rep(j,1,MAXB)rep(i,1,n+1)if(~fa[i][j-1])  \n    fa[i][j]=fa[fa[i][j-1]][j-1];  \n}  \nint lca(int a,int b){  \n  if(dep[a]&lt;dep[b])swap(a,b);  \n  per(j,0,MAXB)if(~fa[a][j] and dep[fa[a][j]]&gt;=dep[b])a=fa[a][j];  \n  if(a==b)return a;  \n  per(j,0,MAXB)if(~fa[a][j] and fa[a][j]!=fa[b][j])a=fa[a][j],b=fa[b][j];  \n  return fa[a][0];  \n}  \n\/\/\u4ee5\u4e0a\u57fa\u672c\u4e0a\u662flca\u6a21\u677f  \nmain(void) {cin.tie(0);ios_base::sync_with_stdio(0);  \n  cin&gt;&gt;n;rep(i,1,n+1)rep(j,1,n+1)cin&gt;&gt;d[i][j];  \n  rep(i,1,n+1)rep(j,i,n+1)if((i==j and d[i][i]) or d[i][j]!=d[j][i] or (i!=j and d[i][j]==0)){cout&lt;&lt;&quot;NO\\n&quot;;return 0;}  \n  rep(i,1,n+1)rep(j,i+1,n+1)e.pb({i,j,d[i][j]}); sort(all(e)); dsinit(n);  \n  rep(i,0,SZ(e)){  \n    int s1=dsfind(e[i].f),s2=dsfind(e[i].t);  \n    if(s1==s2) continue;  \n    dsunion(s1,s2);  \n    G[e[i].f].pb({e[i].t,e[i].w});  \n    G[e[i].t].pb({e[i].f,e[i].w});  \n  }  \n  dep[0]=-1;dfs(1,0,0);rep(i,1,n+1)rep(j,1,MAXB)fa[i][j]=-1; bfa();  \n  rep(i,1,n+1)rep(j,i,n+1){  \n    int l=lca(i,j);  \n    if(d[i][j]!=dis[i]+dis[j]-dis[l]*2){cout&lt;&lt;&quot;NO\\n&quot;;return 0;}  \n  }cout&lt;&lt;&quot;YES\\n&quot;;  \n  return 0;  \n}  \n<\/code><\/pre>\n<p>\u6a19\u982d\u3001\u6a21\u677f\u8acb\u9edeSubmission\u770b<br>\n<a href=\"https:\/\/codeforces.com\/contest\/472\/submission\/90286933\">Submission<\/a><\/p>\n<h3>\u7a0b\u5f0f\u78bc(Prim\u2019s):<\/h3>\n<pre><code class=\"language-cpp=\">const int _n=2010,MAXB=13;  \nint t,n,dep[_n],fa[_n][MAXB];  \nll d[_n][_n],dis[_n];  \nvector&lt;PII&gt; G[_n];  \nbool vis[_n];  \nstruct node{  \n  int f,t,w;  \n  bool operator&lt;(const node&amp; rhs) const {return w&gt;rhs.w;}  \n};  \n\/\/\u4ee5\u4e0a\u662f\u771f\u6b63\u6709\u7528\u5230\u7684struct  \nclass Cmp{  \n  public:  \n  bool operator()(const PII&amp; a,const PII&amp; b) const {return d[a.fi][a.se]&gt;d[b.fi][b.se];}  \n};  \n\/\/\u4ee5\u4e0aclass\uff0c\u5982\u524d\u8a00\u6240\u8aaa\uff0c\u6703\u9020\u6210TLE  \nvoid dfs(int v,int faa,ll len){  \n  dep[v]=dep[faa]+1;dis[v]=dis[faa]+len;fa[v][0]=faa;  \n  rep(i,0,SZ(G[v]))if(faa!=G[v][i].fi)dfs(G[v][i].fi,v,G[v][i].se);  \n}  \nvoid bfa(){  \n  rep(j,1,MAXB)rep(i,1,n+1)if(~fa[i][j-1])  \n    fa[i][j]=fa[fa[i][j-1]][j-1];  \n}  \nint lca(int a,int b){  \n  if(dep[a]&lt;dep[b])swap(a,b);  \n  per(j,0,MAXB)if(~fa[a][j] and dep[fa[a][j]]&gt;=dep[b])a=fa[a][j];  \n  if(a==b)return a;  \n  per(j,0,MAXB)if(~fa[a][j] and fa[a][j]!=fa[b][j])a=fa[a][j],b=fa[b][j];  \n  return fa[a][0];  \n}  \n\/\/\u4ee5\u4e0a\u57fa\u672c\u4e0a\u662flca\u6a21\u677f  \nmain(void) {cin.tie(0);ios_base::sync_with_stdio(0);  \n  cin&gt;&gt;n;rep(i,1,n+1)rep(j,1,n+1)cin&gt;&gt;d[i][j];  \n  rep(i,1,n+1)rep(j,i,n+1)if((i==j and d[i][i]) or d[i][j]!=d[j][i] or (i!=j and d[i][j]==0)){cout&lt;&lt;&quot;NO\\n&quot;;return 0;}  \n  priority_queue&lt;node&gt; pq;  \n  pq.push({0,1});  \n  while(!pq.empty()){  \n    \/*PII now;while(!pq.empty() and vis[(now=pq.top()).se])pq.pop();  \n    if(pq.empty())break;*\/  \n    node now=pq.top(); pq.pop();  \n    if(vis[now.t])continue;  \n    vis[now.t]=1;  \n    G[now.f].pb({now.t,d[now.f][now.t]});  \n    \/\/if(now.fi!=0)G[now.se].pb({now.fi,d[now.se][now.fi]});  \n    rep(i,1,n+1)if(!vis[i])pq.push({now.t,i,d[now.t][i]});  \n  }  \n  dep[0]=-1;dfs(1,0,0);rep(i,1,n+1)rep(j,1,MAXB)fa[i][j]=-1; bfa();  \n  rep(i,1,n+1)rep(j,i,n+1){  \n    int l=lca(i,j);  \n    if(d[i][j]!=dis[i]+dis[j]-dis[l]*2){cout&lt;&lt;&quot;NO\\n&quot;;return 0;}  \n  }cout&lt;&lt;&quot;YES\\n&quot;;  \n  return 0;  \n}  \n<\/code><\/pre>\n<p>\u6a19\u982d\u3001\u6a21\u677f\u8acb\u9edeSubmission\u770b<br>\n<a href=\"https:\/\/codeforces.com\/contest\/472\/submission\/90284705\">Submission<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[3],"tags":[10,13,12,9,8],"class_list":["post-37","post","type-post","status-publish","format-standard","hentry","category-ojcode","tag-codeforce","tag-lca","tag-mst","tag-ojcode","tag-8"],"jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad) - Logic Formatting<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.seekrealthing.net\/blog\/?p=37\" \/>\n<meta property=\"og:locale\" content=\"zh_TW\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad) - Logic Formatting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.seekrealthing.net\/blog\/?p=37\" \/>\n<meta property=\"og:site_name\" content=\"Logic Formatting\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-11T14:37:43+00:00\" \/>\n<meta name=\"author\" content=\"jeff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005:\" \/>\n\t<meta name=\"twitter:data1\" content=\"jeff\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9810\u4f30\u95b1\u8b80\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \u5206\u9418\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=37#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=37\"},\"author\":{\"name\":\"jeff\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/233e80a0fee3d4706f067f2e88c0b454\"},\"headline\":\"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad)\",\"datePublished\":\"2025-01-11T14:37:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=37\"},\"wordCount\":120,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#organization\"},\"keywords\":[\"codeforce\",\"LCA\",\"MST\",\"ojcode\",\"\u601d\u7dad\"],\"articleSection\":[\"ojcode\"],\"inLanguage\":\"zh-TW\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.seekrealthing.net\/blog\/?p=37#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=37\",\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=37\",\"name\":\"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad) - Logic Formatting\",\"isPartOf\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#website\"},\"datePublished\":\"2025-01-11T14:37:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=37#breadcrumb\"},\"inLanguage\":\"zh-TW\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.seekrealthing.net\/blog\/?p=37\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=37#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\/\/blog.seekrealthing.net\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#website\",\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/\",\"name\":\"Logic Formatting\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.seekrealthing.net\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-TW\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#organization\",\"name\":\"Logic Formatting\",\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/wp-content\/uploads\/2025\/02\/android-chrome-512x512-1.png\",\"contentUrl\":\"https:\/\/blog.seekrealthing.net\/blog\/wp-content\/uploads\/2025\/02\/android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Logic Formatting\"},\"image\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/233e80a0fee3d4706f067f2e88c0b454\",\"name\":\"jeff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f9b571b28c252728386f0002b35d9cb9a9028f740b0f9ca5ad678e7eb21c4857?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f9b571b28c252728386f0002b35d9cb9a9028f740b0f9ca5ad678e7eb21c4857?s=96&d=mm&r=g\",\"caption\":\"jeff\"},\"sameAs\":[\"http:\/\/150.230.63.147\/blog\"],\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad) - Logic Formatting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.seekrealthing.net\/blog\/?p=37","og_locale":"zh_TW","og_type":"article","og_title":"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad) - Logic Formatting","og_url":"https:\/\/blog.seekrealthing.net\/blog\/?p=37","og_site_name":"Logic Formatting","article_published_time":"2025-01-11T14:37:43+00:00","author":"jeff","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005:":"jeff","\u9810\u4f30\u95b1\u8b80\u6642\u9593":"5 \u5206\u9418"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=37#article","isPartOf":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=37"},"author":{"name":"jeff","@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/233e80a0fee3d4706f067f2e88c0b454"},"headline":"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad)","datePublished":"2025-01-11T14:37:43+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=37"},"wordCount":120,"commentCount":0,"publisher":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/#organization"},"keywords":["codeforce","LCA","MST","ojcode","\u601d\u7dad"],"articleSection":["ojcode"],"inLanguage":"zh-TW","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.seekrealthing.net\/blog\/?p=37#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=37","url":"https:\/\/blog.seekrealthing.net\/blog\/?p=37","name":"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad) - Logic Formatting","isPartOf":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/#website"},"datePublished":"2025-01-11T14:37:43+00:00","breadcrumb":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=37#breadcrumb"},"inLanguage":"zh-TW","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.seekrealthing.net\/blog\/?p=37"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=37#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/blog.seekrealthing.net\/blog"},{"@type":"ListItem","position":2,"name":"D. Design Tutorial: Inverse the Problem \u89e3\u6790\u542b\u5feb\u901f\u89e3\u6cd5(MST\u3001LCA\u3001\u601d\u7dad)"}]},{"@type":"WebSite","@id":"https:\/\/blog.seekrealthing.net\/blog\/#website","url":"https:\/\/blog.seekrealthing.net\/blog\/","name":"Logic Formatting","description":"","publisher":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.seekrealthing.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-TW"},{"@type":"Organization","@id":"https:\/\/blog.seekrealthing.net\/blog\/#organization","name":"Logic Formatting","url":"https:\/\/blog.seekrealthing.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/blog.seekrealthing.net\/blog\/wp-content\/uploads\/2025\/02\/android-chrome-512x512-1.png","contentUrl":"https:\/\/blog.seekrealthing.net\/blog\/wp-content\/uploads\/2025\/02\/android-chrome-512x512-1.png","width":512,"height":512,"caption":"Logic Formatting"},"image":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/233e80a0fee3d4706f067f2e88c0b454","name":"jeff","image":{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f9b571b28c252728386f0002b35d9cb9a9028f740b0f9ca5ad678e7eb21c4857?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f9b571b28c252728386f0002b35d9cb9a9028f740b0f9ca5ad678e7eb21c4857?s=96&d=mm&r=g","caption":"jeff"},"sameAs":["http:\/\/150.230.63.147\/blog"],"url":"https:\/\/blog.seekrealthing.net\/blog\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=37"}],"version-history":[{"count":1,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/37\/revisions"}],"predecessor-version":[{"id":38,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/37\/revisions\/38"}],"wp:attachment":[{"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=37"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=37"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}