T1
その後、ポイント、心をそこに着くことができません!!状態!!T3は間違った質問を破棄することはできませんプッシュを検討するT2方程式!!
それは言うことができる、オリジナルタイトルの3
T1ジョセフ問題
F [I] =(F [I-1] + M)Iは、F << COUT%[N] +1。
ここでは、数学的に$ログ$レベルに最適化された法律を見つけるためにテーブルを再生することができます
1の#include <iostreamの> 2の#include <CStringの> 3の#include <cstdioを> 4 5 使用 名前空間STD。 6 7 INTのM、N。 8 INT メイン(){ 9 INT T。 10 のために(CIN >> T; T; T-- ){ 11 のscanf(" %D%dの"、&N、&M)。 12 のint ID = 0 。 13 であれば(N> M){ 14 のためには、(int型、I = 1 ; I <= M、I ++) 15 、ID =(ID + M)%I。 16 のために(int型 I =のM + 1 ; iが<= N; iが++ ){ 17 、ID =(ID + M)%iは、 18 INT jumpl =(I-ID)/(M- 1 )。 19 もし(I + jumpl <= N){ 20 (iは+%ID =(ID + jumpl×m個)jumpl)を、 21 I + = jumpl。 22 } 23 他{ 24 、ID = ID +(NI)* M。 25 ブレーク; 26 } 27 } 28 } 他{ 29 、ID = 0 。 30 のためには、(int型 I = 1は iが++; iがn = < ) 31 、ID =(ID + M)%のI。 32 } 33 のprintf(" %d個の\ n "、ID + 1 )。 34 } 35 }
T2「フェンウィックの木。」
T3「リニアDP」「最長共通部分列上昇。」
この問題は、上原P264 LYDされます
2のDPの組み合わせは本当に神です