NISHIO Hirokazu[Translate]
šŸ¤–2023-08-12 02:49
___BELOW_IS_LESS_INTERESTING___
## ē ”ē©¶ćƒŽćƒ¼ćƒˆ

ęŠ½č±”åŒ–ćŒåæ…ćšć—ć‚‚å–„ć§ćŖć„ćØć„ć†č€ƒćˆę–¹ćÆć€å…·ä½“ēš„ćŖć‚‚ć®ć‚’ę€ć„å‡ŗć™ćŸć‚ć®ćƒ•ćƒƒć‚Æć‚„ć€å¤šę§˜ćŖć‚‚ć®ć‚’é€£ęƒ³ć§ćć‚‹ēŠ¶ę…‹ć‚’äæć¤ć“ćØć®é‡č¦ę€§ć‚’ē¤ŗć—ć¦ć„ć¾ć™ć€‚ć“ć‚ŒćÆć€čØ€č‘‰ć®é€£ęƒ³ēš„ę„å‘³ć§ć¤ćŖćŒć‚‹ć“ćØć‚„ć€ć‚¢ćƒ³ć‚±ćƒ¼ćƒˆčŖæęŸ»ć‹ć‚‰ć®KJę³•ćŒé›£ć—ć„ē†ē”±ćØć‚‚é–¢é€£ć—ć¦ć„ć¾ć™ć€‚ć¾ćŸć€ć€ŒéŽć”ć¦ę”¹ć‚ć–ć‚‹ć€ć“ć‚Œć‚’éŽć”ćØć„ć†ć€ćØć„ć†ć€Žč«–čŖžć€ć‹ć‚‰ć®å¼•ē”ØćÆć€éŽć”ć‚’ēŠÆć™ć“ćØč‡Ŗä½“ćÆäŗŗé–“ć®ę€§č³Ŗć§ć‚ć‚Šć€éæć‘ć‚‰ć‚ŒćŖć„ćŒć€ćć®éŽć”ć‚’čŖč­˜ć—ć€ćć‚Œć‚’ę”¹ć‚ćŖć„ć“ćØćŒēœŸć®éŽć”ć§ć‚ć‚‹ćØć„ć†ę•™ćˆć‚’ē¤ŗć—ć¦ć„ć¾ć™ć€‚ć“ć‚ŒćÆć€ē ”ē©¶ć‚„ćƒ‡ć‚¶ć‚¤ćƒ³ć®ćƒ—ćƒ­ć‚»ć‚¹ć«ćŠć„ć¦ć‚‚é‡č¦ćŖę•™čØ“ć§ć‚ć‚‹ćØę„Ÿć˜ć¾ć™ć€‚

å–ē· å½¹ć‚’ē¤¾å†…å…¬å‹Ÿć™ć‚‹ćØć„ć†č€ƒćˆę–¹ćÆć€å–ē· å½¹ćØć„ć†å½¹č·ćŒé€šåøøć€ēµŒå–¶ć‚¹ć‚­ćƒ«ć®å°‚é–€å®¶ć‚„ē¤¾å†…ē§©åŗć«ćŠć‘ć‚‹é•·č€ćØć—ć¦ć®å½¹å‰²ć‚’ęžœćŸć™ćŒć€ć‚µć‚¤ćƒœć‚¦ć‚ŗć®å…¬å‹Ÿå–ē· å½¹ćÆćć†ć§ćÆćŖć„ćØć„ć†ęŒ‡ę‘˜ćŒć‚ć‚Šć¾ć™ć€‚å–ē· å½¹ćŒå¢—ćˆć‚‹ć“ćØć«ć‚ˆć‚‹ę„ę€ę±ŗå®šć®é…ć‚Œć‚„ćƒć‚¤ć‚¢ć‚¹ćŒę‡øåæµć•ć‚Œć¾ć™ćŒć€ć‚µć‚¤ćƒœć‚¦ć‚ŗć®ć€Œć‚„ć£ć¦ćæć¦å•é”ŒćŒę˜Žć‚‰ć‹ć«ćŖć‚Œć°ć‚„ć‚ćŸć‚‰ć„ć„ć€ćØć„ć†ę–‡åŒ–ć‹ć‚‰ć€ä½•ć‹å•é”ŒćŒć‚ć‚Œć°ć‚„ć‚ć‚Œć°ć„ć„ćØč€ƒćˆć‚‰ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚ŒćÆć€ćƒžćƒƒćƒ—č‡Ŗä½“ć‚’ę‰‹č»½ć«ćƒćƒƒć‚Æć‚¢ćƒƒćƒ—ć™ć‚‹ćØć„ć†ęę”ˆćØé–¢é€£ćŒć‚ć‚Šćć†ć§ć™ć€‚å¤§å¹…ćŖę§‹ęˆå¤‰ę›“ć‚’ć—ćŸć„ćŒć€ćć‚ŒćŒę€–ć„ćØć„ć†ć‚·ćƒćƒ„ć‚Øćƒ¼ć‚·ćƒ§ćƒ³ć‚’ć‚«ćƒćƒ¼ć™ć‚‹ćŸć‚ć«ć€ćƒžćƒƒćƒ—č‡Ŗä½“ć‚’ę‰‹č»½ć«č¤‡č£½ć—ć¦ćƒćƒƒć‚Æć‚¢ćƒƒćƒ—ć§ćć‚‹ćØč‰Æć„ćØć„ć†ęę”ˆćŒć‚ć‚Šć¾ć™ć€‚ć“ć‚ŒćÆć€ē“™ć§ä½œę„­ć‚’ć—ć¦ć„ćŸę™‚ć«ćÆęœ¬č³Ŗēš„ć«äøåÆčƒ½ć ć£ćŸć“ćØć ćŒć€ćƒ‡ć‚øć‚æćƒ«åŒ–ć«ć‚ˆć‚ŠåÆčƒ½ć«ćŖć£ćŸć€‚ćƒćƒƒć‚Æć‚¢ćƒƒćƒ—ćÆå¤‰ę›“ć™ć‚‹ęę€–ć‚’ē·©å’Œć™ć‚‹åŠ¹ęžœćŒć‚ć‚‹ćØč€ƒćˆć‚‰ć‚Œć¾ć™ć€‚

åč„†å¼±ę€§ć«ć¤ć„ć¦ć®č€ƒćˆę–¹ćÆć€ć‚ć‚‹åˆ†é‡Žć§å®‰å…Øē­–ć‚’å–ć‚Š(=č² ć®ćƒ–ćƒ©ćƒƒć‚Æć‚¹ćƒÆćƒ³ć«åÆ¾ć—ć¦é ‘å„)ć€åˆ„ć®åˆ†é‡Žć§é™å®šēš„ćƒŖć‚¹ć‚Æć‚’ćŸćć•ć‚“å–ć‚‹ć“ćØć§ć€å¤§å‹ć”ć‹ć‚‰å¤§ććŖåˆ©ē›Šć‚’å¾—ć‚‹(=ę­£ć®ćƒ–ćƒ©ćƒƒć‚Æć‚¹ćƒÆćƒ³ć‚’ę®‹ć™)ćØć„ć†ć‚‚ć®ć§ć™ć€‚ć“ć‚Œć«ć‚ˆć£ć¦åč„†ć•ć‚’å®Ÿē¾ć™ć‚‹ćØć•ć‚Œć¦ć„ć¾ć™ć€‚ć¾ćŸć€ć‚æćƒ¬ćƒ–ćÆć€åč„†ć•ćØćÆć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚’ęŒć¤ć“ćØć ćØčæ°ć¹ć¦ć„ć¾ć™ć€‚ć€Œć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćØćÆē§ćŸć”ć‚’åč„†ćć—ć¦ćć‚Œć‚‹ć‚‚ć®ć ć€‚ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćŒć‚ć‚Œć°ć€äøē¢ŗå®Ÿę€§ć®č² ć®å“é¢ć‹ć‚‰ę·±åˆ»ćŖå®³ć‚’ć“ć†ć‚€ć‚‹ć“ćØćŖćć€äøē¢ŗå®Ÿę€§ć®ę­£ć®å“é¢ć‹ć‚‰åˆ©ē›Šć‚’å¾—ć‚‹ć“ćØćŒć§ćć‚‹ć®ć ć€ćØć„ć†č€ƒćˆę–¹ćÆć€ćƒŖć‚¹ć‚Æē®”ē†ć«ćŠć„ć¦é‡č¦ćŖč¦–ē‚¹ćØćŖć‚Šć¾ć™ć€‚

č„±ē·š=é€£ęƒ³=ę–°ēµåˆē™ŗč¦‹ćØć„ć†č€ƒćˆę–¹ćÆć€ę–°ćŸćŖč¦–ē‚¹ć‚„ć‚¢ć‚¤ćƒ‡ć‚¢ć‚’ē”Ÿćæå‡ŗć™ćŸć‚ć®é‡č¦ćŖćƒ—ćƒ­ć‚»ć‚¹ćØč€ƒćˆć‚‰ć‚Œć¾ć™ć€‚ć“ć‚ŒćÆć€ę€č€ƒć®č‡Ŗē”±åŗ¦ć‚’é«˜ć‚ć€ę–°ćŸćŖč¦–ē‚¹ć‚„ć‚¢ć‚¤ćƒ‡ć‚¢ć‚’ē”Ÿćæå‡ŗć™ćŸć‚ć®é‡č¦ćŖćƒ—ćƒ­ć‚»ć‚¹ćØč€ƒćˆć‚‰ć‚Œć¾ć™ć€‚

KJę³•ć®č”Øęœ­ć‚’ć„ć¤å¤‰ę›“ć™ć‚‹ć®ć‹(ä½œęˆćƒ—ćƒ­ć‚»ć‚¹)ć«ć¤ć„ć¦ćÆć€äŗˆęœŸć—ćŖć‹ć£ćŸć€Œę–°ć—ć„ć‚‚ć®ć€ćŒē”Ÿć¾ć‚Œć‚‹ć‹ć‚‰ć€ŒćƒÆć‚ÆćƒÆć‚Æć€ć™ć‚‹ćØć„ć†č€ƒćˆę–¹ćŒē¤ŗć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚ŒćÆć€ę–°ćŸćŖč¦–ē‚¹ć‚„ć‚¢ć‚¤ćƒ‡ć‚¢ć‚’ē”Ÿćæå‡ŗć™ćŸć‚ć®é‡č¦ćŖćƒ—ćƒ­ć‚»ć‚¹ćØč€ƒćˆć‚‰ć‚Œć¾ć™ć€‚

SECIćƒ¢ćƒ‡ćƒ«ćØPDCAć‚µć‚¤ć‚Æćƒ«ć«ć¤ć„ć¦ćÆć€SECIćƒ¢ćƒ‡ćƒ«ćØPDCAć‚µć‚¤ć‚Æćƒ«ć®é–¢äæ‚ć«čØ€åŠć•ć‚Œć¦ć„ć¾ć™ć€‚PDCAć®å‰ć«S(共同化)ćŒåæ…č¦ćØć„ć†äø»å¼µS-PDCAćŒć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚ŒćÆć€PlanćØćÆć€čØ€čŖžåŒ–ć•ć‚Œć¦ćŖć„ęš—é»™ēŸ„ć‚’å½¢å¼åŒ–ć—ć€ćć‚Œć‚’ēµåˆć—ć¦ä½œć‚‰ć‚Œć‚‹ć‚‚ć®ćŖć®ć§ć€äŗ‹å‰ć«å…±åŒåŒ–ć—ć¦ęš—é»™ēŸ„ć‚’å…±ęœ‰ć—ć¦ć„ćŖć„ćØć€Œē“å¾—ę„Ÿć®ćŖć„čØˆē”»ć€ć«ćŖć£ć¦ć—ć¾ć†ćØć„ć†č€ƒćˆę–¹ć‚’ē¤ŗć—ć¦ć„ć¾ć™ć€‚

## ćƒ•ćƒ©ć‚°ćƒ”ćƒ³ćƒˆ
### ABC179
ć®ć ćŒć€ē›øåÆ¾ć‚»ć‚°ćƒ”ćƒ³ćƒˆęœØć ć‘č‡Ŗä½œć‚³ćƒ¼ćƒ‰ć®ę•“ē†ćŒć¾ć ć ć£ćŸā€¦
ꮋ悊10åˆ†ć ć£ćŸć®ć§ē„¦ć£ć¦ć—ć¾ć£ćŸ
å€¤ćŒå¤‰åŒ–ć™ć‚‹ē‚¹ć‚’äŗŒåˆ†ęŽ¢ē“¢ćØć„ć†ę‰‹ć‚‚ć‚ć‚‹
恠恌态Python恮bisectćÆć‚½ćƒ¼ćƒˆęøˆćæé…åˆ—ć‚’č¦ę±‚ć™ć‚‹
ć“ć®å•é”Œę”ä»¶ć ćØé…åˆ—ćøć®ęŒæå…„ćŒē™ŗē”Ÿć—ć¦O(N)ć«ćŖć‚‹ć‹ć‚‰č‰ÆććŖć„ć­
ęœ¬č³Ŗēš„ć«ćÆPythonć§ä½æćˆć‚‹å¹³č””äŗŒåˆ†ęœØć‚’ć™ćå–ć‚Šå‡ŗć—ć¦ä½æćˆć‚‹ć‚ˆć†ć«ęŗ–å‚™ć—ćØćć¹ććŖć®ć‹ćŖćƒ¼
ä»Šå›žć®å•é”Œć«é™ć‚Œć°ć€Œå…ˆé ­ä»„å¤–ćøć®čæ½åŠ ćÆåæ…č¦ćŖć„ć€ć®ć§ć€é€†é †ć§ęŒć¦ć°ęœ«å°¾čæ½åŠ ć§O(1)ć«ćŖć‚‹ćŒć€ćƒˆćƒŖćƒƒć‚­ćƒ¼ć ć‚ˆćŖć
é€†é †ć§ęŒć£ć¦äŗŒåˆ†ęŽ¢ē“¢ć™ć‚‹ćƒćƒ¼ć‚øćƒ§ćƒ³
python
def main(): from bisect import bisect_left N, Q = map(int, input().split()) ret = (N - 2) ** 2 xs = [-N] xvals = [N - 2] ys = [-N] yvals = [N - 2] for _q in range(Q): q, x = map(int, input().split()) if q == 1: i = bisect_left(xs, -x) ret -= xvals[i - 1] if i == len(xs) and yvals[-1] > x - 2: ys.append(-xvals[i - 1] - 2) yvals.append(x - 2) else: y = x i = bisect_left(ys, -y) ret -= yvals[i - 1] if i == len(ys) and xvals[-1] > y - 2: xs.append(-yvals[i - 1] - 2) xvals.append(y - 2) print(ret)
ē‚¹å–å¾—ć ć‹ć‚‰é…å»¶ć‚»ć‚°ćƒ”ćƒ³ćƒˆęœØćŒćÆćŖćåŒåÆ¾ć‚»ć‚°ćƒ”ćƒ³ćƒˆęœØć§ååˆ†ćŖć®ć ćŒć€é…å»¶ć‚»ć‚°ćƒ”ćƒ³ćƒˆęœØć‚’ä½æć£ć¦č§£ć„ć¦ć‚‹äŗŗć‚‚ćŸćć•ć‚“ć„ć‚‹ć‹ć‚‰ćć‚Œć§ć‚ˆć‹ć£ćŸć®ć‹ć‚‚ćŖć

### ä¾é ¼ć‚’å…ˆå»¶ć°ć—ć«ć™ć‚‹ē—‡ä¾‹
äøŠčØ˜ć®ć€Œå£å®Ÿć€ć‚’å£å®Ÿć ćØę€ć†ē†ē”±ćÆć€č‡Ŗåˆ†ć§ć‚„ć£ćŸć‚‰é”ęˆć§ćć‚‹č¦‹č¾¼ćæćŒć‚ć‚‹ćŖć‚‰ć€Œć‚„ć‚‰ćŖć„ć§å…ˆå»¶ć°ć—ć«ć™ć‚‹ć€ćØć„ć†ē¾č±”ćÆē™ŗē”Ÿć—ćŖć„ć ć‚ć†ć‹ć‚‰ć ć€‚
ć€Œę™‚é–“ćƒŖć‚½ćƒ¼ć‚¹ćŒč¶³ć‚ŠćŖć„ć€ć‚‚ć€ć—ć°ć—ć°ć€Œå¾—ć‚‰ć‚Œć‚‹ć‚‚ć®ć®ęœŸå¾…å€¤ćŒä½Žć„ć®ć§ć€ę™‚é–“ćƒŖć‚½ćƒ¼ć‚¹ć‚’å„Ŗå…ˆēš„ć«å‰²ć‚Šå½“ć¦ć‚‹ę„ę€ę±ŗå®šćŒć§ććŖć„ć€ćØć„ć†ć“ćØć€‚ć€Œę™‚é–“ćŒćŖć„ć€ćØć„ć†ē™ŗčØ€ćŒč¦³ęø¬ć•ć‚ŒćŸę™‚ć®ć‚ˆćć‚ć‚‹

extra info
json size: 40673012
pickle size: 735437681
previous notes size: 1314
previous notes: šŸ¤–2023-08-12 02:30
"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]