T1
洪水の問題が、私は後に折りたたみ、各点の位置を修正し、実際にのみ元に戻す、私はあまりにも遠くに正の解から、実際には、役に立たないものの多くを維持し、生と死ではないとは思いませんでしたが、彼らは考えることはできませんポイントを回すので、唯一のポイントに無用の後ろの新しい位置に更新する必要があり、彼の位置は理にかなって更新します
1の#include <iostreamの> 2の#include <cstdioを> 3の#include <cmath> 4 の#define MAXN 3010 5 の#define INT長いロング 6 使って 名前空間STD。 7 INTのN、M、L、R。 8 int型D [MAXN]。 図9は、 署名されたmain()の 10 { 11 // freopenは( "1.in"、 "R"、STDIN)。 12 // freopenは( "1W.out"、 "W"、STDOUT)。 13 のscanf(" %のLLDの%のLLD "、&N、&M)。L = 0。R = N。 (int型 I = 1 ; I <= M; ++ I)のscanf(" %のLLD "、&D [I])。 15 のために(int型 I = 1 ; I <= M + I) 16 { 17 INT LEN1 = D [i]を-l、LEN2 = R- D [i]は、 18 であれば(LEN1> = LEN2) 19 { 20 のための(int型 J = I + 1、J <= M; ++ j)が 21 であれば(D [j]> = D [i]は&& D [j]が<= r)とD [j]は= 2 * dの[I] - D [j]を。 22 R = D [i]は、 23 } 24 他の 25 { 26 のための(int型 J = I + 1、J <= M; ++ j)が 27 であれば(D [j]が> L && D [j]を= <= D [i])とD [J] = 2 * D [i]は- D [J]。 28 、L = D [i]は、 29 } 30 } 31 のprintf(" %LLDする\ n "、R- L); 32 リターン 0 。 33 }
T2
$ Exgcd $の診察室やハングアップ、偽のボードを書き、もちろん、それは事実の$ exgcdであるが、$私は彼が$であることを、忘れてしまった時、非常に恥ずかしい、もちろん、ない暴力列挙残念ながら診察室を学んだexgcd $ 、これは、次の正のソリューションに、することはできません数学の前に、あなた自身のペンと紙を持参してください
まず、$ {L} \ {当量のS * X {\%} M} \当量{R} $の元の式は、我々は、モジュラス場合、すなわちS $ $いくつかの複数の一致を見つけることを考えることはできませんので、この時点で最小の正の整数の定数の$ X $は所望の解である、そして我々は、の発現および修正の還元により、剰余のケースを検討する必要があります
$ {L} \当量{S * X {\%} M} \当量{R} $
$ \ $ Leftrightarrow