æ¨
Block-Cut æ¨ã試ãã®ã«ãããããåé¡ï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ãè¾ºæ° ã®é£çµãªç¡åã°ã©ããä¸ããããï¼åç´ã¨ã¯éããªãï¼ãé ç¹ ã«ã¯ãéã¿ ãã¤ãã¦ãããåé ç¹ã«ã¤ãã¦ã以ä¸ã®åã«çããã ãåã ãã®é ç¹ãé¤å¤ããã°ã©ããèããããã®â¦
ããã¯æ¯è¼çæããã ã£ããæ¢ç´¢ããã ãï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ä¸å³ã®ããã«ãè¨ç®éç¨ãã表ãäºæ¬¡å ã°ãªãããä¸ãããããæå . 以å¤ã®æåã¯æ¨ããªãã¦ãã¦ãèã«ã¯æ°å¤ããããã¦ãããæ¼ç®å +ã-ã*ã/ ã¯ããããã大ããæ¹ããå°ããæ¹ã«æ¼â¦
é¢ç½ãåé¡ã ã£ãã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ä¸ã®å³ã®ãããªæ¨ããã¦æ¨ãã¨å¼ã¶ï¼æ£å¼ãªå®ç¾©ã¯å顿åç §ï¼ã é ç¹æ° ã®æ¨ãä¸ããããããã¤ãã®é ç¹ãåé¤ãã¦ãã¦æ¨ãã«ããããåé¤ããé ç¹ã®åæ°ã®æå°å¤ãæ±ããã å¶ç´ èããã㨠ä¸ããããæ¨ã«ãâ¦
evima ããã®å¥è§£ã§è§£ããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®åç´ãªæ¨ãä¸ããããããã®æ¨ã«è¾ºã 1 æ¬è¿½å ãã¦å¾ãããã°ã©ãã®ãã¡ãæ¬¡ã®æ¡ä»¶ãæºãããã®ã®åæ°ãæ±ããã åç´ã°ã©ãã§ãã ãµã¤ã¯ã«ãã¡ããã© 1 ã¤å«ã¿ããã®ãµã¤ã¯ã«ã«å«ã¾ããé ç¹â¦
åé¡ãè¨ãæããã®ãå°ãé£ãã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ãä¸ããããï¼é ç¹çªå· ï¼ã ãã®æ¨ã«å¯¾ãã¦ãèã 1 ã¤é¸ãã§åé¤ãããã¨ããæä½ãç¹°ãè¿ããé ç¹ 1 ãåé¤ããã¾ã§ã®æä½åæ°ã®æå°å¤ãæ±ããã å¶ç´ èããã㨠0-indexed ã§èãâ¦
ã¾ã¨ãã«è¨ç®ããã¨æ¡æ°ãã¨ãã§ããªããã¨ã«ãªãã®ã§ããLU ã§æ¶ãããRU ã§æ¶ãããæ´»ç¨ãããï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ°ãååå¤ãå®å ¨äºåæ¨ãä¸ãããããæ ¹ã®çªå·ã¯ 1 ã§ãããä¸è¬ã«é ç¹ ã®å·¦åé ç¹ã®çªå·ã¯ ãå³åé ç¹ã®çªå·ã¯ ã§ããã æâ¦
Euler Tour ãã¦ãé å»¶è©ä¾¡ã»ã°æ¨ï¼åºéå ç® + åºé minï¼ã«ä¹ãã¦......ã¨ããè§£æ³ãèãã¦ããã¨ããã«ããã¾ãã«ãã·ã³ãã«ãªæ³å®è§£æ³ãç®ã«ãã¦ãæåããï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®éã¿ä»ãæ¨ãä¸ããããã ã«å¯¾ãã¦ã次ã®åã«çããã åâ¦
æ¨ã®ç´å¾ã®åé¡ï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ãä¸ããããã çªç®ã®è¾ºã¯ãé ç¹ ã¨é ç¹ ãçµãã§ãããé·ã㯠ã§ããã ããããã®è¡ãåºçºããéè·¯ã«ããç§»åã§å ¨ã¦ã®è¡ã 1 度以ä¸è¨ªããããã®ç§»åè·é¢ã®æå°å¤ãæ±ããã å¶ç´ èããã㨠ããä»®â¦
è³æºé ååé¡ãªã©ã¨ãå¼ã°ããã貪欲æ³ã使ããåé¡ï¼ åé¡ã¸ã®ãªã³ã¯ éå»ã«ããä¼¼ãé¡é¡ãåºé¡ãããã¨ãããã drken1215.hatenablog.com å顿¦è¦ æ£ã®æ´æ°ãããªãé·ã ã®æ°å ããããé ç¹ ããã¤æ¨ããã¹ã¦èããã¨ãã®ã ã®æå°å¤ãæ±ãã ( ã¯é ç¹ â¦
ããããªè§£æ³ããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®ç¡åæ¨ãä¸ãããããåé ç¹ ã«ã¯è² ãå¡ããã¦ããã ãã®ã°ã©ãã«ããã¦ã ã§ãããããªé ç¹çµ () ã«ã¤ãã¦ã®ã2 ç¹ éã®è·é¢ã®ç·åãæ±ããã å¶ç´ èããã㨠ãã¼ã¸ãã¯ã§èãããä¾ã«ãã£ã¦é ç¹ â¦
æ¬å½ã«è²ããªè§£æ³ãããåé¡ã£ã½ãï¼ï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹ ã® é ç¹ãããªãç¡åã°ã©ãããããæåã¯è¾ºããªãã以ä¸ã® 2 種é¡ã®ãªã³ã©ã¤ã³ã¯ã¨ãªã«çããã ã¯ã¨ãªã¿ã¤ã 1ï¼é ç¹ éã«è¾ºãçµã¶ ã¯ã¨ãªã¿ã¤ã 2ï¼é ç¹ ã®åæ¹ã«é£æ¥ããé ç¹ãããâ¦
å ¨æ¹ä½æ¨ DP ã®ç·´ç¿åé¡ï¼ï¼ ãç´ æ°ã¨ã¯éããªãã®ã§ãå·¦å³ããç´¯ç©åããå¿ è¦ãªã¿ã¤ãã®å ¨æ¹ä½æ¨ DPã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ æ£ã®æ´æ° ã¨ãé ç¹æ° ã®æ¨ ãä¸ããããããã®æ¨ã®åé ç¹ããé»è²ãã¾ãã¯ãç½è²ãã«å¡ãã åé ç¹ ã«ã¤ãã¦ã以ä¸ã®æ¡ä»¶ãã¿â¦
åå¿é²ã¨ãã¦ã解説ãããããããé¢å㪠DP ãããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ èãããã¨ åºæ¬çã«æ¨ DP ã®ããªã§èãããã¨ã«ããã æ ¹ã 1 ã¤ã¨ã£ãã¨ããç°ãªãé¨åæ¨éã§äº¤æãããé ç¹ã¯ãã ã ã 1 å以å ã§ãããããã§æ¬¡ã® DP ãããã dp[v][k] â â¦
Polynomial Taylor Shift ã使ããï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ãä¸ãããããå ã«å¯¾ãã¦ã次ã®åãã«çããã é ç¹ãã åã®é ç¹ãé¸ã¶ éãã®æ¹æ³ããããã«ã¤ã㦠ãã® åã®é ç¹ããã¹ã¦å«ãé£çµãªé¨åã°ã©ãã®ãµã¤ãºã¨ãã¦èããããæå°å¤â¦
lca ã®åé¡ãªã¹ãã«è¿½å ï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ã¨ã2 é ç¹ ãä¸ãããããå ã«å¯¾ãã¦ã以ä¸ã®åãã«çããã ãã¹ - ã¨ããã¹ - ã®ä¸¡æ¹ã«å«ã¾ããé ç¹ã®åæ°ãçãã å¶ç´ èããã㨠é ç¹ ãå§ç¹ã¨ããæ ¹ä»ãæ¨ãä½ã£ãããããããããã¨â¦
undo ä»ã Union-Findï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ãä¸ãããããåé ç¹ã«ã¯ãæ°å¤ ã®æ¸ããããã¼ã«ã¨ãæ°å¤ ã®æ¸ããããã¼ã«ãããã å ã«å¯¾ãã¦ã次ã®åã«çããã ãã¹ - ä¸ã®åé ç¹ãã ãã¼ã«ã 1 åãã¤é¸ãã ã¨ãã® ãã¼ã«ã«æ¸ãããæ°â¦
æ¨ãæ¢ç´¢ããç·´ç¿åé¡ãé ãæãããããã®ãèå¿ã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ããªãã¯ã¢ã¡ã¼ãã®è¦³å¯è¨é²ãã¤ãã¾ãããæå å¹ã®ã¢ã¡ã¼ãããããçªå·ã¯ ã§ãã 観å¯è¨é²ã¯æç³»åé ã« åããã çªç®ã®è¦³å¯è¨é²ã¯ çªå· ã®ã¢ã¡ã¼ããåè£ãã¦æ¶æ» ãã æ°ãã«â¦
DFS ãªã©ã®æ¢ç´¢ããã¦ãè§£ããããåã«æ¬¡æ°ãè¦ãã ãã§ãè§£ããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ åã®èããã¤ã¹ã¿ã¼ã°ã©ãããã¬ãã« ã®ã¹ã¿ã¼ã¨å¼ã¶ãã¨ã«ããã 髿©åã¯ãã¯ããä½åãã®ã¹ã¿ã¼ãããªãã°ã©ããæã£ã¦ããããããã®ã¹ã¿ã¼ã®é ç¹æ°ã®ç·å㯠â¦
éå¿åè§£ï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ (ã¤ã³ã¿ã©ã¯ãã£ã) é ç¹ã®æ¨ãä¸ããããããªãããã®æ¨ã¯ã©ã®é ç¹ã®æ¬¡æ°ã 以ä¸ã§ãããã¨ãä¿è¨¼ããã¦ããã A ããã¯ããã®æ¨ã®ããããã®é ç¹ ãèãã¦ããããã®é ç¹ ãå½ã¦ãã²ã¼ã ãè¡ãã ããªãã¯æå¤§ 14 åã®â¦
æ¨ DP ã®ããæãã®ç·´ç¿åé¡ã ã£ãï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®éã¿ä»ãæ¨ãä¸ãããã (éã¿ã¯è² ã®ãã¨ããã)ã ãã®æ¨ã®è¾ºã®é¨åéåã§ãã£ã¦ãåé ç¹ ã«æ¥ç¶ããè¾ºã®æ¬æ°ã æ¬ä»¥ä¸ã§ãããããªãã®ã«å¯¾ãã¦ã辺ã®éã¿ã®ç·åã®æå¤§å¤ãæ±ããã â¦
ãã£ã¡ãé¢ç½ãåé¡ã ã£ãï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹ 0 ãæ ¹ã¨ããé ç¹æ° ã®æ ¹ä»ãæ¨ãä¸ãããã¾ããé ç¹ 0 以å¤ã®é ç¹ ã«ã¯æ°å¤ ãæ¸ããã¦ãã¾ããä»ãé ç¹ 0 ã«ã³ããç½®ãã¦ããã¾ãã 髿©ããã¨éæ¨ãããæ¬¡ã®åä½ã交äºã«ç¹°ãè¿ãã¾ãã 鿍ãâ¦
DFS (æ·±ãåªå æ¢ç´¢) ã®åããã·ãã¥ã¬ã¼ã·ã§ã³ããåé¡ã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹çªå·ã ã§ãããããªæ¨ãä¸ãããã¾ãã ä»ãã®ã°ã©ãã«ããã¦ãé ç¹ 1 ããåºçºãã¦ã次ã®åããç¹°ãè¿ãã¾ãã ãã¾ããé ç¹ã«é£æ¥ããé ç¹ã®ãã¡ãã¾ã 訪ãããã¨ãâ¦
ãããããæ¨ä¸ã®æå¤§å®å®éååé¡ãã§ãï¼ è¶ å ¸ååé¡ã§ãã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ãä¸ãããã¾ããæ¨ããããã¤ãã®é ç¹ãé¸ãã§åé¤ãã¾ãããã®çµæãæ¨ã¯ããã¤ãã®é£çµæåã«åããã¾ãã åãããé£çµæåã®åæ°ã®æå¤§å¤ãæ±ãã¦ãã â¦
æ¨ä¸ã®ãã¹ã«é¢ããåé¡ï¼ï¼ LCA ã§è§£æ±ºã§ããå ¸ååé¡ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ãä¸ãããããæ¬¡ã® åã®ã¯ã¨ãªã«çããã åã¯ã¨ãªã§ã¯æ¨ä¸ã® 2 é ç¹ ãä¸ãããã æ¨ã«è¾º ãä»®ã«è¿½å ããã¨ããã¨ãéè·¯ã 1 åå½¢æããã ãã®éè·¯ã«å«ã¾ãã辺â¦
æ¨ã®ç´å¾ã®æ±ãæ¹ãç¥ã£ã¦ããã°è§£ããï¼ï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ããããããã®å½¢ç¶ã«ã¤ãã¦ã®æ å ±ã¯ãããããããããªããããªãã®ç®çã¯ããã®æ¨ã®ç´å¾ã®é·ããæ±ãããã¨ã§ããã ãã®ããã«ã以ä¸ã®ã¯ã¨ãªã 100 åã¾ã§æãããã¨ãã§â¦
ãªãã¨ãè§£ãããè¥å¹²ã¨ã¹ãã¼æ°å³ã«è§£ããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ãè¾ºæ° ã®ç¡ååç´ã°ã©ããä¸ããããã å ã«å¯¾ãã¦ããã®èªå°é¨åã°ã©ã (é ç¹éåã¯ãã®ã¾ã¾ã辺éåã¯é¨åéå) ã§ãã£ã¦ã次æ°ã奿°ã®é ç¹ã åã§ãããããªãã®ã®åæ°ã â¦
èªè§£ã大å¤ã ãã©ãæ¬è³ªçã«ã¯æ¨ DP ãªåé¡ ã¸ã£ãã¸ã¸ã®ãªã³ã¯ AOJ ãã¼ã¸ å顿¦è¦ æ¬ã®æ£ãç¨ãã¦ãä¸å³ã®ãããªã¢ãã¼ã«ãä½ãããã å ¥åã¨ãã¦ã¯ã忣 ã«ã¤ãã¦ã® 左端ããæ¯ç¹ã¾ã§ã®é·ã å³ç«¯ããæ¯ç¹ã¾ã§ã®é·ã 左端ããã¤ãªãã£ã¦ããæ£ã® index (â¦
ããã®å¿ç¨åé¡ã£ã¦æãã ã£ãï¼ï¼ drken1215.hatenablog.com åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ãä¸ããããã çªç®ã®è¾ºã¯é ç¹ ã¨é ç¹ ã¨ãçµãã§ãããã¯ãããåé ç¹ã«ã¯ãå¤ 0 ãæ¸ãè¾¼ã¾ãã¦ããã以ä¸ã® åã®ã¯ã¨ãªãå¦çãããã¨ã®ãåé ç¹ã«æ¸ãâ¦
ãã©ãµãã®ãã®åãããåé¡ãå¤ãã£ãæ°ãããã®ã§è§£ãç´ããæä¸ä½ã®æ¡ããé ã«è¦ã¦ãã£ã¦ã0 㨠1 ã¨ã«åé¡ãã¦ãã£ã¦...ã¨ããã®ã¯ããè¦ãæ°ãããï¼ï¼ï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ã©ã®è¦ç´ ãäºãã«ç¸ç°ãªãéè² æ´æ°å ã good ã§ããã¨ã¯ã以ä¸ã®æ¡ä»¶â¦
æåã¾ãã¾ã¨ç½ ã«ã²ã£ããã£ã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®æ¨ãä¸ãããããåé ç¹ã«ã¯ 0, 1, 2 ã®ããããã®è² (0: ç°è², 1: ç½è², 2: é»è²) ãå²ãæ¯ããã¦ããã以ä¸ã®æä½ãæå°åæ°è¡ããã¨ã§ãæ¨ãæ¶æ» ãããããæå°åæ°ãæ±ããã [æä½]ï¼æ®â¦