A. аналоговый
B.
Теорема C.bishat, единственное разложение
1 #include <бит / STDC ++ ч.> 2 с использованием пространства имен STD; 3 ЬурейеЕ долго долго LL; 4 ЬурейиЙ пар < INT , INT > PIIR; 5 Const INT maxn = 1e5 + 5 ; 6 INT п, к; 7 INT р [maxn]; 8 9 недействительной работы () { 10 INT TOT = 0 , бит = 0 ; 11 INT т = п; 12 , а (м) { 13 , если (м & 1 ) TOT ++ р [бит] = 1 ; 14 м >> = 1 ; 15 бит ++ ; 16 } 17 18 , если (TOT <= к) { 19 соиЬ << " ДА " << епсИ; 20 для ( INT I = бит - 1 ; I> 0 ; i-- ) { 21 , если (== TOT к) перерыв ; 22 , а (р [я]) { 23 р [I] -; 24 р [я - 1 ] + = 2 ; 25 карапуз ++ ; 26 , если (== карапуз к) перерыв ; 27 } 28 } 29 30 INT Рез = 1 ; 31 для ( Int I = 0 ; я <бит; я ++ ) { 32 , а (р [I] - ) { 33 соиЬ << разреш << " " ; 34 } 35 разреш * =2 ; 36 } 37 } еще суд << " НЕТ " << епсИ; 38 } 39 INT основных () { 40 CIN >> п >> к; 41 42 , если (п <к) соиЬ << " NO " << ENDL; 43 еще работа (); 44 возвращения 0 ; 45 }
D. Реализовать
- Анализ может определить ai.1 и ai.2, безусловно, связаны между собой, но не знает направления. Таким образом, мы можем установить неориентированный граф является кольцом.
- Поскольку каждый узел имеет только два ребра, так что, когда мы нашли ДФС кольцо до тех пор, в качестве исходного пункта для определения направления, чтобы определить направление всего кольца.
Подробности думали , чтобы понять ах!
Когда судья Dfs первоначального направления, я думаю , что это прямое предложение последней пару и и г и п, конечно , только один непосредственно связан, так что направление п -> (и | v) . Однако не подробное рассмотрение в суде Shique.
Поскольку U, v подключен только к одному из п, то, что G [п] [0 | 1 ] судить! ! !
Существует небольшая оптимизация, это потому, что ДФС начала и G [и] [0] этот край, поэтому я позволяю часть, соединенную с п стороны стал первой стороной, поэтому прямым реальной стороны ДФС на линии.
# include <бит / STDC ++ ч.> с использованием пространства имен STD; определение типа во долго долго LL; ЬурейиЕ пары < INT , INT > PIIR; Const INT maxn = 2e5 + 5 ; INT п, к; вектор < INT > G [maxn]; ИНТ визави [maxn]; недействительными ДФС ( INT и) { отношению [и] = 1 ; Е ( " % d " , и); для ( Int V: G [и]) { если (!VIS [V]) ДФС (v); } } INT основных () { зсапЕ ( " % d " , & п); Int U, V; для ( Int I = 0 ; я <п; я ++ ) { зсапЕ ( " % d% d " , & и, & v); G [и] .push_back (v); G [v] .push_back (и); } Отношению [N] = 1 ; Е ( " % d " , п); если (G [п] [ 0 ] == и || G [п] [ 1 ] ==U) ДФС (и); остальное ДФС (V); вернуться 0 ; } // если (G [п] [1] == и || G [п] [1] == v) подкачки (G [п] [0] G [п] [1]); // ДФС (п);
E. согласующие кронштейны
Фигура Unicom делает F.