AGC-D
æåã¯äºæ¬¡å FFT ãå¿ è¦ãªæ°åã«ãªã£ã¦ãã¦å³å¾å·¦å¾ãã¦ãããåæ°å¶éãªãããããµãã¯åé¡ã«ãªãã®ã¯é¢ç½ãã£ãï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ æ£ã®æ´æ° ãä¸ãããããé·ã ã®éè² æ´æ°å ã§ãã£ã¦ ã¨ããæ¡ä»¶ãæºãããã®ã®åæ°ãã1000000007 ã§å²ã£ããã¾â¦
é è² diff åé¡ãèªåã§è§£ãã¦å¬ããã(ä¿®æ£ï¼èµ¤è²ã«ãªã£ã) åé¡ã¸ã®ãªã³ã¯ editorial å顿¦è¦ åç¹ãä¸å¿ã¨ããåå¾ 1 ã®åå¨ä¸ã« åã®ç¹ ããã (åè§ãå ¥åã¨ãã¦ä¸ãããã)ã ãããã®ç¹ããã©ã³ãã ã« 3 ç¹é¸ãã§ã§ããä¸è§å½¢ã®å å¿ã®åº§æ¨ã®æå¾ å¤ãâ¦
æåããããã¯æ¬å½ã« AGC ãï¼ï¼ï¼ãã¨ãªã£ã¦ã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ä»¥ä¸ ä»¥ä¸ã®æ´æ°ã®ä¸ããããã¤ãé¸ãã§ãOR åãã¨ã£ã¦ã§ããå¤ãä½éããããæ±ããã å¶ç´ èããã㨠ä¸è¦ããã¨ãã©ãµãã£ã½ãè¦ãç®ã®åé¡ã ãã©ãå®ã¯ããã AGC ã£ã½ãæãâ¦
ãã¡ããã¡ã楽ããã£ã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é·ã ã®æ°åã åç¨æããããã ããããã®ãªã åã®å¤ã¯ ã 1 åãã¤ç»å ´ããããã«ããããããã®æ°åãã以ä¸ã®æä½ãç¹°ãè¿ãã¦ãé·ã ã®é åãä½ãã 空ã«ãªããã«æ®ã£ã¦ããæ°åã®ãã¡ãå é ã®è¦ç´ ã®â¦
æé«ã«å¥½ããªåé¡ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ã®ããªã¼ä¸ã§ã²ã¼ã ãè¡ãã髿©åã¯æ®ã£ãé ç¹ãã 1 ã¤é¸ãã§ç½ãå¡ãã鿍åã¯æ®ã£ãé ç¹ãã 1 ã¤é¸ãã§é»ãå¡ãã ãã®æä½ããã¹ã¦ã®é ç¹ã«è²ãå¡ãããã¾ã§ç¹°ãè¿ããã¨ããé»ãå¡ããããã¹ã¦ã®é â¦
ãã®åé¡ãè§£ããåå ã¯ããå®é¨ããããã¨æãããã¨ãªæ°ãããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ 髿©åã¯ï¼ããç¹æ®ãªè£ ç½®ãããããæã£ã¦ãã¾ãï¼ ãã®è£ ç½®ã¯çç¶ã§ï¼å·¦å³ãããã¼ã«ãå ¥ãããã¨ãã§ãã¾ãï¼ ã¾ãï¼ãã®è£ ç½®ã«ã¯ 2 種é¡ã®ç¶æ A, B ãããã¾â¦
ãããå ¸åçãªåé¡ã ç¾ä»£ãªã伿¥ã³ã³ã® 800 ç¹åé¡ã¨ãã«åºãããªé°å²æ°ã ãããã®ããã¯ã¾ã ãã¾ãå ¸åãããªãã£ãã®ããªã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ä¸ç´ç·ä¸ã« åã®ç¹ ããã£ã¦ãã®é ã«ä¸¦ãã§ãããããã«å·¦å´ã« ãå³å´ã« ãããã ããã¹ã¿ã¼ããã â¦
楽ããã£ãã åæç³»ã®åé¡ããããªæ¡ä»¶ã ã¨çµå±å ¨é¨ä¸ç·ã«ãªããã¨ããåé¡ã®é°å²æ°ãã©ãã¨ãªãæ°ãªãªã£ã½ãã å¿ è¦æ¡ä»¶ãé å¼µã£ã¦åæãããå®ã¯ååãªæããã¾ããæ°ãªãªã£ã½ã㨠AGC ã£ã½ãã®ä¸¡æ¹ãããæãã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ç·åã ãé·ããâ¦
ãããè§£ããªãã£ãã®ãå¼·ãæåæã DP é åã巨大ã«ãªããããªã¨ãã«ãæé©åãã対象ãå ¥ãæ¿ãããã¯ã¯ä»ã¾ã§ãªãã©ãè¦ã¦ããã®ã«ãããæãã¤ããªãæèã®ç¡¬ããæãç¥ããããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ 0 㨠1 ã®ã¿ãããªãè¡åã®è¤é度ã ãã¹ã¦åâ¦
é¢ç½ãã£ã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ æåå ãä¸ããããããããããæååã®ä¸ã® æåãèªç±ã«å¤æ´ãããã¨ãã§ããã ãããã¦å¾ãããæååã¨ããããå転ããæååã® LCS (æé·å ±éé¨åå) ã®é·ãã¨ãã¦èããããæå¤§å¤ãæ±ããã å¶ç´ èããã㨠â¦
æ¬çªããã¼ã§ç¡çç¢çè§£ããï¼ï¼ï¼ ã§ã DP ãæ¬çã ãã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ã®é å ãä¸ãããããããã æ´æ° ãé¸ãã§åºé [ ) ãå·¦ã·ãããããããªãã¡ ããããã ã¸ç½®ãæãããããã«ã³ã¹ã ãããã æ´æ° ãé¸ãã§åºé [ ) ãå³ã·ãããããâ¦
å± é å±ããã®ã¨ã¯ã¹ããªã¼ã åå ãD åé¡ãé¢ç½ããã ã£ãã®ã§çªã£è¾¼ãã ãè§£ãã¦ããã£ãï¼ï¼ï¼ åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ ãã ã¾ã§ã®æ´æ°ãããªã 2 ã¤ã®é å ã«å¯¾ãã¦ãæ°ããªé å ã以ä¸ã®ããã«å®ãã: := é ç®ã®å¤ã¯ ã§ãã ä»ãé åã®åã ã§å®ãããâ¦
ä¸ç®è¦ã¦ããã¼ã¿æ§é ãã¼ããª...ã¨æã£ã¦ãã¾ã£ããããããå å ¥è¦³ãæã¤ã¨å±ãªããå®éã¯å¥½ã¿ãªèå¯ã§è§£ããåé¡ã ã£ãã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ æ£ã®æ´æ° 㨠ãããªãé åãä¸ããããããã¾ããã®é åãä¸å³å·¦ã®ããã«ãã©ãããã®æåºè¾ºã«æ¸ãè¾¼ããâ¦
ä¸ç®è¦ã¦æ¹ãããããããé¢ç½ãã£ããå²ã¨èªç¶ãªèå¯ã®æµãã§è§£ããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ åã®æ£ã®æ´æ°ãããªãæ°å ãä¸ãããããå æã¨å¾æã交äºã«ä»¥ä¸ãç¹°ãè¿ããå ã«æä½ãè¡ããªããªã£ãæ¹ãè² ãã§ãããåæ¹æåãå°½ãããã¨ãã«ã©ã¡ããåâ¦
ããã¯ãããC ããå ã«ç¢ºå®ã«ãããã¨ã£ãã®ã¯ããã£ã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ (æè¨³) H à W ã®äºæ¬¡å ã°ãªããããã£ã¦ãåãã¹ã¯éè·¯ãå£ã§ãããå£ã¯ N åãããæå㯠(1, 1) ã«é§ãããã æ¯ã¿ã¼ã³ (x, y) ã«ããé§ã¯ (x + 1, y) ã«é²ãããããã§ (xâ¦
å®è£ ã¯æããã£ããã®ã®ããããªãã«èªä¿¡ã®ãã Greedy ãæåºã§ãã¦ä¸çº AC ã§ãã¦ããã£ã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ 1 ã ã®å¤ã åãã¤ãã¤é·ã ã®æ°åã§ãã£ã¦ã å ã«ã¤ãã¦ã çªç®ã®å¤ã åç®ã® ã§ãã ã¨ããæ¡ä»¶ãæºãããã®ã 1 ã¤æ§ç¯ãããæ¡ä»¶ãâ¦
ããããç³»ã®åé¡ããªããªãæåºãæããªããã¤ãããããã®ã¯èæ°´ã®é£ç¶æ ãããªãã¨èºèºãã¦ãã¾ããã... åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ é ç¹æ° ãè¾ºæ° ã®æåã°ã©ããä¸ããããã ã©ã®é ç¹ããåºã辺æ°ã 1 ã©ã®é ç¹ããåºçºãã¦ãå¿ ããã¼ã 1 (root) ã«ãâ¦
ã¨ããã¡ããã»ã·ã³ã¤ã«ãã¼ã»ã¦ãã·ããããã¡ã¨æ°åãã§è§£ããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ åã®æ£ã®æ´æ° ãä¸ããããããã®ä¸ããæå¤§åæ°ã®è¦ç´ ãåãåºã㦠ã©ã® 2 ã¤ãã¨ã£ã¦ããã®ç©ãç«æ¹æ°ã¨ã¯ãªããªã ã¨ããæ¡ä»¶ãæºããããã«ããã å¶ç´ è§£æ³ â¦
æãã... åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ æ´æ° ãä¸ãããã以ä¸ã®æ¡ä»¶ãæºãããã㪠è¡å a ã 1 ã¤æ§ç¯ãã: åè¦ç´ ã®å¤ã¯ ä»¥ä¸ ä»¥ä¸ ããæ£ã®æ´æ° ãåå¨ãã¦ãè¡åã®ä¸ä¸å·¦å³ã«é£æ¥ãã 2 æ° ãã©ãããåãåºãã¦ããmax() ã min() ã§å²ã£ããã¾ã㯠ã¨ãªâ¦
é¨åæ°¸ç¶ Union-Find æ¨ã®ç·´ç¿ãããã å顿¦è¦ N é ç¹ M 辺ã®ç¡åã°ã©ããããã¾ãã ã°ã©ãã¯é£çµã§ãã以ä¸ã® Q åã®ã¯ã¨ãªã«çãã: é ç¹ x, y ãä¸ãããããx 㨠y ãå«ã z åã®é ç¹ãããªãéåã«å«ã¾ããé ç¹ã®çªå·ã®æå¤§å¤ãã®æå°å¤ãæ±ãã è§£â¦
ãªãã yukicoder ã§æ¸ããåé¡ã«ååã¯ä¼¼ã¦ããã§ããã®åé¡ã®é£ããã¨ããã¯å¾åã®æ¹ã ã£ãããã åé¡ã¸ã®ãªã³ã¯ å顿¦è¦ å¹ ã ãã¹ãé«ãã ã®ãã¹ãã°ã©ã ãä¸ããããããã®ãã¹ãã°ã©ã ã®åãã¹ãç½é»ã«å¡ãæ¹æ³ã®ãã¡ ã©ã® 2 à 2 ã®åºéãã¨ã£ã¦ãâ¦
å é¤åçåå¼·ä¼ã®ä¸ç°ããªããæåã0ãN-1 ã 2K ã§å²ã£ãä½ãã§é¡å¥ããã¨ããã§éãä½ã£ã¦ãããã§ã®ãµã¤ãº i ã®ãããã³ã°ã®åæ°ãæ°ãããããã®ã ãã©ãããããã¼ã¸ããã®ã« NTT ã使ãã¨ãè¡è¿·ã£ã^^; https://beta.atcoder.jp/contests/agc005/submâ¦
äºé¨ã°ã©ãè§£æ³é ããã¨æã£ããã®ã®ãæ´æ°è«çèå¯ã§éããã®ã§ãã®å ±åããTL è¦ãéãã ã¨ãkirika ããã¨åãè§£æ³ã£ã½ãã§ããããªãå°æ°æ´¾ã£ã½ãã§ã (ãã ããèªåã¯ã¤ãã¢ã«ã¨ããæ¦å¿µãæèã§ãã¦ã¯ããªãã£ãã§ã...)ã d1=2^k * u (u ã¯å¥æ°) ã¨ãâ¦