Codeforces # 529 (Div.3)

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.

рекомендация

отwww.cnblogs.com/ordinarv/p/11838983.html