Л Гу P2010 [дата] палиндромическое решение проблемы

Идеи: Analog, перечислить

Этот вопрос NOIP2016 PJ T2, а второй вопрос популярности группы, я думаю, что для популярности группы игроков, которые все еще имеют некоторые трудности.

Я не думаю, что перечисление @ «QQ красный конверт» Бандитский день Администратор $ O (N ^ 2) $ подход, написал тройную петлю, дату перечисления, а затем определить, действительно ли палиндром. Тогда он стал худшим решением (

Основные комментарии в коде.

$ \ Гт код $

# Включают <бит / STDC ++. Ч> 
# определить LL длинные  длинные 
# определяют гк регистре 
# определить иль инлайн 
# определить MEM (а, Num) MemSet (а, Num, SizeOf (а)) 
# определить отладки (S, X) COUT << s << " -> " << х << епсИ
 Const  BOOL OJ = верно ;
с помощью  пространства имен STD; 
Шаблон <Ьурепате T> 
IL аннулируются readInt (Т & х) { 
    х = 0 ; гк Т е = 1 ; гк символ ч = GetChar ();
    в то время как(! isdigit (ч)) е = ч == ' - ' ? - 1 : е, ч = GetChar ();
    в то время как (isdigit (ч)) х = х * 10 + ч - ' 0 ' , ч = GetChar (); 
    х * = F; 
} 
Шаблон <имяТипа T> 
иль INT Max (T а, Т б) { вернуться A> B? A: B;} 
шаблон <Ьурепате T> 
IL INT Мин (Т а, Т б) { вернуть а <Ь? A: B;}
 недействительным файл () { 
    freopen ( " 1.in ", " Г " , STDIN); 
    freopen ( " 1.out " , " ш " , стандартный вывод); 
} 
// --- голова файла --- //
 
INT date1, date2; // 两个日期
INT XHW [ 13 ] = { 0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; //Сколько дней каждый месяц, в феврале из - за високосный год, она требует специальной обработки. 
IL аннулируется Изменение ( INT ); // дата функции модификации февраля 
IL BOOL ОРЗ ( INT , INT , INT ); // определить , является ли дата функции числа палиндромического 
INT основного () {
     IF (! Файл (OJ) ); 
    readInt (date1), readInt (что представлено DATE2) 
# определить y1 Y1 // так как эта переменная y1 CMATH библиотека с чем - то есть конфликт, мы сначала определим его здесь 
    INT y1 = date1 / 10000 , y2 = что представлено DATE2 / 10000 М1 = date1 / 100 % 100 , М2 = DATE2 / 100 % 100// когда перечисление месяца, необходимо принять к сведению. Мы можем попытаться понять их собственный взгляд, если не понимаю, я могу частное письмо. Вот потому , что расположение и другие причины , не уточняли.
    
        
        для ( INT H = T1, H <= Т2, H ++) { // Перечисление месяцев 
            ЕСЛИ (Н == 2 ) изменения (X); // если в феврале функции изменения 
            для ( INT W = 1 . , W <= XHW [Н], W ++) // перечисление день 
                еСЛИ (ОРЗ (Х, Н, W)) АНС ++; // если дата палиндромным, ANS накопление. 
        } 
    } 
    Е ( " % D " , ANS); // Окончательный выход может ANS. 
    возвращать  0 ; 
} 
IL пустот Изменение ( INT X) { 
    XHW [ 2 ] = (((Х%4 == 0 ) && (Х-% 100 =! 0 )) || (Х-% 400 == 0 ))? 29 : 28 ; // Если год високосный год, количество дней до 29 февраля, в противном случае 28 , 
} 
IL BOOL ОРЗ ( INT X, INT Н, INT W) {
     INT A [ 10 ]; 
    А [ 1. = Х /] 1000 , A [ 2 ] = Х / 100 % 10 , А [ 3. ] = Х / 10 % 10 , А [ . 4] X% = 10 , А [ 5. ] = H / 10 , А [ 6. ]% Н = 10 , А [ 7. ] = W / 10 , A [ 8. ] W% = 10 ;
     // разложения восемь лет каждый дневное 
    ЕСЛИ (а [ . 1 ] == A [ 8 . ] && а [ 2 ] == а [ . 7 ] && а [ . 3 ] == а [ . 6 ] && A [ . 4 ] == A [ 5 . ]) возвращение  к истине ; // если дата является палиндромом, возвращается к истинному 
    возвращению  ложного ; // иначе ложь
}

 

Воспроизводится в: https: //www.cnblogs.com/Xray-luogu/p/11006445.html

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

отblog.csdn.net/weixin_34248705/article/details/93306837
рекомендация