P3857 [TJOI2008】ランタン(線形イル)

トピックへのリンク:https://www.luogu.org/problem/P3857

レポートの問題解決:

  あなたはXOR後の可能なシナリオの数を見つけるように、シーケンスを考えます。

  数が線形ベースに挿入され、最終的な答えは、$(1LL << RES)%2008の$は、線形のグループのいくつかのタイプをresはあります。

ACコード:

1つの#include <ベクトル>
 2の#include <cstdioを>
 3の#include <iostreamの>
 4の#include <cmath>
 5の#include <キュー>
 6の#include <積層>
 7の#include <cmath>
 8の#include <アルゴリズム>
 9  #定義 nummのCH-48
 10  の#defineのPdのputchar( ' ')
 11  の#define PNのputchar('の\ n')
 12  の#define PB一back
 13  の#define Fiの第
 14  の#define第二SE
 15  の#define FRE1 freopenは(「1.TXTを」、 "R"、
STDIN) 16  の#definefre2 freopenは( "2.txt"、 "W"、STDOUT)
 17  使用 名前空間STDを、
18テンプレート<型名T>
 19  空隙リード(T&RES){
 20      ブールフラグ= char型のCH;
21      一方(isdigit(CH = GETCHAR())!)(CH == ' - ')&&(フラグ= )。
22      のために(RES = numm; isdigit(CH = GETCHAR()); RESの=(RES << 1)+(RES << 3)+ numm)。
23      フラグ&&(RESの= - RES)。
24  }
 25テンプレート<
26  ボイドライト(T X){
 27      であれば(X < 0)のputchar(' - ')、X = - X。
28      であれば(X> 9)書き込み(X / 10 )。
29      のputchar(Xの%10 + ' 0 ' )。
30  }
 31  のconst  int型 MAXN = 20010 32  のconst  int型 N = 60 33  CONST  INT INF = 0x3f3f3f3f 34  CONST  INT INF =0x7FFFFFFFで35 typedefの長い 長いLL。
36の チャー S [ 60 ]。
37 LL [ 60 ]、P [ 60 ]。
38  int型N、M。
39  LL get_ans(){
 40      のためのint型 I = 1 ; I <= M; iが++ ){
 41          のためにINT J = 52 ;〜jを; j-- 42              場合([i]が&(1LL << J )){
 43                  であれば(!P [J]){
 44                      P [J] =[I]。
45                      ブレーク;
46                  }
 47                  [I] ^ = のp [jを]。
48              }
 49      }
 50      のLLのRES = 0 51      のためのint型 J = 52 ;〜J; j-- 52          であれば(P [J])RES ++ 53      リターン(1LL << RES)%2008 54  }
 55  のint main()の
 56  {
 57  
58      リード(N)、(m)を読み出します。
59      のためのint型I = 1 ; I <= M; iは++ ){
 60          のscanf(" %sの" 、S);
61          のためにINT J = 0 J ++; J <N 62              であれば(sは[J] == ' O ')[I] ^ =(1LL << J)。
63      }
 64      ライト(get_ans())。
65      リターン 0 ;
66 }
ここにコード!

 

おすすめ

転載: www.cnblogs.com/wuliking/p/11272348.html