[分段打表 组合] LibreOJ Round #8 C .MIN&MAX I

由样例一可以知道三个数的位置关系

这四种情况其实是等价的,所以就就考虑其中的一种就好了

对于每一个三元环,我们求出它在所有排列中出现多少次,总和除以 n! n ! 就是答案

设我们考虑的环为 a3 a 3 a1 a 1 a2 a 2 ( a1<a2<a3 a 1 < a 2 < a 3 )

那么在 a3 a 3 a1 a 1 之间, a1 a 1 a2 a 2 之间可能插有若干个小于 a1 a 1 的数

枚举 a1 a 1

答案是

i=1n2(ni2)k1+k2<i(i1k1+k2)(k1+k2k1)k1!k2!(n2k1k2)! ∑ i = 1 n − 2 ( n − i 2 ) ∑ k 1 + k 2 < i ( i − 1 k 1 + k 2 ) ( k 1 + k 2 k 1 ) k 1 ! k 2 ! ( n − 2 − k 1 − k 2 ) !

把二项式系数展开,后面的sigma就只跟 k1+k2 k 1 + k 2 有关

答案就是

i=1n2(ni2)k=0i1(i1)!(i1k)!(n2k)!(k+1) ∑ i = 1 n − 2 ( n − i 2 ) ∑ k = 0 i − 1 ( i − 1 ) ! ( i − 1 − k ) ! ( n − 2 − k ) ! ( k + 1 )

=k=0n3(n2k)!(k+1)i=k+1n2(ni2)(i1)!(i1k)! = ∑ k = 0 n − 3 ( n − 2 − k ) ! ( k + 1 ) ∑ i = k + 1 n − 2 ( n − i 2 ) ( i − 1 ) ! ( i − 1 − k ) !

后面的 (i1)!(i1k)! ( i − 1 ) ! ( i − 1 − k ) ! 就是 A(i1,k) A ( i − 1 , k ) 乘个 k! k ! 变成 (i1k) ( i − 1 k )

=k=0n3(n2k)!(k+1)!i=k+1n2(ni2)(i1k) = ∑ k = 0 n − 3 ( n − 2 − k ) ! ( k + 1 ) ! ∑ i = k + 1 n − 2 ( n − i 2 ) ( i − 1 k )

考虑 n2i=k+1(ni2)(i1k) ∑ i = k + 1 n − 2 ( n − i 2 ) ( i − 1 k ) 的组合意义,就是 n n 个数中选择 k+2 k + 2 个数,设一种选择方案中倒数第二个数与倒数第三个数差 x x ,那么 x2 x ≥ 2 并且这个方法会被算 x1 x − 1

枚举 x x , n2i=k+1(ni2)(i1k)=nk2i=1(nik+2)=(nk+3) ∑ i = k + 1 n − 2 ( n − i 2 ) ( i − 1 k ) = ∑ i = 1 n − k − 2 ( n − i k + 2 ) = ( n k + 3 )

答案变成

k=0n3(n2k)!(k+1)!(nk+3) ∑ k = 0 n − 3 ( n − 2 − k ) ! ( k + 1 ) ! ( n k + 3 )

展开得

n!k=0n3nk2(k+2)(k+3) n ! ∑ k = 0 n − 3 n − k − 2 ( k + 2 ) ( k + 3 )
n! n ! 之后会被抵消

转化得

nk=0n31(k+2)(k+3)k=0n31k+3 n ∑ k = 0 n − 3 1 ( k + 2 ) ( k + 3 ) − ∑ k = 0 n − 3 1 k + 3

前一个sigma等于 n(121n) n ( 1 2 − 1 n ) ,后面一个是自然数倒数和

我只会分段打表…

#include 
#include 
#include 

using namespace std;

const int P=998244353;

inline int Pow(int x,int y){
  int ret=1;
  for(;y;y>>=1,x=1LL*x*x%P) if(y&1) ret=1LL*ret*x%P;
  return ret;
}

int ANS[]={0,383489243,476153616,206828787,200900425,404901413,421988739,946953535,48984788,299754294,609967024,22367773,784626752,290084993,859877459,931447466,282446857,445400493,462544462,17486580,63680228,659288894,951061029,884868498,351978420,925244997,330957928,504495079,632015469,239554195,595401226,338575131,220915314,738598001,976701033,164385000,687818934,616870939,588502672,490271748,46992111,224631317,50216733,444263640,807411793,732419974,652802221,327587377,465677387,970323970,781457772,54439889,334146276,541822148,919210603,482944083,186037947,888231262,79487018,16430804,470908568,767655891,58782697,828226736,504383343,187272011,619314333,921986086,920241724,103909801,959411277,813172786,706419110,969966856,733225210,36674258,36399971,261170591,411302678,314049156,182903378,528086008,340928126,795038455,464582317,686791782,913765639,584801932,416208212,495528969,735737317,540350051,273952253,447393982,93961405,417072515,196551823,666290059,774614383,109392830,309527231,43260513,876008931,637939549,961122737,905480502,948158729,668587261,146119125,593261758,537580876,942244389,633065871,963858416,579528140,609446290,287125076,414908144,173985824,103744923,968419103,966932268,902032636,651213388,201593134,124372317,844353652,275462327,855737980,496901672,11907744,730899966,710222880,96049754,85660861,456490524,101208741,42721313,114345761,658422709,657412750,678253562,69044896,131310337,250408683,289111887,368596836,844685471,164033022,972237612,585031578,376416594,730620881,932150214,930558312,918556988,172009002,409734763,336248810,154337477,877759286,614613794,806140267,934871745,351335226,111695674,481699704,901435643,315148721,135215073,282867520,172281772,663233142,593621244,18117486,199514098,523357841,789917079,351632856,82069900,187740521,95426174,302058548,1742307,987604930,527535658,361102727,584773042,588109314,371380232,32316168,996355420,973106718,425097736,849550935,550422127,459722145,957649214,579976353,330414167,575783505,912517943,754261549,229309244,49105377,595469070,954114854,665135061,639558923,519822010,120449341,595307101,949500101,789593343,464044925,91021570,109372821,647272910,480186612,583552743,580287074,245241298,955045810,572897151,51427229,974588037,744483095,810886851,760909814,475160785,670979517,180233838,478824397,440954605,174277454,860931757,56896315,265817577,259843203,844255652,413272904,127675954,341368311,72730348,398256099,899166880,572263914,332083111,370271708,972775840,354993540,234530470,871422535,586910874,861111063,949135089,524276957,361620526,802009654,21835657,346298310,606062759,938972424,693052459,264766117,366494628,565871501,826346730,28786493,415635496,77259793,490144119,817263682,853250337,566411216,500246193,187361854,597621003,670887129,359393182,395067793,356863886,443528122,313631752,454438305,452247405,804041243,381640909,436605348,445898590,741810855,83439055,635471576,697495481,700911563,912356894,458327061,381223583,967317019,736217488,947119493,795253125,461621310,632255824,732126407,231612671,771102044,94994725,370580593,222995390,774151921,339267029,590023329,444296506,371888683,428524209,191354637,104668732,657431275,298688039,369067660,965118870,281262368,478250134,38966404,187325485,712987529,853374055,659508886,812774859,184266593,532459514,582212405,161264103,875221210,229145110,325590386,435460381,628293484,936591102,430825910,161392184,709318586,159704114,798838024,414920011,822525293,907513261,392711632,906046296,654911509,496295596,77128020,976678739,162395955,655685664,433980290,556561960,996505188,951094315,647041130,614199481,647404308,894372378,36932496,556878265,885598109,897429959,773483885,812305271,818530204,851820740,304826846,487217811,912018834,122103580,516944954,863936238,325494138,703196410,642677104,699327130,508090985,761687909,860545500,135967419,210951446,290103193,884326561,671388463,446061911,369957187,333992602,668989460,509383019,372731958,626051933,981444176,212680453,615599448,270318379,724679713,594181937,161769288,942798671,144860428,651641652,837116296,223293849,478549936,196745120,522333139,346995803,883475143,938911406,952208592,583446440,311017231,213278995,931258206,676466623,533478633,305422856,440912846,325312489,741005297,448417281,31226253,595172523,434173984,30416084,843665305,570730057,687113246,530798468,202216729,988777006,341398383,243075051,484575354,862473015,806314101,823798006,740230716,36108143,522231726,804533313,268019745,533565898,664330755,275798923,340286758,668958743,103795183,429344634,199002968,209282119,49429580,965841322,91199762,448740952,866888988,605756330,743860879,514942173,114275544,550737146,597181680,997179011,110242286,161899759,542395255,225018360,269595086,228213817,553633484,330443108,438127430,475723852,123593326,897324976,951258429,734789863,813165778,36937226,391512331,982611375,333803600,643583132,225111623,908397726,868265725,250209317,350530521,112860457,473509758,486379093,719224003,369727400,57915579,987035752,981159824,89800167,946243449,602926468,700485944,512824568,975234266,472714770,518727946,13811045,55904300,369412361,311064101,247016193,663177164,119675998,929877709,423101923,939864710,54668756,766874066,604189347,380169129,609163431,573888697,308007846,646341950,99013351,967426774,742117559,882313760,454173422,113201380,385038259,893219590,107464130,767771534,762277615,368134603,28338395,674651280,483290944,604980212,888072041,671923828,530148624,890810171,507951986,949843913,234248387,939719387,945053670,984026476,514309898,12509017,712699055,445890853,606042189,667693508,602133053,930027473,574121374,747974516,595831753,572115671,992496549,647331696,391233674,319436105,103700518,287158027,254061152,136811148,308935767,302239275,735777099,980417148,110112151,922138973,395110126,542752422,589011845,41240712,259365870,870911457,868744393,409032361,223812650,142977853,170493724,595786477,241140381,138753631,101306237,205156239,734448834,760742138,551243220,752189629,849881294,733186163,989950017,349970111,633094321,444068183,37000900,890451722,549681819,76798174,216593974,726134415,403907958,397765279,660595021,22091440,835070118,789311752,949765990,465532230,896432315,667195421,663500181,176948880,462376689,554935373,984969154,608410297,648100803,819477066,472639263,297804396,601752585,332402801,244401529,544102689,917713733,420370019,841185856,128056531,42442876,512306296,68472452,679522667,952091386,264568221,507337060,501721118,652808230,527082529,498892468,862002327,941152245,658061174,752081978,825636938,119224933,990518584,245689492,286308311,928287654,680639862,962465346,413846495,41009345,899918924,687682869,5850659,142054157,247429810,561589760,612302206,895754854,604765229,708603168,283051336,378190484,922102634,442006737,995166650,272373982,333397662,382023033,854229395,714000177,655933906,161187141,766628985,18815662,532342603,662830526,325960586,163193063,352473027,938572870,551807916,390116806,581880595,984226883,480189554,354792855,953131955,105881440,869649358,614513894,272447777,72810667,689496307,159757607,623452320,411971155,567551340,191941968,118666426,328375759,285715725,800747681,416356524,219220892,838156257,845165895,433057189,974071200,893462591,496121644,998235309,499052657,943041209,161184865,355197692,472462774,216122682,836382547,904310561,153920752,893225936,91057730,32313020,758592354,899186897,118141256,181215289,319713070,170144462,446210007,806325546,178753257,289796276,560488534,255297756,522467379,682389542,839400995,130167160,91411734,615008355,465628504,444494258,154141632,81061279,57931180,272601878,882422037,567025638,613268917,587239408,632927707,696418533,742474002,144611372,284255989,568734769,540455862,359499946,907554141,432173126,239477225,989967696,793467697,690782790,635015641,239739913,104535224,209419695,587366336,520558844,60480455,473245415,666036849,54165360,339865445,311435954,252605509,475551165,768348796,184863867,811667565,881180096,482258104,142921224,557129342,46913089,782088134,486316144,787260413,949934210,571668899,414829203,124277180,151524203,375848551,238081246,723522848,60871208,201574376,513179517,699372432,843735106,706798796,252263496,533626983,47415212,153020226,695244994,588606505,6631276,720556341,111228744,290272690,951743269,269767294,539075594,801887667,64395344,467881170,530222179,835596806,957583913,925016430,840390608,195881336,121130312,319872372,444933509,128752094,866770504,218970532,243352082,604837025,581718541,640879288,469209407,938215854,166911613,944244971,516763872,721915222,969387026,139832363,419686114,340883798,123476040,614445833,92282133,924353663,622096714,19012425,927250668,264283484,766411424,811249633,87503272,440453431,667440374,852788794,421676880,342559126,149545057,232662490,918807000,65608754,186544269,510383391,106888267,542618183,203525994,415335491,77272336,704925200,87889969,437544576,469719904,804802582,982385607,193686856,342665130,585298917,527333673,346604916,587693188,457319163,691863879,298299263,829233084,99792969,116002352,212118389,460670920,553374660,529553348,556553951,539636124,204993795,499494521,779147327,4689941,354818296,782829858,752341031,168866259,377639616,98939484,292856586,857944283,823517912,654128725,639724302,684320587,137451170,121612239,969694597,149361379,301177315,322408895,548624817,78365336,132366457,498560841,153513029,837861228,829001115,79186165,381093830,221842936,273864456,824841598,104581783,368876340,940789599,274323974,790559281,578109808,920300855,819942703,982992894,819053985,413126232,615106988,746562569,518214820,193701547,125175598,317752403,952234960,785364643,540536945,522102985,443260045,875006163,825937666,235667028,855608497,535290472,901302880,359140571,415809280,922126692,393901600,57570010,195163372,292211563,55518527,352228245,665719219,75338619,375488774,667345799,478821025,209580140,103300467,664596232,269235379,336069785,528923770,285195710,247044467,435061603,664008046,416304002};

int main(){
  freopen("1.in","r",stdin);
  freopen("1.out","w",stdout);
  int ans,n; scanf("%d",&n); 
  //for(int i=1;i//  ans=(ans+Pow(i,P-2))%P;
  //  if(i%1000000==0) printf("%d,",ans);
  // }
  ans=ANS[n/1000000];
  for(int i=(n/1000000)*1000000+1;i<=n;i++)
    ans=(ans+Pow(i,P-2))%P;
  ans=(ans-1-(P+1>>1))%P;
  ans=(1LL*n*((P+1>>1)-Pow(n,P-2))%P-ans)%P;
  ans=4LL*ans%P;
  printf("%d\n",(ans+P)%P);
  return 0;
}

你可能感兴趣的:(数学,排列组合)