アイデア:アナログ、列挙する
この質問は、2番目の質問のグループの人気として、私はそれがまだいくつかの困難を持っている選手たちのグループの人気のためであると考え、NOIP2016 PJ T2です。
私は、$ O(N ^ 2)$アプローチの「QQ赤い封筒」ギャング管理者の日@列挙は、トリプルループ、列挙日付を書いて、その後、回文かどうかを判断することを考えていませんでした。そして、それは(最悪の溶液となりました
コードの主なコメント。
$の\ RMコード$
#は、<ビット/ STDC ++を。H>含める #LL定義長い 長い 位RG定義レジスタ #はILインライン定義 #はMEM(NUM)のmemset(NUM、定義はsizeof (A)) #定義デバッグ(S、X)COUTを << S << " - > " << X << ENDL CONSTの ブール OJ = 真。 使用して 名前空間はstdを、 テンプレート <型名T> IL ボイドのreadInt(T&X){ X = 0。RG T F = 1。RG チャー CH = GETCHAR()。 同時にF = CH ==(isdigit(CH)!)' - '?- 1:F、CH = GETCHAR()。 一方、(isdigit(CH))X = X * 10 + CH - ' 0 '、CH = GETCHAR()。 X * = F。 } テンプレートは <型名T> のIL INT MAX(T Aは、T B)は、{ 戻る > bは?A:B;} テンプレート <型名T> のIL INT MIN(T Aを、T b)は{ 返す <bは?A:B;} ボイドファイル(){ freopenは(" 1.in "、" R " 、STDIN)。 freopenは(" 1.out "、" W " 、STDOUT)。 } // ---ヘッドファイル--- // int型日付1、日付2。// 两个日期 INT xhw [ 13 ] = { 0、31、28、31、30、31、30、31、31、30、31、30、31 }。//何日、各月、2月に予定うるう年に、それは特別な取り扱いが必要です。 IL のボイドの変更(int型); // 変更機能日時2月 IL BOOL ORZ(int型、int型、int型); //は、日付がパリンドロームの数の関数であるかどうかを判断 INT (メイン){ IF(! )(OJ ファイル); のreadInt(DATE1)、のreadInt(それがDATE2によって表される); #Y1のY1を定義// 何かでこの変数Y1のcmathライブラリが競合しているので、我々は最初にここでそれを定義する int型 Y1 =日付1/ 10000、Y2 = DATE2によって表されること/ 10000、M1 = DATE1 / 100%100、M2 = DATE2 / 100%100// 月の列挙は、ノートを取る必要がある場合。私たちは、私はプライベートの手紙をすることができ、そこに理解していない場合は、自分の表情を理解しようとすることができます。ここでは、レイアウトやその他の理由は、精巧ではないので。 用(INT H = T1; H <= T2; H ++){ // 列挙月 IF(H == 2)変化(X); // 2月なら変化関数に するための(INT W = 1 ; W <= XHW [H]; W ++)// 列挙日 IF(ORZ(X、H、W))ANS ++; // もし日付パリンドローム、ANS蓄積。 } } のprintf(" %のD "、ANS); // 最終的な出力ができるANS。 戻り 0 ; } IL 空隙変更(INT X){ XHW [ 2 ] =(((X%4 == 0)&&(X-%100 =!0))||(X-%400 == 0))?29:28 ; // 年がうるう年の場合は、日数2月29日に、それ以外の場合は28 。 } IL BOOL ORZ(int型 X、int型 H、INT W){ int型 A [ 10 ]; [ 1。 = X /] 1000年、Aを[ 2 ] = X / 100%10、[ 3 ] = X / 10%10、[ 図4] X%= 10、[ 5 ] = H / 10、[ 6 ]%のH = 10、[ 7 ] = W / 10、[ 8 ] W%= 10 ; // 分解八年すべての昼間 IF([ 。1 ] [== 8 ] && [ 2 ] [== 7 ] && [は3 ] == [する。6 ] && [ 。4 ] [する== 。5 ])リターン trueに ; // 日付が回文である場合は、trueに返す リターン はfalse ; // そうでない場合はfalse }
ます。https://www.cnblogs.com/Xray-luogu/p/11006445.htmlで再現