天天看點

[2020藍橋杯B組省賽] 回文日期 史上最無腦最暴力的解法

[2020藍橋杯B組省賽] 回文日期 史上最無腦最暴力的解法

 不想動腦子直接暴力。暴力暴力暴力!......

不要看着代碼長,你就覺得這個太麻煩,太難了。其實真的很簡單很無腦。

第一步,暴力輸出所有的回文,和ABABABAB類型的回文,存儲的set數組裡面。

#include <bits/stdc++.h>
using namespace std;
#define LL long long
set<LL> s;
set<LL> s2; 
int a[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int isRun(int y)
{
  if((y%4==0&&y%100!=0)||y%400==0)
  {
    return 1;
  }
  return 0;
}
int isH(LL t)
{
  //20211202
  int year = t/10000;
  int y = t%10000;
  int m = y/100;
  int d = y%100;
//  cout<<"year y m d"<<year<<" "<<y<<" "<<m<<" "<<d<<endl;
  if(d>31||m>12)return 0;
  if(isRun(year))
  {
    if(d>a[m-1])return 0;
  }else{
    if(d>b[m-1])return 0;
  }
  int T[100];
  for(int i=7;i>=0;i--)
  {
    T[i]=t%10;
    t/=10; 
  }
   
  if(T[0]==T[7]&&(T[1]==T[6])&&(T[2]==T[5])&&T[3]==T[4])
  {
    return 1;
  }else{
    return 0;
  }
}
int isHH(LL t)
{
  int T[100];
  for(int i=7;i>=0;i--)
  {
    T[i]=t%10;
    t/=10; 
  }
  
  if((T[0]==T[2]&&T[0]==T[5]&&T[0]==T[7])&&(T[1]==T[3]&&T[1]==T[4]&&T[1]==T[6]))
  {
    return 1;
  }else{
    return 0;
  }
}
int t;
int main()
{
  for(LL i=10000101;i<=109991231;i++)
  {
    
    if(isH(i))
    {
      s.insert(i);
      if(isHH(i))
      {
        s2.insert(i);
      }
    }
  }
  for(set<LL>::iterator it=s.begin();it!=s.end();it++)
  {
    cout<<"            s1.insert("<<*it<<");"<<endl;
  }
  for(set<LL>::iterator it=s2.begin();it!=s2.end();it++)
  {
    cout<<"            s2.insert("<<*it<<");"<<endl;
  }
   
}      

此時,黑框框裡一片眼花缭亂,我們隻需Ctrl+C Ctrl+V 複制到我們的解題程式裡

#include <bits/stdc++.h>
using namespace std;
#define LL long long
set<LL>s1;
set<LL>s2;
int main()
{
s1.insert(10011001);
            s1.insert(10100101);
            s1.insert(10111101);
            s1.insert(10200201);
            s1.insert(10211201);
            s1.insert(10300301);
            s1.insert(10400401);
            s1.insert(10500501);
            s1.insert(10600601);
            s1.insert(10700701);
            s1.insert(10800801);
            s1.insert(10900901);
            s1.insert(11011011);
            s1.insert(11100111);
            s1.insert(11111111);
            s1.insert(11200211);
            s1.insert(11211211);
            s1.insert(11300311);
            s1.insert(11400411);
            s1.insert(11500511);
            s1.insert(11600611);
            s1.insert(11700711);
            s1.insert(11800811);
            s1.insert(11900911);
            s1.insert(12011021);
            s1.insert(12100121);
            s1.insert(12111121);
            s1.insert(12200221);
            s1.insert(12211221);
            s1.insert(12300321);
            s1.insert(12400421);
            s1.insert(12500521);
            s1.insert(12600621);
            s1.insert(12700721);
            s1.insert(12800821);
            s1.insert(12900921);
            s1.insert(13011031);
            s1.insert(13100131);
            s1.insert(13211231);
            s1.insert(13300331);
            s1.insert(13500531);
            s1.insert(13700731);
            s1.insert(13800831);
            s1.insert(20011002);
            s1.insert(20100102);
            s1.insert(20111102);
            s1.insert(20200202);
            s1.insert(20211202);
            s1.insert(20300302);
            s1.insert(20400402);
            s1.insert(20500502);
            s1.insert(20600602);
            s1.insert(20700702);
            s1.insert(20800802);
            s1.insert(20900902);
            s1.insert(21011012);
            s1.insert(21100112);
            s1.insert(21111112);
            s1.insert(21200212);
            s1.insert(21211212);
            s1.insert(21300312);
            s1.insert(21400412);
            s1.insert(21500512);
            s1.insert(21600612);
            s1.insert(21700712);
            s1.insert(21800812);
            s1.insert(21900912);
            s1.insert(22011022);
            s1.insert(22100122);
            s1.insert(22111122);
            s1.insert(22200222);
            s1.insert(22211222);
            s1.insert(22300322);
            s1.insert(22400422);
            s1.insert(22500522);
            s1.insert(22600622);
            s1.insert(22700722);
            s1.insert(22800822);
            s1.insert(22900922);
            s1.insert(30011003);
            s1.insert(30100103);
            s1.insert(30111103);
            s1.insert(30200203);
            s1.insert(30211203);
            s1.insert(30300303);
            s1.insert(30400403);
            s1.insert(30500503);
            s1.insert(30600603);
            s1.insert(30700703);
            s1.insert(30800803);
            s1.insert(30900903);
            s1.insert(31011013);
            s1.insert(31100113);
            s1.insert(31111113);
            s1.insert(31200213);
            s1.insert(31211213);
            s1.insert(31300313);
            s1.insert(31400413);
            s1.insert(31500513);
            s1.insert(31600613);
            s1.insert(31700713);
            s1.insert(31800813);
            s1.insert(31900913);
            s1.insert(32011023);
            s1.insert(32100123);
            s1.insert(32111123);
            s1.insert(32200223);
            s1.insert(32211223);
            s1.insert(32300323);
            s1.insert(32400423);
            s1.insert(32500523);
            s1.insert(32600623);
            s1.insert(32700723);
            s1.insert(32800823);
            s1.insert(32900923);
            s1.insert(40011004);
            s1.insert(40100104);
            s1.insert(40111104);
            s1.insert(40200204);
            s1.insert(40211204);
            s1.insert(40300304);
            s1.insert(40400404);
            s1.insert(40500504);
            s1.insert(40600604);
            s1.insert(40700704);
            s1.insert(40800804);
            s1.insert(40900904);
            s1.insert(41011014);
            s1.insert(41100114);
            s1.insert(41111114);
            s1.insert(41200214);
            s1.insert(41211214);
            s1.insert(41300314);
            s1.insert(41400414);
            s1.insert(41500514);
            s1.insert(41600614);
            s1.insert(41700714);
            s1.insert(41800814);
            s1.insert(41900914);
            s1.insert(42011024);
            s1.insert(42100124);
            s1.insert(42111124);
            s1.insert(42200224);
            s1.insert(42211224);
            s1.insert(42300324);
            s1.insert(42400424);
            s1.insert(42500524);
            s1.insert(42600624);
            s1.insert(42700724);
            s1.insert(42800824);
            s1.insert(42900924);
            s1.insert(50011005);
            s1.insert(50100105);
            s1.insert(50111105);
            s1.insert(50200205);
            s1.insert(50211205);
            s1.insert(50300305);
            s1.insert(50400405);
            s1.insert(50500505);
            s1.insert(50600605);
            s1.insert(50700705);
            s1.insert(50800805);
            s1.insert(50900905);
            s1.insert(51011015);
            s1.insert(51100115);
            s1.insert(51111115);
            s1.insert(51200215);
            s1.insert(51211215);
            s1.insert(51300315);
            s1.insert(51400415);
            s1.insert(51500515);
            s1.insert(51600615);
            s1.insert(51700715);
            s1.insert(51800815);
            s1.insert(51900915);
            s1.insert(52011025);
            s1.insert(52100125);
            s1.insert(52111125);
            s1.insert(52200225);
            s1.insert(52211225);
            s1.insert(52300325);
            s1.insert(52400425);
            s1.insert(52500525);
            s1.insert(52600625);
            s1.insert(52700725);
            s1.insert(52800825);
            s1.insert(52900925);
            s1.insert(60011006);
            s1.insert(60100106);
            s1.insert(60111106);
            s1.insert(60200206);
            s1.insert(60211206);
            s1.insert(60300306);
            s1.insert(60400406);
            s1.insert(60500506);
            s1.insert(60600606);
            s1.insert(60700706);
            s1.insert(60800806);
            s1.insert(60900906);
            s1.insert(61011016);
            s1.insert(61100116);
            s1.insert(61111116);
            s1.insert(61200216);
            s1.insert(61211216);
            s1.insert(61300316);
            s1.insert(61400416);
            s1.insert(61500516);
            s1.insert(61600616);
            s1.insert(61700716);
            s1.insert(61800816);
            s1.insert(61900916);
            s1.insert(62011026);
            s1.insert(62100126);
            s1.insert(62111126);
            s1.insert(62200226);
            s1.insert(62211226);
            s1.insert(62300326);
            s1.insert(62400426);
            s1.insert(62500526);
            s1.insert(62600626);
            s1.insert(62700726);
            s1.insert(62800826);
            s1.insert(62900926);
            s1.insert(70011007);
            s1.insert(70100107);
            s1.insert(70111107);
            s1.insert(70200207);
            s1.insert(70211207);
            s1.insert(70300307);
            s1.insert(70400407);
            s1.insert(70500507);
            s1.insert(70600607);
            s1.insert(70700707);
            s1.insert(70800807);
            s1.insert(70900907);
            s1.insert(71011017);
            s1.insert(71100117);
            s1.insert(71111117);
            s1.insert(71200217);
            s1.insert(71211217);
            s1.insert(71300317);
            s1.insert(71400417);
            s1.insert(71500517);
            s1.insert(71600617);
            s1.insert(71700717);
            s1.insert(71800817);
            s1.insert(71900917);
            s1.insert(72011027);
            s1.insert(72100127);
            s1.insert(72111127);
            s1.insert(72200227);
            s1.insert(72211227);
            s1.insert(72300327);
            s1.insert(72400427);
            s1.insert(72500527);
            s1.insert(72600627);
            s1.insert(72700727);
            s1.insert(72800827);
            s1.insert(72900927);
            s1.insert(80011008);
            s1.insert(80100108);
            s1.insert(80111108);
            s1.insert(80200208);
            s1.insert(80211208);
            s1.insert(80300308);
            s1.insert(80400408);
            s1.insert(80500508);
            s1.insert(80600608);
            s1.insert(80700708);
            s1.insert(80800808);
            s1.insert(80900908);
            s1.insert(81011018);
            s1.insert(81100118);
            s1.insert(81111118);
            s1.insert(81200218);
            s1.insert(81211218);
            s1.insert(81300318);
            s1.insert(81400418);
            s1.insert(81500518);
            s1.insert(81600618);
            s1.insert(81700718);
            s1.insert(81800818);
            s1.insert(81900918);
            s1.insert(82011028);
            s1.insert(82100128);
            s1.insert(82111128);
            s1.insert(82200228);
            s1.insert(82211228);
            s1.insert(82300328);
            s1.insert(82400428);
            s1.insert(82500528);
            s1.insert(82600628);
            s1.insert(82700728);
            s1.insert(82800828);
            s1.insert(82900928);
            s1.insert(90011009);
            s1.insert(90100109);
            s1.insert(90111109);
            s1.insert(90200209);
            s1.insert(90211209);
            s1.insert(90300309);
            s1.insert(90400409);
            s1.insert(90500509);
            s1.insert(90600609);
            s1.insert(90700709);
            s1.insert(90800809);
            s1.insert(90900909);
            s1.insert(91011019);
            s1.insert(91100119);
            s1.insert(91111119);
            s1.insert(91200219);
            s1.insert(91211219);
            s1.insert(91300319);
            s1.insert(91400419);
            s1.insert(91500519);
            s1.insert(91600619);
            s1.insert(91700719);
            s1.insert(91800819);
            s1.insert(91900919);
            s1.insert(92011029);
            s1.insert(92100129);
            s1.insert(92111129);
            s1.insert(92200229);
            s1.insert(92211229);
            s1.insert(92300329);
            s1.insert(92400429);
            s1.insert(92500529);
            s1.insert(92600629);
            s1.insert(92700729);
            s1.insert(92800829);
            s1.insert(92900929);
            s1.insert(100000000);
            s1.insert(100011000);
            s1.insert(100100100);
            s1.insert(100111100);
            s1.insert(100200200);
            s1.insert(100211200);
            s1.insert(100300300);
            s1.insert(100400400);
            s1.insert(100500500);
            s1.insert(100600600);
            s1.insert(100700700);
            s1.insert(100800800);
            s1.insert(100900900);
            s1.insert(101011010);
            s1.insert(101100110);
            s1.insert(101111110);
            s1.insert(101200210);
            s1.insert(101211210);
            s1.insert(101300310);
            s1.insert(101400410);
            s1.insert(101500510);
            s1.insert(101600610);
            s1.insert(101700710);
            s1.insert(101800810);
            s1.insert(101900910);
            s1.insert(102011020);
            s1.insert(102100120);
            s1.insert(102111120);
            s1.insert(102200220);
            s1.insert(102211220);
            s1.insert(102300320);
            s1.insert(102400420);
            s1.insert(102500520);
            s1.insert(102600620);
            s1.insert(102700720);
            s1.insert(102800820);
            s1.insert(102900920);
            s1.insert(103011030);
            s1.insert(103100130);
            s1.insert(103111130);
            s1.insert(103211230);
            s1.insert(103300330);
            s1.insert(103400430);
            s1.insert(103500530);
            s1.insert(103600630);
            s1.insert(103700730);
            s1.insert(103800830);
            s1.insert(103900930);
            s2.insert(10100101);
    s2.insert(11111111);
    s2.insert(20200202);
    s2.insert(21211212);
    s2.insert(30300303);
    s2.insert(40400404);
    s2.insert(50500505);
    s2.insert(60600606); 
    s2.insert(70700707);
    s2.insert(80800808);
    s2.insert(90900909);
    int t;
    cin>>t;
    LL x;
    while(t--)
    {
        cin>>x;
        for(set<LL>::iterator it=s1.begin();it!=s1.end();it++)
        {
            if(x<*it)
            {
                cout<<*it<<endl;
                break;
            }
        }
        for(set<LL>::iterator it = s2.begin();it!=s2.end();it++)
        {
            if(x<*it)
            {
                cout<<*it<<endl;
                break;
            }
        }
    }
    return 0;
}      

【結果】 

做完這道題我五味雜陳,久久不能入睡。不禁想到上古五千年到2022年的種種往事,往事去矣。唯有暴力尚在人間。

暴力法就是牛

繼續閱讀