当前位置: 首页 > news >正文

CSP-S模拟赛八总结

T1

题面:

真不知道小 D 还在上幼儿园研究数字干什么 (有成为数学家的天赋)……

这题很简单,首先 xxx 是一个完全平方数,那我们直接枚举 x\sqrt{x}x 是多少,进而算出 xxx,然后看看 xxx 是否满足最后一个条件就行了。

因为 x∈[0,n]x\isin[0,n]x[0,n],所以 x∈[0,n]\sqrt{x}\isin[0,\sqrt{n}]x[0,n],最高时间复杂度:O(n∣x∣)O(\sqrt{n}\mid x\mid)O(nx),其中 ∣x∣\mid x\midx 表示 xxx 的位数,但是常数很小,所以直接过。

代码:

#include<bits/stdc++.h>
#define int long long
#define code using
#define by namespace
#define plh std
code by plh;
int n,ans;
signed main()
{
//	freopen("num.in","r",stdin);
//	freopen("num.out","w",stdout);cin>>n;for(int i=0;i*i<=n;i+=2){int x=i*i;bool fl=false;while(x){if(x%10&1){fl=true;break;}x/=10;}if(!fl){ans++;}}cout<<ans;return 0;
}

题外话:关于我的打表同学:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,l=1,r=2188,res=0;
int f[]={-1,0,4,64,400,484,4624,6084,6400,8464,26244,28224,40000,40804,48400,68644,88804,228484,242064,248004,446224,462400,608400,640000,806404,824464,846400,868624,2022084,2226064,2244004,2624400,2822400,2862864,4000000,4008004,4080400,4088484,4804864,4840000,4848804,6240004,6260004,6646084,6864400,8020224,8282884,8868484,8880400,20268004,20448484,20866624,22448644,22848400,24088464,24206400,24226084,24800400,26646244,28068804,42224004,44462224,44622400,46240000,48888064,60248644,60808804,60840000,62062884,64000000,68260644,80604484,80640400,82228624,82446400,82664464,82846404,84640000,86862400,202208400,208282624,222248464,222606400,222666084,224400400,240002064,244046884,248440644,262440000,282240000,284866884,286286400,400000000,400080004,400800400,400880484,408040000,408848400,424442404,440664064,444282084,448084224,466646404,480486400,484000000,484088004,484880400,600642064,606242884,620408464,624000400,624600064,626000400,628404624,644042884,662444644,664608400,680062084,686020864,686440000,802022400,806446404,828288400,840884004,864242404,866242624,882208804,886848400,888040000,2006860804,2024280064,2024820004,2026800400,2044848400,2048648644,2064066624,2068248484,2086662400,2208248064,2220482884,2224820224,2228028804,2240886244,2244864400,2248846084,2284648804,2284840000,2400804004,2408846400,2420640000,2422608400,2480040000,2620620864,2644222084,2664624400,2684068864,2806668484,2806880400,2862464004,2864604484,4002080644,4086022084,4222400400,4226040064,4246086244,4246868224,4444622224,4446222400,4462240000,4624000000,4640606884,4820802624,4888806400,6002840484,6024864400,6080880400,6084000000,6206288400,6228682084,6240684004,6242264064,6266622244,6282464644,6400000000,6460622884,6668682244,6802620484,6826064400,6888668004,8022426624,8046448804,8060448400,8064040000,8220686224,8222862400,8244640000,8262446404,8264264464,8266446400,8268628624,8284640400,8420264644,8464000000,8468048484,8486462884,8648628004,8686240000,8804444224,8866482244,8880800644,20220840000,20284026084,20448428004,20804600644,20828262400,20860602624,20880828004,20886608484,22200404004,22224846400,22228424464,22260640000,22266608400,22440040000,22862044804,24000206400,24000826084,24046084624,24404688400,24646488064,24806880004,24844064400,24888848644,26204486884,26244000000,26244648004,26468686864,26602262404,26646644644,28002006244,28048880484,28224000000,28226688064,28486688400,28628640000,40000000000,40000800004,40008000400,40008800484,40064826244,40080040000,40080840804,40088048400,40482244804,40804000000,40804808004,40884840000,42028280064,42280406884,42444240400,42464020624,42604262464,44066406400,44420620644,44428208400,44602060864,44606284804,44646844804,44800802244,44808422400,44862628864,46062602884,46228440064,46400606464,46484222404,46626628624,46664640400,48048640000,48220646464,48400000000,48400880004,48408800400,48440488464,48488040000,60024020004,60064206400,60624288400,62000004004,62040846400,62046824464,62400040000,62460006400,62466004624,62600040000,62840462400,64060622404,64404288400,64804866624,66044888064,66202260804,66222846244,66244464400,66266086084,66460840000,66686864644,68006208400,68226484804,68602086400,68644000000,68800240804,80202240000,80280422244,80424422464,80486824804,80644640400,80804884644,80844686224,80882222404,82828840000,84006066244,84046648464,84088400400,86002600644,86260864804,86424240400,86624262400,88204248064,88220880400,88222068484,88602666244,88626480804,88662208644,88684840000,88802808004,88804000000,88864802404,200084446864,200684288484,200686080400,202264268644,202428006400,202480200484,202482000400,202680040000,204220840464,204484840000,204486648804,204826846084,204864864400,206208626404,206406662400,206824848400,208666240000,220206824644,220824806400,220826686084,222048288400,222408446404,222482022400,222668846884,222802880400,224020462864,224048862244,224088624400,224486440000,224602062084,224884608400,226260046224,226488424464,228464880400,228482088004,228484000000,228600646884,228864646404,240080400400,240264668224,240884640000,242064000000,242260840000,242262808804,244864646244,246008064064,248002008004,248004000000,260020446084,260404048804,260602082064,260608208004,262062086400,264204224064,264422208400,264640282624,266088842244,266462440000,268406886400,268668062224,280262242404,280442266624,280666848400,280688040000,280802488464,282468864484,282600686404,282664482244,284086868004,286222860004,286246400400,286460448400,288624668644,288822406084,288882600484,400028420484,400084080484,400208064400,400686468004,402042228624,402288284644,402460822404,402600402064,402846628804,406408800004,408062884804,408602208400,408804226884,422240040000,422604006400,422840668644,424064044804,424608624400,424686822400,426006846864,440242866064,442440486244,442448468224,444446222224,444462222400,444622240000,446224000000,448808884624,462400000000,464060688400,466082020804,466486268004,468400622404,468666206464,480246228004,480260088064,482080262400,482660888644,484404864064,484446624484,486280286244,488880640000,600284048400,600482408464,602486440000,604804846864,604820400804,608088040000,608400000000,620628840000,622202284804,622486284484,622868208400,624068400400,624226406400,626000604804,626662224400,628246464400,640000000000,640268828224,644266286244,644426828644,644484628804,646062288400,646428864064,648028220004,648060420484,648446888644,648682046464,660468286864,664228260004,664260860484,666868224400,668620206864,680262048400,682008402244,682404862084,682606440000,684246604864,688222886464,688866800400,800008602624,802042042624,802242662400,804426022404,804644880400,804648468484,806044840000,806400408004,806404000000,820404800644,822046862224,822068622400,822286240000,824242462884,824424048484,824464000000,826244640400,826404628624,826426446400,826448264464,826466446404,826644640000,826862862400,826884686224,828464040000,828642448804,828886426624,840280222224,842026464400,846400000000,846440480484,846804848400,848226264064,848244684004,848646288400,864862800400,866020082404,868624000000,880204228864,880444422400,882468602404,882664008004,886648224400,888080064400,888668206864,888868068804,2002004266084,2020088004804,2022084000000,2028402608400,2044842800400,2046622082404,2080460064400,2080800480004,2082826240000,2086060262400,2086846046464,2088082800400,2088608820804,2088660848400,2200202622864,2206644888484,2206686482064,2220040400400,2220600668224,2220880828644,2222484640000,2222806664464,2222842446400,2226064000000,2226428062884,2226660840000,2226666808804,2240224640644,2244004000000,2262040064064,2266464008484,2268042024004,2268240820624,2268644464804,2284608066064,2284626204004,2286204480400,2288448868644,2288660660224,2400020640000,2400082608400,2404044048004,2404608462400,2422686024004,2424224088064,2426622448644,2440468840000,2440806286864,2442006286864,2448042002884,2460480862464,2464648806400,2464686484624,2468286082084,2480688000400,2484406440000,2488884864400,2608444644624,2620448688400,2624400000000,2624406480004,2624464800400,2626240642624,2640404004624,2640846004624,2642224242064,2642646886884,2646868686400,2648684640484,2660226240400,2664200888644,2664664464400,2666682468004,2668622822464,2684688804004,2686248884484,2688622648804,2800060062244,2800200624400,2800260866404,2804888048400,2822400000000,2822426880064,2822628484624,2822662086084,2822668806400,2824880224644,2844208044484,2848662088804,2848668840000,2862864000000,2864820286084,2866242228004,2868206442084,2868626464804,2880460684864,4000000000000,4000008000004,4000080000400,4000088000484,4000648026244,4000800040000,4000808040804,4000880048400,4006482624400,4008004000000,4008084080400,4008804840000,4022022228004,4024044024004,4024846464804,4042600826884,4044088824064,4048224480400,4048820060224,4062208002064,4064264064004,4080084886084,4080400000000,4080408080004,4080480800400,4080488880484,4082048486464,4084408664064,4088484000000,4202828006400,4204460028484,4208644044004,4222646888464,4228040688400,4240848286224,4244424040000,4246080602404,4246402062400,4260426246400,4262664002884,4282408082404,4284866880064,4286688666624,4406086468624,4406640640000,4422642648064,4424804804484,4442062064400,4442660648644,4442820840000,4460028686884,4460206086400,4460628480400,4464684480400,4464802808064,4468666222084,4480004026404,4480080224400,4480842240000,4486262886400,4486440806884,4606260288400,4608484040644,4620444828484,4622844006400,4640060646400,4642266686464,4648422240400,4660408804804,4662662862400,4664468228644,4666464040000,4668486206224,4686826648464,4800822802084,4804460680464,4804864000000,4822064646400,4840000000000,4840008800004,4840088000400,4840404808464,4840880040000,4840888840804,4844048846400,4848804000000,4862060280064,4866444824004,4884064640064,6000060048004,6002402000400,6002460800064,6002882206084,6004842428484,6006420640000,6022008024484,6026642026084,6028488268804,6062428840000,6066260628484,6066408408064,6066822200464,6080820628624,6088664820484,6200000400400,6200488446084,6202480668484,6204084640000,6204622664464,6204682446400,6220026024004,6220844082244,6222640008484,6240004000000,6246000640000,6246600462400,6246660446224,6260004000000,6266200484644,6280046024004,6284046240000,6406062240400,6408026462464,6426620466084,6428648688484,6440428840000,6444022866064,6448440626884,6480486662400,6482228024484,6482462260624,6488064820224,6604488806400,6620226080400,6620802440464,6622068462244,6622284624400,6624446440000,6626608608400,6626824844644,6646084000000,6660208624644,6662428244224,6664028664484,6664668886404,6666682688064,6668686464400,6680684428804,6682628266084,6686868466404,6800422648644,6800620840000,6804282684004,6806004404224,6822648480400,6840202082884,6842608442244,6846606026404,6860208640000,6862262246464,6864400000000,6864882088464,6880024080400,6886226202244,6888042242064,6888640642884,8008888680004,8020224000000,8024200620804,8028042224400,8042442246400,8048682480400,8060840862244,8064464040000,8068428888004,8080488464400,8084468622400,8088222240400,8222682420484,8228820062464,8246442642244,8260266868624,8260404824464,8262048886884,8282884000000,8400606624400,8404664846400,8408480468644,8408828440804,8408840040000,8468228040484,8480862244864,8482644600004,8600260064400,8626086480400,8628448006084,8640060602404,8640260482624,8642424040000,8660060068804,8662426240000,8664204024004,8686624446864,8820424806400,8822088040000,8822206848400,8860266624400,8862648080400,8866220864400,8868484000000,8880268880484,8880280800400,8880400000000,8880864886084,8886480240400,8886826042084,20000286620224,20008444686400,20008820426884,20022242042884,20026448408464,20068428848400,20068608040000,20080060042084,20080866644224,20220868484644,20226426864400,20226804646084,20242800640000,20248020048400,20248200040000,20248488028224,20262800022084,20268004000000,20268022008004,20268202088484,20286088064064,20422084046400,20422282886404,20444884646404,20448484000000,20448664880400,20482684608400,20484060468624,20486486440000,20606442882624,20620862640400,20620880804484,20622206804224,20640666240000,20644228262464,20682466648804,20682484840000,20802648024064,20866624000000,20884826880064,20888848666624,22020288286084,22020682464400,22040226868804,22064044828644,22068028266244,22068404080804,22082480640000,22082668608400,22088420828224,22202868608064,22204828840000,22224266204644,22240844640400,22242240604224,22248202240000,22260486482404,22266884688400,22268224842084,22280288040000,22402046286400,22404204622864,22404488622244,22404886224400,22408862440000,22420206060004,22424884482064,22446824644864,22448644000000,22460206208400,22466064266244,22468244644624,22488460840000,22608484406244,22626004622400,22640828864644,22646482004224,22648842446400,22662284082064,22688664880644,22808628602244,22846488040000,22848208800400,22848400000000,22860064688400,22886464640400,22888206042244,24008020440804,24008040040000,24024682644004,24026466822400,24028604002404,24088248048484,24088464000000,24202680622884,24206400000000,24226084000000,24226280880400,24246682024464,24264806068624,24266244462084,24420082622224,24428286480004,24480804004864,24482486288484,24482684208004,24484604068864,24486464624400,24488424222084,24600806406400,24600826246084,24606480882064,24626624600484,24660242264464,24660480628624,24662824604224,24800200800400,24800400000000,24820244288064,24842628440644,24844024046884,26002044608400,26008286428224,26028444868864,26040404880400,26060208206400,26060228626084,26060820800400,26066824602624,26206208640000,26248284862864,26264682008464,26282048066404,26404202804004,26404264466064,26420422406400,26442220840000,26462402682244,26464028262400,26466826846464,26480266226404,26602880208804,26608884224400,26620460888004,26646244000000,26646264648004,26648226244864,26822020284004,26828484062884,26840046224644,26840688640000,26860400020804,26864442680464,26866806222400,26882482868224,26884204260004,28002004222864,28026224240400,28044226662400,28066282208644,28066684840000,28068804000000,28080248846400,28080482006404,28088282826244,28200688026624,28208866684804,28246440008644,28246886448400,28260068640400,28266448224400,28282208882404,28408686800400,28420286020624,28482480262404,28600868688484,28602088040464,28622264600484,28622286000400,28624640040000,28646044840000,28646066248804,28666408226404,28844826664644,28860446884864,28862466864400,28880606868624,28880864824464,28882240608400,28888260048400,40002842048400,40008408048400,40020806440000,40068646800400,40082422020624,40204222862400,40228828464400,40244204444224,40246082240400,40260040206400,40264202686464,40284662880400,40284688268484,40286846284864,40428080622864,40460260062244,40462600884484,40602282048064,40620202066404,40640880000400,40662200862864,40680440246884,40806288480400,40806646208064,40824406802404,40860220840000,40860246408804,40880422688400,42004242420624,42048844002064,42060828226624,42086644206084,42200640424804,42204226404484,42204486264004,42224004000000,42228006862864,42248804008464,42260400640000,42268488022084,42282480240004,42284066864400,42286824020224,42406404480400,42408644644864,42444026248464,42444208666084,42460862440000,42468682240000,42484428288064,42600684686400,42626822482084,42646228646464,42660204864484,42662608482244,42662686862224,42680062868004,42804280080004,42806426046244,42842680066624,42844460442624,42864806482884,42886886220864,44006002224804,44024260066084,44024286606400,44042840244484,44222606400064,44244048624400,44244846822400,44286868806244,44424464468224,44444462222224,44444622222400,44446222240000,44462224000000,44622400000000,44662462268004,44828488286464,44848442822404,44880888462400,44886006888804,46002604680484,46022628864004,46046240204644,46202444428644,46208208666244,46220662822084,46240000000000,46242284828224,46406068840000,46424082044484,46448286828804,46466062826404,46466880822244,46484824008484,46608202080400,46648626800400,46802044804804,46840062240400,46860842868004,46866620646400,46884668228644,46888228860004,48024622800400,48026008806400,48082602642244,48202444068804,48208026240000,48246804864064,48266088864400,48268840066084,48422002622464,48440486406400,48442880648464,48444662448400,48448448882064,48486042828864,48626048204644,48628028624400,48804084224064,48824066206084,48824848800484,48840222462084,48862448668224,48884400260644,48888064000000,60026266466244,60026886280804,60028404840000,60046660044484,60048240846400,60048426824464,60062624000064,60082620684804,60248644000000,60286404282624,60480484686400,60482040080400,60682666648464,60684068840004,60684224640064,60802222666084,60808460888484,60808804000000,60840000000000,60842620828224,60844648888804,60868208068864,60882002446864,60888400822404,62004002044644,62028824202244,62062884000000,62064806246884,62088442862884,62204642808064,62220228480400,62222468686884,62242600802404,62248628448400,62268228204484,62286820840000,62402226642064,62406808440804,62406840040000,62422640640000,62484882848644,62600060480400,62602402460224,62608004400484,62666222440000,62824646440000,62884868280004,64000000000000,64002688028224,64026882822400,64246284482884,64426628624400,64442682864400,64446086620224,64448462880400,64464808884004,64468662860644,64606228840000,64642886406400,64644848200804,64664242622464,64668424222224,64802628800064,64802822000400,64806042048400,64826620044004,64844688864400,64848844082884,64868204646400,66000480868624,66002008202244,66026480446224,66028008080644,66044260604644,66046828686400,66080608484004,66262888600804,66266242406464,66288288464644,66422826000400,66426086048400,66602280084484,66642862866064,66686822440000,66824444842884,66840468062404,66862020686400,68026204840000,68042668444804,68200840224400,68220860006464,68224824668224,68240486208400,68244484484484,68260644000000,68424660486400,68486680846224,68624622864004,68640860460484,68686004440804,68806660020484,68822288646400,68886646840804,68886680040000,80000860262400,80062444808644,80066668208004,80086426606404,80204204262400,80224266240000,80280202246084,80442602240400,80464488040000,80464846848400,80466246208804,80480240482084,80604448088004,80604484000000,80640004880484,80640040800400,80640400000000,80802264824064,80820064040004,80880020462224,80888402464804,82002044028004,82040480064400,82204468622224,82204686222400,82206862240000,82208820680464,82228624000000,82286088884224,82400606840484,82424246288400,82426824682084,82428204684004,82442404848400,82446000480484,82446400000000,82600868604004,82620246426624,82622682448804,82624464040000,82640244686224,82640462862400,82642644640000,82644426446404,82644608264464,82644826446400,82646644640400,82664464000000,82664864048484,82666682462884,82686286240000,82688468622400,82688686862224,82846404000000,82846440408004,82846804488484,82864208468484,82864244880400,82866466022404,82888642662400,84008260022404,84008626646884,84028022222400,84028242222864,84040086006244,84202646440000,84264468666624,84282828802624,84288888086404,84400822008064,84406628286864,84444668026884,84488488664644,84640000000000,84640404800484,84644048048400,84644820868644,84680484840000,84682288480804,84804244402084,84822626406400,84824468400400,84846242284804,84864628840000,86026886404624,86200046222404,86202088802064,86244802828864,86246660200464,86248220408064,86486242840804,86486280040000,86488288808464,86602008240400,86620286228004,86820688688644,86848644224644,86862400000000,88004624442084,88020422886400,88044442240000,88088886682624,88246822664484,88246860240400,88266400800400,88420884884644,88426226004484,88482204624004,88600088468644,88642262660004,88664822440000,88666668024804,88808006440000,88846422002244,88866028826884,88866820686400,88886806880400,200080402620484,200200426608400,200208406848004,200224424404624,200420422488064,200442224848644,200486682686224,200664280022404,200664846646884,200800462886464,200822002484224,200868486604864,202008800480400,202206466084624,202208400000000,202220686266624,202464668664064,202642684208644,202840260840000,204020600482084,204044026222404,204204042840004,204424282480804,204484222840804,204484280040000,204604644864064,204662208240400,204666442844224,204800084262244,204848286000484,204864602600464,204864888862404,206040244226404,206066082420004,206246880244804,206424424080484,206466206820624,206626480242064,208026448226884,208046006440000,208062680686884,208080048000400,208222244888464,208224842280004,208226862484624,208282624000000,208446084026244,208600480088064,208606026240000,208624282844224,208660682888464,208684604646400,208686684864064,208688880660624,208802268800064,208802442200004,208808280040000,208860882080400,208866084840000,220020262286400,220088440402884,220240202802064,220480268622084,220486802044804,220640662424484,220664488848400,220668648206400,222004040040000,222024244628484,222024840648004,222048682084804,222060066822400,222060424462864,222066862040464,222084446640004,222088082864400,222244826462884,222248464000000,222264028224484,222280666446400,222284244640000,222606400000000,222628422464644,222642806288400,222666084000000,222666680880400,222848826446884,224022464064400,224088684646464,224400400000000,224460084288064,224640084048004,224800004462224,226008888422464,226042264228804,226204006406400,226246060424484,226246662084004,226448082468864,226466622220864,226620868660624,226646400848400,226668020028004,226804202400400,226804262640484,226824082062400,226864446480400,228064604868864,228460806606400,228462620400400,228482028446884,228486260840644,228602062246464,228620448040000,228844886864400,228866066022400,228868426046404,228884280882084,240002064000000,240008260840000,240048604224004,240402606226084,240404404800400,240420468228004,240460846240000,240466800888064,240622206048004,240684444224064,242020000088064,242206284228484,242268602400400,242422408806400,242600000686884,242626666884484,242640062840464,242662244864400,242664488046864,242686484246404,242880442882884,244046884000000,244080628686400,244200628686400,244246824046404,244424082228624,244804200288400,246006426206464,246048086246400,246204280046404,246228444622224,246406420286244,246420862048804,246464880640000,246468648462400,246480642888804,246640680220804,246664866202624,246828042620644,246828608208400,246844884844804,248062248000064,248064642004624,248068800040000,248220088020004,248228280688644,248408868824064,248440644000000,248480428880644,248646286064484,248800084466404,248888486440000,260040200080644,260084064002884,260460800884804,260642684602624,260806608642064,260844464462400,262044804088804,262044868840000,262406888244484,262440000000000,262440064800004,262440648000400,262446480040000,262448488868644,262602284280064,262604228884624,262624064262400,262828684608064,264040400462400,264062240000064,264084600462400,264222424206400,264264688688400,264488486662404,264640080488644,264648084288064,264664808064484,264686868640000,264688886024644,264804280204864,264868464048400,266022624040000,266048460024064,266086824860224,266260088280484,266420088864400,266466446440000,266668246800400,266804848242244,266862282246400,268242880246884,268406686466884,268422086822464,268468880400400,268624888448400,268640688428644,268648228002064,268648424688004,268802648620804,268862264880400,280004600622244,280006006224400,280006608626404,280020062440000,280026086640400,280202088820644,280428248064064,280488804840000,280626086602404,280640828466244,280666426622404,282024262042084,282028426864804,282240000000000,282240268800064,282242284804624,282242620806084,282242688006400,282262848462400,282266208608400,282266880640000,282466442200644,282488022464400,282680062600464,282862682264484,284006688840004,284420804448400,284444820402064,284600004088464,284802008662084,284826648268864,284860402884864,284866208880400,284866884000000,286002282206404,286048824828484,286086846466404,286266028682404,286286400000000,286468420442884,286480606844644,286482028608400,286624222800400,286820644208400,286862646480400,288044642846884,288046068486400,288880264404484,400000000000000,400000080000004,400000800000400,400000880000484,400006480026244,400008000040000,400008080040804,400008800048400,400064802624400,400080004000000,400080084008004,400080804080400,400080884088484,400088004840000,400088084848804,400480224048004,400486868060224,400488228888804,400648262440000,400800400000000,400800480080004,400808408040000,400880484000000,402002820800064,402202222800400,402404402400400,402404482640484,402484646480400,402822240666624,402880286446884,402884862848064,404006864406084,404082684868864,404260082688400,404408882406400,404420224480804,404602684808644,404822448040000,404882006022400,406022822400064,406060060468624,406220800206400,406220880826084,406426406400400,406466808084484,408008488608400,408040000000000,408040080800004,408040808000400,408040888800484,408048080040000,408048888048400,408204848646400,408440866406400,408602642622084,408804806842084,408848400000000,408848480880004,420048222226084,420246228008464,420246802006084,420282800640000,420444280448644,420446002848400,420680282082064,420862024666084,420864404400400,422080260446464,422224084840464,422264688846400,422408462446084,422446444464004,422804068840000,424020662264644,424084828622400,424226604884644,424442404000000,424442486408004,424466220246084,424608060240400,424640206240000,424866828840804,426026442406464,426042624640000,426266400288400,426620680420804,428240808240400,428486688006400,428668866662400,428688660220804,440068428484864,440462228044864,440488084644864,440608646862400,440664064000000,442264264806400,442286220482404,442422088604224,442480480448400,442660644408004,442684882246084,444024042446884,444028846848064,444206206440000,444248022604864,444266064864400,444282084000000,444404260486404,444808262268484,444826400264464,444862424264644,446002868688400,446008866442084,446020608640000,446062848040000,446220080662084,446226248868624,446406666642244,446422048204804,446468448040000,446480280806400,446866622208400,448000402640400,448008022440000,448084224000000,448266202600804,448266626046864,448626288640000,448644080688400,448884646862404,460008468004864,460224000820224,460424220420004,460626028840000,460846600806244,460848404064400,460880262206884,462028060646244,462044482848400,462046288448644,462228844242064,462246044008464,462246646006084,462284400640000,462426402826404,462444466448484,462446444866624,462486444228004,462640006228624,462668828828644,462808222428484,464006064640000,464082666886084,464086286046244,464208484068004,464226668646400,464280448820224,464286482046864,464402844800064,464480428068864,464662084464484,464682606024004,464842224040000,464862404606224,466008844468644,466020242600004,466040880480400,466266286240000,466446822864400,466646404000000,466848620622400,468220268006404,468262680226884,468268046808004,468444468642084,468484466828004,468682664846400,468822008680804,468888440284224,480044682046084,480082280208400,480202446444484,480280286428804,480446068046400,480460008682404,480486400000000,482206464640000,482220606468484,482268040202404,482440226688484,482826264462864,484000000000000,484000088000004,484000880000400,484004048008464,484008800040000,484008888040804,484040480846400,484088004000000,484088884080400,484404884640000,484462022208004,484466600402404,484620686866404,484802804624644,484880400000000,484880488080004,486206028006400,486224462048004,486286646440464,486426024484624,486644482400400,486662660026624,486668660482624,488082002686084,488200602848644,488240640284224,488282800682884,488406464006400,488486822620644,488642608088644,600006004800400,600008846226084,600028442448484,600062246684224,600240200040000,600242062026244,600246080006400,600246668004624,600264602088804,600288220608400,600446408064064,600484242848400,600642064000000,600682846004224,600848046888804,600866480206084,602200802448400,602608820840464,602664202608400,602800802208004,602848826880400,604024406840464,604068646084864,604426060266084,604604266044804,606044840808484,606242884000000,606266422860484,606606260666884,606622220608804,606626062848400,606640840806400,606664880002624,606682220046400,606846864284644,608082062862400,608208226486884,608268600262404,608288626866064,608802426862084,608866482048400,620000040040000,620024840488804,620048844608400,620084602644004,620200848284224,620248066848400,620408464000000,620462266446400,620462864264464,620468244640000,620484286268484,620642222686864,620648002444864,620682880866064,622002602400400,622028440488004,622084408224400,622086802622224,622264000848400,622402604208004,622664086684644,624000400000000,624400044048004,624600064000000,624660046240000,624666044622400,624666644462224,626000400000000,626226000642064,626246020408464,626620048464400,626886020686864,628004602400400,628262646868224,628404624000000,628620628446864,640002060220644,640088886800484,640206284080804,640226222446864,640488688862884,640606224040000,640646822244004,640802646246400,642020426486884,642242204880004,642486022846864,642662046608400,642824200424484,642864868848400,642884240046244,642886268460804,644042884000000,644402286606400,644486466280644,644844062688400,646208022866884,646422082228224,646642280022244,646680220888464,648048666240000,648084204420004,648084408080004,648222802448400,648246226062400,648262622844004,648806482022400,660022240046404,660208460808484,660222644260804,660284004864064,660448880640000,660644620248064,662022608040000,662080244046400,662204684622244,662206846224400,662228462440000,662444644000000,662660860840000,662682484464400,662684646846244,664220622260484,664268044466404,664480640460484,664608400000000,666020862464400,666242824422400,666402866448400,666466888640400,666626028086404,666668268806400,666668888484624,666802642440484,666868646440000,666882488068624,668024400284224,668068442880400,668222086400064,668248246848004,668262826608400,668284644844804,668686846640400,668868802800004,680042264864400,680046020046864,680062084000000,680082842246404,680428268400400,680600440422400,680822626686084,680888068444224,682264848040000,684020208288400,684062682686464,684260844224400,684660602640400,684888684662884,686020864000000,686226224646400,686440000000000,686444820808464,686448488826244,686488208846400,686822468460804,686864086280464,688002408040000,688600682404804,688622620224400,688684446868804,688804224206400,688864064288400,800062608602884,800888868000400,802022400000000,802046868666624,802064200864644,802420062080400,802804222440000,804086668642084,804244224640000,804262488068484,804446268268644,804460222808064,804646862224804,804686802468004,804868248040000,806084086224400,806446404000000,806820846686464,806842888800400,808028266002244,808048846440000,808442426666884,808446862240000,808482802204224,808648068080644,808664220228484,808680486286864,808822224040000,820402086446244,820440468062224,822268242048400,822400268060484,822882006246400,824000448446464,824202202402084,824442226462404,824644264224400,826026686862400,826040482446400,826088882864644,826200404664804,826204888688400,828266642462884,828288284880004,828288400000000,828288860480064,828484000426404,828820224620644,840060662440000,840402822048804,840424042644624,840424622446084,840448626402064,840466484640000,840848046864400,840882844080400,840884004000000,842422064642064,842428682242884,844000808062864,844424202404484,844640066286864,844646808844864,846060666242884,846226820040484,846664622640004,846800222428224,846806042404624,846822804048400,846862264406404,846862846424464,848086224486400,848260266008464,848264460000400,848844262644624,860008880024464,860026006440000,860080084802884,860600426624064,860864822888004,860888882264464,862420806468004,862608648040000,862620866086464,862660222882084,862844800608400,864006060240400,864026048262400,864208420246084,864224882880804,864242286408004,864242404000000,864448084644004,864844462264644,866006006880400,866242624000000,866420402400400,866482688022084,866800626824484,866860688480004,868040202600484,868068840408064,868480428480064,868608686620224,868662444686400,868804628642064,882042480640000,882080020828224,882208804000000,882220684840000,882228882666244,882268684248064,882620046402084,882802468608064,882862844408064,884020248020484,884022864480484,884204004282624,884408002044004,884824040064064,886026662440000,886264808040000,886400446260484,886424264402884,886622086440000,886646026666404,886848280880004,886848400000000,888026888048400,888028080040000,888040000000000,888044648806084,888086488608400,888204622828644,888224888822404,888482406286084,888648024040000,888682604208400,888686062262244};
signed main()
{
//	freopen("num.in","r",stdin);
//	freopen("num.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;while(l<=r){int mid=(l+r)/2;if(f[mid]<=n){l=mid+1;res=max(res,mid);}else r=mid-1;}cout<<res<<"\n";return 0;
}

T2

题面:

水题一道,但是要注意要开二倍空间!!!

其实我们最终的答案表达式如下:

∑ai+∑bi \sum a_i+\sum b_i ai+bi

现在我们把后面那一块反过来:

∑ai+s−∑bi \sum a_i+s-\sum b_i ai+sbi

也就是用总和减去不用的。

然后合并一下:

s+∑(ai−bi) s+\sum(a_i-b_i) s+(aibi)

现在我们已知 sss∑b\sum bb,是一个定值,那只需要后面那里最大就行了,因此直接贪心。

题外话:考试的时候忘了是 2n2n2n 个数,空间开小了,直接 RE 了……

代码:

#include<bits/stdc++.h>
#define int long long
#define code using
#define by namespace
#define plh std
code by plh;
struct kc{int x,y;
}a[1000006];
int n;
signed main()
{
//	freopen("course.in","r",stdin);
//	freopen("course.out","w",stdout);cin>>n;n*=2;for(int i=1;i<=n;i++){cin>>a[i].x>>a[i].y;}sort(a+1,a+n+1,[&](kc x,kc y){return x.x-x.y>y.x-y.y;});int ans=0;for(int i=1;i<=n;i++){if(i<=n/2){ans+=a[i].x;}else{ans+=a[i].y;}}cout<<ans;return 0;
}

T3

题面:

首先做这题我们需要知道这样一条性质:

Bx≡1(modB−1) B^x\equiv1\pmod{B-1} Bx1(modB1)

这个其实也很好证明:

证明:已知 B≡1(modB−1)B\equiv1\pmod{B-1}B1(modB1),对于任意的整数 xxx,有:

Bx≡B⋅Bx−1≡Bx−1(modB−1) B^x\equiv B\cdot B^{x-1}\equiv B^{x-1}\pmod{B-1} BxBBx1Bx1(modB1)

因此可知 Bx≡1(modB−1)B^x\equiv1\pmod{B-1}Bx1(modB1)

然后这道题就好做了。

我们设构建的这个数是 a1a2…an‾\overline{a_1a_2\dots a_n}a1a2an,通过数学式子可以表示为这样:

an+an−1⋅B+⋯+a1⋅Bn−1 a_n+a_{n-1}\cdot B+\dots+a_1\cdot B^{n-1} an+an1B++a1Bn1

现在把这个数对 B−1B-1B1 取余数,按照我们上面的性质,最终答案应该是这个:

∑i=1nai \sum_{i=1}^na_i i=1nai

因此我们只需要尽可能多的选数,并让这些数的和是 B−1B-1B1 的倍数就行了。

那我们可以先把所有数全选上,然后删掉 sum mod (B−1)sum\bmod (B-1)summod(B1) 来保持和是 B−1B-1B1 的倍数(当然余数是 000 就不用删了),然后记录下每个数用的个数。

对于每次查询,我们可以先预处理前缀和一下,然后二分找答案,时间复杂度 O(qlog⁡n)O(q\log n)O(qlogn)。当然,也可以用离线做法,这时就需要排序再用双指针解决,时间复杂度 O(q)O(q)O(q) 左右。

代码(离线):

#include<bits/stdc++.h>
#define int long long
#define code using
#define by namespace
#define plh std
code by plh;
struct card{int x,id;
}b[1000006];
int n,q,a[1000006],ans[1000006];
inline int read()
{int z=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-'){f=-1;}c=getchar();}while(c>='0'&&c<='9'){z=z*10+c-'0';c=getchar();}return z*f;
}
inline void write(int x)
{if(x<0){putchar('-');x=-x;}static int top=0,stk[10006];while(x){stk[++top]=x%10;x/=10;}if(!top){stk[++top]=0;}while(top){putchar(char(stk[top--]+'0'));}
}
signed main()
{
//	freopen("card.in","r",stdin);
//	freopen("card.out","w",stdout);n=read(),q=read();for(int i=0;i<n;i++){a[i]=read();}int sum=0;for(int i=0;i<n;i++){sum+=a[i]*i;}sum%=(n-1);if(sum!=0){a[sum]--;}for(int i=1;i<n;i++){a[i]+=a[i-1];}for(int i=1;i<=q;i++){b[i].x=read();b[i].x++;b[i].id=i;}sort(b+1,b+q+1,[&](card x,card y){return x.x<y.x;});for(int i=1,j=0;i<=q;i++){while(j<n&&a[j]<b[i].x){j++;}if(j>=n){break;}ans[b[i].id]=j+1;}for(int i=1;i<=q;i++){write(ans[i]?ans[i]-1:-1);putchar('\n');}return 0;
}

题外话:离线真的很快,直接拿下时间榜第一。

T4

题面:

正解这里我就不过多赘述了,大家自己看题解:

这里我讲一下歪解(目前还没证出来,暂且算是歪解吧)。

其实在做这道题的时候,我先开始打了一个 10pts 的暴力:

#include<bits/stdc++.h>
#define int long long
#define code using
#define by namespace
#define plh std
code by plh;
const int mod=1e7+7;
int n,ans,a[5006],b[5006];
signed main()
{
//	freopen("eat.in","r",stdin);
//	freopen("eat.out","w",stdout);cin>>n;for(int i=1;i<=n;i++){a[i]=i;}do{for(int i=1;i<=n;i++){b[i]=1;}bool fl=true;for(int i=1;i<=n;i++){for(int j=1;j<i;j++){if(a[j]<a[i]){b[i]=max(b[i],b[j]+1);}}if(b[i]>2){fl=false;break;}}if(fl){ans++;}}while(next_permutation(a+1,a+n+1));cout<<ans<<" ";return 0;
}

然后我就试了一下前 5 位数都是多少:

1 2 3 4 5
1 2 5 14 42

如果你的数感比较好,其实你很容易看出来这是 Catalan 数的前 5 项,为了验证,我又算了 6 到 10 之间的数,这里不一一列举了,相信结果大家肯定都知道了:答案就是第 nnn 项 Catalan 数!

于是我们直接使用 Catalan 数的递推式,交上去:直接 AC!

代码:

#include<bits/stdc++.h>
using namespace std;
const int mod=1e7+7;
long long n,f[5006];
signed main()
{cin>>n;f[0]=1;for(int i=1;i<=n;i++){for(int j=0;j<i;j++){f[i]+=f[j]*f[i-1-j];f[i]%=mod;}}cout<<f[n];return 0;
}

注意:这里的模数是 107+710^7+7107+7,它不是一个质数,所以不好用 O(n)O(n)O(n) 的组合数做……

题外话:考试的时候我发现了,但是我不会 Catalan 数的递推式!!!(这辈子最后悔的事就是没有好好学 Catalan 数)。

T5

题面:

看到异或,其实首先最容易想到的就是转化成二进制数位分离。

看到这个 min⁡\minmin,感觉非常烦,于是我们可以尝试把这个 min⁡\minmin 拆开。

那么我们直接从最高位开始考虑 aaabbb

这里就不列举了,反正每个数只有 0 和 1 两种情况,两个数异或起来相同为 0、不同为 1,那么在下面四种情况下会有贡献:

其余还有两种情况没法通过最高位比较:

对于这种情况,我们直接递归到下一位。

然后这道题就能非常完美的 AC 了。

时间复杂度:O(nlog⁡2max⁡(a))O(n\log^2\max(a))O(nlog2max(a))

代码:

#include<bits/stdc++.h>
#define int long long
#define code using
#define by namespace
#define plh std
code by plh;
int n,ans,mxbit,a[200006],b[200006];
int bit(int x,int y)
{return (x>>y)&1;
}
void dfs(int pos,vector<pair<int,int>>v)
{if(v.size()<2){return;}if(pos<0){for(int i=mxbit;i>=0;i--){int cnt0=0,cnt1=0;for(auto j:v){int b=bit(j.first,i);cnt0+=(b==0);cnt1+=(b==1);}ans+=(cnt0*cnt1)*(1<<i);}return;}vector<pair<int,int>>vv[6];for(auto i:v){vv[bit(i.first,pos)*2+bit(i.second,pos)].push_back(i);}vector<tuple<int,int,int>>vvv={{0,1,0},{0,2,1},{3,2,0},{3,1,1}};for(auto i:vvv){int t1,t2,t3;tie(t1,t2,t3)=i;if(vv[t1].empty()||vv[t2].empty()){continue;}for(int j=mxbit;j>=0;j--){int cnt0=0,cnt1=0;for(auto k:vv[t1]){int b=bit((t3==0?k.first:k.second),j);cnt0+=(b==0);cnt1+=(b==1);}int cntt0=0,cntt1=0;for(auto k:vv[t2]){int b=bit((t3==0?k.first:k.second),j);cntt0+=(b==0);cntt1+=(b==1);}ans+=(cnt0*cntt1+cnt1*cntt0)*(1<<j);}}vector<pair<int,int>>m1,m2;for(auto i:vv[0]){m1.push_back(i);}for(auto i:vv[3]){m1.push_back(i);}for(auto i:vv[1]){m2.push_back(i);}for(auto i:vv[2]){m2.push_back(i);}dfs(pos-1,m1);dfs(pos-1,m2);
}
signed main()
{vector<pair<int,int>>v;cin>>n;int mx=0;for(int i=1;i<=n;i++){cin>>a[i];mx=max(mx,a[i]);}for(int i=1;i<=n;i++){cin>>b[i];v.push_back(make_pair(a[i],b[i]));mx=max(mx,b[i]);}mxbit=log2(mx);dfs(mxbit,v);cout<<ans;return 0;
}
http://www.dtcms.com/a/536783.html

相关文章:

  • 电子商务网站设计流程vuejs做视频网站
  • 新手做网站需要哪些软件thinkphp旅游网站源码
  • 漳州市城乡建设局网站6wordpress自定义排版
  • Falco:云原生世界中的安全守护者
  • 塘沽做网站的公司电子商城市场
  • 一篇文章详解Kafka Broker
  • Vue3 创建项目
  • 怎样注册自己网站公司企业网站制作需要多少钱
  • 京东网站建设吗做宣传的网站
  • 单细胞空间--纤维相关蛋白阳性成纤维细胞调控伴瘤栓肾细胞癌的肿瘤微环境重构
  • Visual Studio 2022打包生成exe安装程序
  • 做造价在哪个网站查价格建筑公司年度工作总结报告
  • 现代化专业群建设专题网站搬瓦工wordpress建站
  • PostgreSQL PostGIS中的元数据表
  • ProcDump 学习笔记(6.11):以非交互方式运行 ProcDump(服务器/生产环境指南)
  • yolov4和yolov5(yolov4的工业化)
  • 手写线程池第1弹:深入理解线程池:从原理到实战,手写高性能线程池的完整指南
  • 网站没有域名电子商务网站硬件建设的核心
  • 上海 松江 网站制作南通做网站
  • 如何在 Spring Boot 项目中使用 @Slf4j 注解结合 Logback 进行系统日志管理
  • SQLite 事务
  • 第 1 章 JVM 和 Java 体系架构_java 字节码
  • MarketUP营销自动化核心方法:从数据驱动到全链路增
  • 沙田镇仿做网站网站价格
  • 信创背景下,中职计算机网络专业人才培养方案探讨
  • 且网站制作开源系统有哪些
  • AR智能巡检:电力运维的“透视眼”与“超级大脑”
  • 漳州电脑网站建设西安市建设网
  • 从冷换仓到热追踪:项目方如何在不暴露风险的前提下守住主动权
  • 机器人运动控制中的 Actor-Critic 强化学习预训练