




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
ACM模板-原稿在blog上,以后我會接著使用原稿來進(jìn)行修末了,一下,本模板中內(nèi)容并非完全個人,關(guān)于模板這個問題,大家都了解,有很多算法的模板代碼差不多已嚴(yán)謹(jǐn)性以及通用性,我不太認(rèn)為能力可以完全自己寫出符合修正,最后形成的比較成模板代碼,不信可以查看一些比較 fzyj'sblog(構(gòu)分開,這兩者又是關(guān),交集甚廣,而為了我們更方經(jīng)過再三權(quán)衡,最終我定下了八種分類,分別有STL標(biāo)準(zhǔn)模板 Number數(shù) String字符 Graph圖 Network網(wǎng)絡(luò) Structure數(shù)據(jù)結(jié) Geometry計算幾 Other其 C\C++ACMer而準(zhǔn)備的,而STL是C++在ACM中濃?重彩的一STLSTL簡 STL STL STL STL STL STL STL STL STL STL Number歐拉函數(shù) 線性方程組(高斯消元 模線性方程(組 素數(shù)相 合數(shù)相 組合數(shù)學(xué)相 Polya計 約瑟夫環(huán)問 博弈 周期性方 階 排列組 求逆 16.17.整數(shù)劃18.A^B約數(shù)19.莫比烏斯反20.Baby-StepGiant-21.Simpson積22.多項式求根(牛頓法23.星期問題(基姆公式24.漢諾25.斐波那契數(shù)26.1/n27.最大128.矩陣相29.反素30.容斥31.母函32.數(shù)論相關(guān)公String 編輯距 KMP算 KMP拓 最短公共祖 Karp-Rabin算 Manacher算 strstr函 Sunday AC自10.后綴數(shù)后綴自 108字符串 Graph最短 第K短 最小生成樹(森林 次小生成 曼哈頓最小生成 歐拉路 DAG的深度優(yōu)先搜索標(biāo) 圖的割點、橋和雙連通分支的基本概 無向圖找 無向圖連通度(割 最大團(tuán)問 最小樹形 一般圖匹配帶花 生成樹計 有向圖的最小樹形 有向圖的強(qiáng)連通分 弦圖判 弦圖的Perfecimination點排 穩(wěn)定問 拓?fù)渑?雙連通分 無向圖連通分 有向圖強(qiáng)連通分 有向圖最小點 Floyd求最小 2- 樹的重 二分圖匹配相 無向圖最小 最大 最小費用 有上下界的 最佳邊割 最佳點割 最小邊割 最小點割 最小覆蓋問 Structure劃分 左偏 線段 伸展 動態(tài) Trie 樹鏈剖 二分查 樹狀數(shù) 滾動數(shù) 逆序 帶權(quán)的并查 快 兩臺機(jī)?工作調(diào) 大數(shù)相 取第K個元 最長公共遞增子序 0-1分?jǐn)?shù)規(guī) 最長有序子序 最長公共子序 最少找硬幣問 棋盤分 區(qū)間最大頻 堆 莫隊算 背包相 使序列有序的最少交換次 GeometryGraham求凸 判斷線段相 判斷四點共 判斷線段與圓是否 10.11.LiucticOther MainSTL 1.1關(guān)于STL(StandardTemplaibrary,標(biāo)準(zhǔn)模版庫)是C++語言標(biāo)準(zhǔn)中的重要組成部分。STL以 組)、list(列表,類似于鏈表)、deque(雙向隊列)、set(集合)、map(映像)、 ?,用以存取容?中的元素。有趣的是,普通的指針也可以像迭代 般的工作 UglyUglynumbersareUglyUglynumbersarenumberswhoseonlyprimefactorsare2,3or1,2,3,4,5,6,8,9,10,12,15,typedefstd::pair<unsignedlong,int>intmain(intargc,constchar*{std::priority_queue<node_type,std::vector<node_type>,std::greater<node_type>>Q;Q.push(std::make_pair(1,2));for(inti=0;i<1500;{node_typenode=Q.top();switch{casecase3:case5:*2,*3,*5,}result[i]= }intwhile(n>{std::cout<<result[n-1]<<'\n';std::cin>>n;}return}1.2使用在C++標(biāo)準(zhǔn)中,STL被組織為以下 組頭文件(注意,是沒有.h后綴的int{//...int{//...}如果希望在程序中直接STL,也可以在嵌入頭文件后,用usingnamespace語句將std命int{//... 但是需要強(qiáng)調(diào)的是,在實際的開發(fā)中,不建議直接導(dǎo)入std命名空間,而在ACM/ICPC競賽中,直接導(dǎo)入會有很大的優(yōu)勢,提高編碼效率。所以我們要分清楚是競賽還是實際 有的同學(xué),建議可以在有 些STL的使用經(jīng)驗后,認(rèn)真閱 下《C++STL》這書STL關(guān)于 使用pair<double,double>p;cin>>p. 定 個pair對象表 個平面坐pair<double,double>p;cin>>p. 在UglyNumbers的實現(xiàn)代碼中(1.1),就可以用pair來表示推演樹上的結(jié)點, <utility>看上去是個很簡單的頭文件,但是<utility>的設(shè)計中卻濃縮反映了STL設(shè)計的基本思想。有意深入了解和研究STL的朋友,仔細(xì)閱讀和體會這個簡單的頭文件,不失為種入門的途STL關(guān)于使用set<int>s;定 個setset<int>s;set//返回指向 個元素的迭代//////如果集合為空,返回true(真//返回指向最 個 后的迭代?,不是最 個元//返回集合中與給定值相等的上下限的兩個迭代////返 個指向被查找到元素的迭代//返回集合的分配//元//返回指向大于(或等于)某值的 個元素的迭代//返 個用于元素間值比較的函////返回指向集合中最 個元素的反向迭代//返回指向集合中 個元素的反向迭代//////返回大于某個值元素的迭代//返 個用于比較元素間的值的函關(guān)于 multiset<int>s;multiset<int>s;STL關(guān)于在STL的<vect>頭文件中定義了vector(向量容?模版類),vectrvectr看作是以順序結(jié)構(gòu)實現(xiàn)的線性表。當(dāng)我們在程序中需要使用動態(tài)數(shù)組時,vectr將會是理想的選擇,vector可以在使用過程中動態(tài)地增長空間。使用 定義vector向量對//定 個空的vector對象的是int//定 個含有n個int元素的vector對 ,//定 個vector對象,并從由迭代 和last定義的序列 ,last) 初vector的基本操作 //直接以下標(biāo)方 容?中的元 // //返回尾元素 //向表 //返回表長 // // //返回指向首元素的隨機(jī)存取迭代 //返回指向尾元素的下 s.insert(it,val) //向迭代?it指向的元素前 s.insert(it,n,val) //向迭代?it指向的元素前 ,last)//將由迭代 和last所指定的序列 , 到迭代?it指向的元素前 //刪除由迭代?it所指向的元 ,last)//刪除由迭代? ,last) //預(yù)分配緩沖空間,使 改變序列長度,超出的元素將會全部被刪除,如果序列需要擴(kuò)展(原空間s.resize(n,val) 改變序列長度,超出的元素將會全部被刪除,如果序列需要擴(kuò)展(原空間 //刪除容?中的所有元素//將s與 個vector對象進(jìn)行交 ,//將序列替換成由迭代 和last所指定的序列 , ,last)不能是原序列中 部//要注意的是,resize操作和clear操作都是對表的有效元素進(jìn)行的操作,但并不 //另外,vector還有其他 些操作,如反轉(zhuǎn)、取反等,不 列vector上還定義了序列之間的比較操作運算符(>、<、>=、<=、==、!=),可以按照字典序比//還是來 些示例代碼吧*輸入個數(shù)不定 組整數(shù),再將這組整數(shù)按倒序輸int{intx;while(cin>>{}for(inti=L.size()-1;i>=0;i--{cout<<L[i]<<"}cout<<returnreturn}STL關(guān)于字符串是程序中經(jīng)常要表達(dá)和處理的數(shù)據(jù),我們通常是采用字符數(shù)組或字符指針表示字符STL為我們提供了 種使用起來更為便捷的字符串的表達(dá)方式:string。string類的定義在頭文<string>中使用string類其實可以看作 個字符的vector,vector上的都可以適用于string,另外int{strings=" cin>>name;int{strings=" cin>>name;s+='!';cout<<s<<endl;return0;}1064--Parencoding(吉林大學(xué)OJ)int{intcin //pstringstr; //用來存放還原出來的括號字符串intleftpa=0; //記錄已經(jīng)出現(xiàn)的左括號的總數(shù)for(inti=0;i<m;i++){intcin>>for(intj=0;j<p-leftpa;{str+=}str+=')';}return}STL關(guān)于包裝。這里我們不去深入STL的stack和queue的實現(xiàn)細(xì)節(jié),而是來了 些他們的基本使用stack模版類的定義在<stack>頭文使用 stack<int>s;定義stackstack<int>s;s.push(x);//s.push(x);//入棧 //出 棧頂s.empty();//當(dāng)??諘r,返回true 1064--Parencoding(吉林大學(xué)string和stackint{intcin>>for(inti=0;i<n;{intcin>>m;stringintleftpa=for(intj=0;j<m;{intcin>>for(intk=0;k<p-leftpa;{str+=}str+=')';leftpa=}stack<int>for(string::iteratorit=str.begin();it!=str.end();{if(*it=={}{{intp=cout<<p<<"";if(!s.empty()){s.top()+=}}cout<<}}return}STL關(guān)于包裝。這里我們不去深入STL的stack和queue的實現(xiàn)細(xì)節(jié),而是來了 些他們的基本使用queue模版類的定義在<queue>頭文件中使用 定義queue對象queue<int>q;queue<int>q; q.push(x);//入隊q.push(x);//入隊//出隊隊首元隊尾元//判斷隊列是否為//隊列中的元素個關(guān)于在<queue>頭文件中,還定義了另個非常有用的模版類priority_queue(優(yōu)先隊列)。優(yōu)先使用 priority_queue<int>priority_queue<pair<int,int> //注意在priority_queue<int>priority_queue<pair<int,int> //注意在兩個尖括號之 定要留空格,防止誤priority_queue<int,priority_queue<int,vector<int>,greater<int> ////如果隊列為空,則返回true,否則返回//如果隊列為空,則返回true,否則返回//返回隊列中元素的個//刪除隊首元素,但不返回其//返回具有最高優(yōu)先級的元素值,但不//在基于優(yōu)先級初學(xué)者在使用priority_queue時,最的可能就是如何定義比較算子了。如果是基本數(shù)據(jù)類子。如果要定義自己的比較算子,方法有多種,這里介紹其中種:重載比較運算符。優(yōu)先隊列試圖這兩個元素x和y代入比較運算符(對于less算子,調(diào)用x<y,對于greater算子,調(diào)用x>y),若結(jié)果為真,則x排在y前面,y將先出隊列,反之,則y排在x前面,x將先出隊列 (算子實現(xiàn)示例classclass{intx,y,T(inta,intb,intc):x(a),y(b),z(c)booloperator<(constT&tOne,constT{returntOne.ztTwo.z;//按照z的順序來決定tOne和tTwo的順}int{q.push(T(4,4,3));q.push(T(2,2,q.push(T(1,5,q.push(T(3,3,while{Tt=cout<<t.x<<""<<t.y<<""<<t.z<<}return}44152233 * 如 個例子中的比較運算符重載為boolbooloperator<(constT&tOne,constT{returntOne.ztTwo.z;//按照z的順序來決定tOne和tTwo}則會得到和第二個例 樣的結(jié)果,所以,決定算子的是比較運算符重載函數(shù)的返回值STL關(guān)于 使用可以將map看作是由Key標(biāo)識元素的元素集合,這類容?也被稱為“關(guān)聯(lián)容?”,可以通 Key值來快速決 個元素,因此非常適合于需要按照Key值查找元素的容? map<string,int>map<string,int>/*向map中元/*向map中元素m[key]=value; //[key]操作是map很有特色的操作,如果在map中存在鍵值為key的元素對,則返回該元素對的值域部分,否則將會創(chuàng)建 m.insert(make_pair(key,value));//也可以直接調(diào)用insert方法元素對,insert操作會返回 /*查找元素inti=m[key]; //要注意的是,當(dāng)與該鍵值相匹配的元素對不存在時,會創(chuàng)建鍵 map<stringint>::iteratoritm.find(key);//如果map中存在與key相匹配的鍵值時,find操作將返/*刪除元素 //刪除與指定key鍵值相匹配的元素對,并返回被刪除的元素的個數(shù) //刪除由迭代?it所指定的元素對,并返回指向 個元素對的迭代?/*其他操作 // // //int{M_TYPRmyTestMap[3]="No.3";myTestMap[5]="No.5";myTestMap[1]="No.1";myTestMap[2]="No.2";M_ITitStop=cout<<"myTestMap[2]="<<itStop->second<<endl;itStop->second="No.2Aftermodification";cout<<"myTestMap[2]="<<itStop->second<<endl;cout<<"Mapcontents:"<<endl;for(M_CITit=myTestMap.begin();it!=myTestMap.end();{cout<<it->second<<}return}MyTestMap[2]=No.2AftermodificationMapcontentsNo.2Afterint{m["one"]=1;m["two"]=幾種不同的insertm.insert(make_pair("three",m.insert(map<string,int>::value_type("four",m.insert(pair<string,int>("five",stringwhile(cin>>{map<string,int>::iteratorit=m.find(key);if(it==m.end()){cout<<"Nosuchkey!"<<}{cout<<key<<"is"<<it->second<<coutcout<<"Erased"<<m.erase(key)<<}}return}STL關(guān)于 了可以指定下標(biāo)的bit位以外,還可以把它們作為 使用定義bitsetconstintMAXN=bitset<MAXN>bt; //bt包括定義bitsetconstintMAXN=bitset<MAXN>bt; //bt包括MAXN位,下標(biāo)0~MAXN-1,默認(rèn)初始化為0bitset<MAXN>bt1(0xf); //0xf表示十六進(jìn)制數(shù)f,對應(yīng)二進(jìn)制1111,將bt1低4位初始化為1bitset<MAXN>bt2(012); //012表示八進(jìn)制數(shù)12,對應(yīng)二進(jìn)制1010,//即將bt2低4位初始化為1010bitset<MAXN>bt3("1010"); //將bt3低4位初始化為1010bitset<MAXN>bt4(s,pos,n); //01字符串spos位開始的n位初始化bt4os<<//bt中是否存在置為1的二進(jìn)//bt中不存在置1的二進(jìn)制//bt中置1的二進(jìn)制位的個//bt中二進(jìn)制位的//btpos處的二進(jìn)制//bt中在pos處的二進(jìn)制位是否為//bt中所有二進(jìn)制位都置為//把bt中在pos處的二進(jìn)制位置為//bt中所有二進(jìn)制位都置為//bt中在pos處的二進(jìn)制位置為//bt中所有二進(jìn)制位逐位取//btpos處的二進(jìn)制位//同//用bt中同樣的二進(jìn)制位返 個unsignedlong//bt中的位集輸出到osconstconstintMAXN=intmain(){cout<<bt<<returnreturn} STL關(guān)于 STL中關(guān)于iterator(迭代?)的實現(xiàn)和使用時相當(dāng)復(fù)雜的,這里我們暫時不去詳細(xì)關(guān) 前向iterator(迭代?),隊列中的值,并可以向前移動到 個位置(++p,雙向iterator(迭代?),隊列中的值,并可以向前后遍歷容?;隨機(jī)向iterator(迭代?),可以直接以下標(biāo)方式對容?進(jìn)行,vector的iterator(迭代?)就是這種iterator(迭代流iterator(迭代?),可以直接輸入、輸出流中使用int{for(inti=0;i<10;{int{for(inti=0;i<10;{}for(vector<int>::iteratorit=s.begin();it!=s.end();{cout<<*it<<"}cout<<return} intint{vector<int>s;copy(s.begin(),copy(s.begin(),s.end(),ostream_iterator<int>(cout,""));cout<<'\n';return}這段代碼中的copy就是STL中定義 個模版函數(shù),copy(s.begin(),ostream_iterator<int(cout的意思是將由s.begin()至s.end()(不含s.end())所指定的序列到標(biāo)準(zhǔn)輸出流out中,用作為每個元素的間隔。也就是說,這句話的作用其實就是將表中的所有內(nèi)用STL強(qiáng)大的算能。STL關(guān)于copy/copy_backward/count/count_ifequal/equal_rangefill/copy/copy_backward/count/count_ifequal/equal_rangefill/fill_n/find/find_end/find_generate/generate_n_of/find_if/includes/inplace_merge/lpare/make_heap/max/max_element/merge/min/min_element/mismatchnext_permutation/nth_elementpartial_sort/partial_sort_copy/partition/pop_heap/prev_permutation/push_heapsearch/search_n/set_difference/set_intersection/set_symmetric_difference/set_union/sort/sort_heap/stable_partition/stable_sort/swap/swap_ranges 112uilrit/for_each遍歷容intintvisit(int //{cout<<v<<"";return1;}class{//multInt(intf):factor(f)voidvoidoperator()(int&elem){elem*=}int{for(inti=0;i<10;{}cout<<'\n';cout<<'\n';return}0123456780246810121416int{for(inti=0;i<10;int{for(inti=0;i<10;{}vector<int>::iteratormin_it=min_element(L.begin(),L.end());vector<int>::iteratormax_it=max_element(L.begin(),L.end());cout<<"Minis"<<*min_it<<endl;cout<<"Maxis"<<*max_it<<return}程序輸出結(jié)果為MinisMaxisvoidPrint(vector<int>voidPrint(vector<int>{for(vector<int>::iteratorit=L.begin();it!=L.end();{cout<<*it<<"}cout<<}}int{for(inti=0;i<5;{}for(inti=9;i>=5;i--{}//return}012349876012345678987654321元intint{先初始化兩個向量vOne和vTwovector<int>vOne,vTwo;for(inti=0;i<=5;{vOne.push_back(10*}for(inti=0;i<=10;{vTwo.push_back(3*}cout<<"vOne=(for(vector<int>::iteratorit=vOne.begin();it!=vOne.end();{cout<<*it<<"}cout<<")"<<cout<<"vTwo=(for(vector<int>::iteratorit=vTwo.begin();it!=vTwo.end();{cout<<*it<<"}cout<<")"<<////將vOne到vTwo的中間(覆蓋掉原來數(shù)據(jù)copy(vOne.begin(),vOne.begin()+3,vTwo.begin()+cout<<"vTwowithvOneinsert=("for(vector<int>::iteratorit=vTwo.begin();it!=vTwo.end();{cout<<*it<<"}cout<<")"<<//在進(jìn),注意參數(shù)2copy(vTwo.begin()+4,vTwo.begin()+7,vTwo.begin()+cout<<"vTwowithshiftedinsert=("for(vector<int>::iteratorit=vTwo.begin();it!=vTwo.end();{cout<<*it<<"}cout<<")"<<return}vOne=(01020304050vTwo=(036912151821242730vTwowithvOneinsert=(03690102021242730vTwowithshiftedinsert=(0301020102021242730Number數(shù)歐拉函數(shù)參考:《合數(shù)相關(guān)》*分解質(zhì)因數(shù)法求解,getFactor(n)intmain(intargc,constchar*{//...intret=n;for(inti=0;i t;{ret=(int)(ret/factor[i][0]*(factor[i][0]-}return}constconstintMAXN=intintphi[MAXN+intmain(intargc,constchar*{for(inti=1;i<=MAXN;{phi[i]=}for(inti=2;i<=MAXN;i+={phi[i]/=}for(inti=3;i<=MAXN;i+={if(phi[i]=={for(intj=i;j<=MAXN;j+={phi[j]=phi[j]/i*(i-}}}return}unsignedeuler(unsigned{unsignedi,res=x; //unsigned==unsignedintfor(i=2;i<(int)sqrt(x*1.0)+1;i++){if(!(x%{res=res/i*(i-1);while(!(x%i)){x/= //保證 定是素}}}if(x>{res=res/x*(x-}return}**constintMAXN=intphi[MAXN+10];intprime[MAXN10];inttot; //素數(shù)個數(shù)voidphi_and_prime_table(int{phi[1]=1;tot=for(inti=2;i<=N;{if{phi[i]=i-1;}for(intj=0;j<tot;{if(i*prime[j]>{}check[i*prime[j]]=true;if(i%prime[j]==0){phi[i*prime[j]]=phi[i]*prime[j];}{phi[i*prime[j]]=phi[i]*(prime[j]-}}}} (intx,int{if(!x||{returnx>y?x:}for(intt;t=x%y,t;x=y,y=t);returny;}*求*求x,y使 (a,b)=a*x+b*intext(inta,intb,int&x,int{if(b=={x=y=return}intd=ext (b,a%b,x,y);intt=x;x=y=t-a/b*return}線性方程組(高斯消元列主元列主元gauss消去求解a*x[返回是否有 解,若有解在b[]#definefabs(x)((x)>0?(x):(-x))#defineeps1e-10constintMAXN={inti,j,k,row=0;doubleMAXP,temp;for(k=0;k<n;{for(MAXP=0,i=k;i<n;{if(fabs(a[i][k])>{MAXP=a[row=}}if(fabs(MAXP)<{return}if(row!={for(j=k;j<n;{temp=a[k][j];temp=b[k];b[k]=b[row];b[row]=temp;}}for(j=k+1;j<n;{a[k][j]/=for(i=k+1;i<n;{a[i][j]-=a[i][k]*}}b[k]/=for(i=n-1;i>=0;i--{for(j=i+1;j<n;{b[i]-=a[i][j]*}}}return}全主元全主元gauss消去解a[]*x[返回是否有 解,若有解在b[]#definefabs(x)((x)>0?(x):(-x))#defineeps1e-10constintMAXN={inti,j,k,row=0,col=0,index[MAXN];doubleMAXP,temp;for(i=0;i<n;{index[i]=}for(k=0;k<n;{for(MAXP=0,i=k;i<n;{for(j=k;j<n;{if(fabs(a[i][j]>{MAXP=a[row=i][col=}}}if(fabs(MAXP)<{return}if(col!={for(i=0;i<n;{temp=a[i][col];a[i][col]=a[i][k];a[i][k]=temp;}j=index[col];index[k]=j;}if(row!={for(j=k;j<n;{temp=a[k][j];a[row][j]=}temp=b[k];b[k]=b[row];}for(j=k+1;j<n;{a[k][j]/=for(i=k+1;i<n;{a[i][j]-=a[i][k]*}}b[k]/=for(i=k+1;i<n;{b[i]-=b[k]*}}for(i=n-1;i>=0;i--{for(j=i+1;j<n;{b[i]-=a[i][j]*}}for(k=0;k<n;{a[0][index[k]]=}forfor(k=0;k<n;{b[k]=}return}高斯消元 變元 類開關(guān)問題,位運算操作//高斯消元法求constintMAXN=有equ個方程,var個變元。增廣矩陣行數(shù)為equ,列數(shù)為var+1,分別為0到varintequ,var;int //增廣矩int //解int //用 變元(多解枚 變元可以使用int // 變元//返回值 1表示無解,為0是 解,否則返 變元個int{free_num=0;for(k=0,col=0;k<equ&&col<var;k++,{max_r=for(inti=k+1;i<equ;{if(abs(a[i][col])>{max_r=}}if(a[max_r][col]=={k--free_x[free_num++]= //這 變}if(max_r!={for(intj=col;j<var+1;{swap(a[k][j],}}for(inti=k+1;i<equ;{if(a[i][col]!={for(intj=col;j<var+1;{a[i][j]^=}}}}}for(inti=k;i<equ;{if(a[i][col]!={return-}}//if(k<{returnvar-}// 解,回for(inti=var-1;i>=0;i--{x[i]=for(intj=i+1;j<var;{x[i]^=(a[i][j]&&}}return}模線性方程(組參考:《》**模線性方程a*xbvoidmodeq(inta,intb,int{inte,i,d,x,d=ext (b,a%b,x,y);if(b%d>0){cout<<"No}{e=(x*(b/d))%n;for(i=0;i<d;{cout<<i+1<<"-thans:"<<(e+i*(n/d))%n<<}}}}模線性方程a=模線性方程a=B[1](%W[1]);a=B[2](%W[2]);...a=B[k](%其中W,B已知,W[i]>0且W[i]與W[j]互質(zhì),求a(中國剩余定理intchina(intb[],intw[],int{inti,d,x,y,m,a=0,n=1;for(i=0;i<k;i++){n*=w[i];//注意不能}for(i=0;i<k;{m=n/d=ext (w[i],m,x,y);a=(a+y*m*b[i])%}if(a>{return}{return(a+}}typedeflonglongtypedeflonglongintn,m;intmain(intargc,constchar*{intcin>>{cin>>n>>for(inti=0;i<m;{cin>>}for(inti=0;i<m;{cin>>}llllax=a[0],bx=b[0],x,y;intflag=0;for(inti=1;i<m;{lld= (ax,a[i],x,if((b[i]-bx)%d!={flag1;//}lltmp=a[i]/x=x*(b[i]-bx)/d; 約分x=(x%tmp+tmp)%tmp;bx=bx+ax*x;ax=ax* //ax=ax*a[i]/}if(flag==1||n<{}{llans=(n-bx)/ax+1;if(bx==0){ans--}}}return}素數(shù)篩選,判素數(shù)篩選,判斷小于MAXNnotprime 張表,false表示是素數(shù),true表示不constintMAXN=1000010;boolnotprime[MAXN];void{notprime[0]=notprime[1]=true;for(inti=2;i<MAXN;{ifif{if(i>MAXN/i){}后邊i*i溢出(或者i,j用long//直接從i*i開始就可以,小于i倍的已經(jīng)篩選過了for(intj=i*i;j<MAXN;j+=i){notprime[j]=}}}}素數(shù)篩選,查找出小于等于MAXN的素prime[0]constintMAXN=100000;intprime[MAXN+1];void素數(shù)篩選,查找出小于等于MAXN的素prime[0]constintMAXN=100000;intprime[MAXN+1];void{for(inti=2;i<=MAXN;i++){if{prime[++prime[0]]=}for(intj=1;j<=prime[0]&&prime[j]<=MAXN/i;{prime[prime[j]*i]=1;if(i%prime[j]==0){}}}}隨隨機(jī)素數(shù)測試(偽素數(shù)原理CALL:boolres=快速測試n是否滿足素數(shù)的“必要”對于任意奇數(shù)n>2和正整數(shù)s,算法出錯概率≤2^(-intwitness(inta,int{intx,d=inti=ceil(log(n-1.0)/log(2.0))-forfor(;i>=0;i--{x=d=(d*d)%if(d==1&&x!=1&&x!=n-{return}if(((n-1)&(1<<i))>{d=(d*a)%}}return(d==1?0:}intmiller(intn,ints={if(n //質(zhì)數(shù)返回{return}if(n20)//偶數(shù)返回{return}intj,for(j=0;j<a;{a=rand()*(n-2)/RAND_MAX+//rand()只能隨機(jī)產(chǎn)生[0,RAND_MAX)//而且這個RAND_MAX只有32768直接%n也產(chǎn)生不了[RAND_MAX,n)之間的數(shù)if(witness(a,n)){return}}return}#define#defineMAXL#defineM10#defineZ10constintzero[MAXL-1]={0};structbnum{intdata[MAXL];//斷成每截9//void{charbuf[32];scanf("%s",intlen=(int)strlen(buf);inti=0,k;while(len>={for(k=len-Z10;k<len;{data[i]=data[i]*10+buf[k]-}len-=}if(len>{for(k=0;k<len;{data[i]=data[i]*10+buf[k]-}}}booloperator==(constbnum{returnmemcmp(data,x.data,sizeof(data))==}bnum&operator=(constint{data[0]=x;return}bnumoperator+(constbnum{inti,carry=0;bnumans;for(i=0;i<MAXL;{ans.data[i]=data[i]+x.data[i]+carry;carry=ans.data[i]/M10;ans.data[i]%=}return}bnumoperator-(constbnum{inti,carry=0;bnumans;for(i=0;i<MAXL;{ans.data[i]=data[i]-x.data[i]-carry;if(ans.data[i]<0){carry=1;}{carry=}}return}//assume*this<x*bnumoperator%(constbnum{intfor(i=MAXL-1;i>=0;--{if(data[i]<{return}elseif(data[i]>{}}return((*this)-}bnum&{inti,carry=0,for(i=MAXL-1;i>=0;--{tmp=data[i]&data[i]=(data[i]+carry)>>1;carry=tmp*M10;}return}bool{return(data[0]&1)==}bool{for(inti=0;i<MAXL;{if{return}}return}voidmulmod(bnum&a0,bnum&b0,bnum&p,bnum{bnumtmp=a0,b=b0;ans=0;while{if{ans=(ans+tmp)%}tmp=(tmp+tmp)%p;}}voidpowmod(bnum&a0,bnum&b0,bnum&p,bnum{bnumtmp=a0,b=b0;ans=1;while{if{mulmod(ans,tmp,p,}mulmod(tmp,tmp,p,tmp);}}boolMillerRabinTest(bnum&p,int{inti,small=0,j,d=0;for(i=1;i<MAXL;{if{}}if(i=={//smallintegertestif(p.data[0]<2){return}if(p.data[0]=={return}small=}if{returnfalse;//even}bnuma,s,m,one,pd1;one=1;s=pd1=p-one;while{}for(i=0;i<iter;{if(small){a.data[0]=a.data[0]%(p.data[0]-1)+}{a.data[1]=a.data[0]/M10;a.data[0]%=M10;}if(a=={}powmod(a,s,p,for(j=0;j<d&&!(m==one)&&!(m==pd1);{mulmod(m,m,p,}if(!(m==pd1)&&j>{return}}return}int{bnumreturnreturn}factor[i][0]factor[i][1]t存放合數(shù)分解出的素數(shù)個數(shù)(相同的素數(shù)只 次constintMAXN=10000;intprime[MAXN+1];//獲取素void{for(inti=2;i<=MAXN;i++){if{prime[++prime[0]]=}for(intj=1;j<=prime[0]&&prime[j]<=MAXN/i;{prime[prime[j]*i]=1;if(i%prime[j]==0){}}}} //合數(shù)分intgetFactors(longlong{t=longlongtmp=for(inti=1;prime[i]<=tmp/prime[i];{ t][1]=if(tmp%prime[i]=={ t][0]=prime[i];while(tmp%prime[i]=={tmp/=}}}if(tmp!={ t][0]= t++][1]=}}{1,2,{1,2,n}的r組合a1a2ar出現(xiàn)在所有r組合中的字典序位置index=C(n,r)-C(n-a1,r)-C(n-a2,r-1)-…-C(n-ar,,C(n,m)表示n中取m的組k*k*C(n,k)=n*C(n-1,k-C(n,0)+C(n,2)+…=C(n,1)+C(n,3)+1*C(n,1)+2*C(n,2)+…+n*C(n,n)=n*2^(n-C_n=C_n=C(2*n,n)/(n+C_n=(4*n-2)/(n+1)*C_n-1C_1=1s(p,k)是將p個s(p,k)是將p個物體排成k個非空的循環(huán)排列的方法數(shù)(或者:把p個人排成k個非空圓圈的方法數(shù))s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-S(p,k)=kS(p,k)=k*S(p-1,k)+S(p-1,k-S(p,0)=0,(p>=1);S(p,p)=1,(p>=S(p,11,(pS(p,2)=2^(p-1)-1,(p>=S(p,p-1)=C(p,B_p=B_p=S(p,0)+S(p,1)+…+S(p,B_p=C(p-1,0)*B_0+C(p-1,1)*B_1+…+C(p-1,p-1)*B_(p-intcom(intn,intintcom(intn,int{if(n-r>{r=n-}inti,j,s=for(i=0,j=1;i<r;{s*=(n-//returnC(n,//C(n,r)=C(n,n-forfor(;j<=r&&s%j==0;{s/=}}return}組合數(shù)C(a,b)(預(yù)處理typedeflonglongconstllMOD1e9 //必須為質(zhì)數(shù)才管constllMAXN=1e5+ll //階ll //llQPow(llx,ll{llret=lltmp=x%while{if(n&{ret=(ret*tmp)%}tmp=tmp*tmp%MOD;n>>=1;}return}void{fac[0]=for(inti=1;i<MAXN;{fac[i]=fac[i-1]*i%}inv[MAXN-1]=QPow(fac[MAXN-1],MOD-for(inti=MAXN-2;i>=0;i--{inv[i]=inv[i+1]*(i+1)%}}llC(lla,ll{if(b>{return}ifif(b=={return}returnfac[a]*inv[b]%MOD*inv[a-b]%}集合劃分問n元集合分劃為k類的方案數(shù)記為S(n,k),稱為第二類Stirling數(shù)如{A,B,C}可以劃分{{A},B},{C}},{{A,B},{C}},{{BC},{A}},A,C},{B}{A,B,C}} 個集合可以劃分為不同集合(1...n個)的種類CALL:compute(N);每當(dāng)輸 個n,輸出constintN=2001;intdata[N][N],voidNGetM(intm,int //mn個集{//data[i][j]i個數(shù)分成j個集合intmin,i,j;data[0][0]=for(i=1;i<=m;{data[i][0]=}for(i=0;i<=m;{data[i][i+1]=}for(i=1;i<=m;{if(i<{min=}{min=}for(j=1;j<=min;{data[i][j]=(j*data[i-1][j]+data[i-1][j-}}return}voidcompute(int{//b[i]:Bell數(shù)NGetM(m,m);intinti,for(i=1;i<=m;{for(j=0;j<=i;{B[i]+=}}return}#defineMOD1000000007typedeflonglongLLquickPower(LLa,LL{LLans=1;a%=while{if(b&{ans=ans*a}b>>=a=a*a%}return}LLc(LLn,LL{if(m>{return}LLans=for(inti=1;i<=m;{LLa=(n+i-m)%MOD;LLb=i%MOD;ans=ans*(a*quickPower(b,MOD-2)%MOD)%}return}LLlucas(LLn,LL{if(m=={return}returnc(n%MOD,m%MOD)*lucas(n/MOD,m/MOD)%}intintmain(intargc,constchar*{LLn,while(~scanf("%lld%lld",&n,{LLmax,min;max=n+m-3;min=m-1;printf("%lld\n",lucas(max-1,min-}return}*c種顏色的珠子,組成長為s的項鏈 (inta,int{returnb?(b,a%b):}intmain(intargc,constchar*{intc,while(cin>>c>>{intlonglongp[0]=1; //powerofcfor(k=0;k<s;k++){p[k+1]=p[k]*}//reflectionlonglongcount=s&1?s*p[s/2+1]:(s/2)*(p[s/2]+p[s/2+//rotationfor(k=1;k<=s;{count+=p[(k,s)];count/=2*s;}cout<<count<<}return}般解*n個人1...n),先去掉第m個數(shù),然后從m+1個開始報*報到k的退出,剩下的人繼續(xù)從1開始報數(shù).求勝利者 intmain(intargc,constchar*{intn,k,while(cin>>n>>k>>m,n||k||{inti,d,s=for(i=2;i<=n;{s=(s+k)%}k=k%n;if(k=={k=}d=(s+1)+(m-if(d>=1&&d<={cout<<d<<}elseif(d<{cout<<n+d<<}elseif(d>{cout<<d%n<<}}return}*nkunsignedlonglongn,int{cin>>n>>longlongy=k%2;longlongx=2,t=0;longlongz1=y,z2=x;while(x<=n){z1=y;z2=t=(x-y)/(k-ifif(t=={}y=y+t*k-((y+t*k)/(x+t))*(x+t);x+=t;}cout<<(z1+(n-z2)*k)%n+1<<endl;return0;}#define#define_MAXintintbash(intN,int{if(N%(K+1)=={return}return}int{intT;for(inti=0;i<T;{scanf("%d%d",a+i,b+}for(inti=0;i<T;{if(bash(a[i],b[i])=={}{}}return}intintmain(intargc,constchar*{intN,stone,tag=while(N--){tag^=stone;}tag為0則為后手贏,否則為先手贏printf("%c\n",tag==0?'B':'A');return0;}constintconstintMAX_DIG=//SG打f[]:可以取走的石//sg[]:0~n的SG函數(shù)//intf[MAX_DIG];intvoidgetSG(int{for(inti=1;i<=n;i++){for(intj=1;f[j]<=i;j++){hash[sg[i-f[j]]]=}for(intj0;jn //求mes{}中未出現(xiàn)的最小{if(hash[j]=={}}}}SGconstconstintMAX_DIG=////SSG函數(shù)要初始化為-1對于每個集合只需初始化1//n是集合s的大小S[i]是定義的特殊 則的數(shù)intintn;intSG_dfs(int{ifif(sg[x]!=-{return}boolvis[MAX_DIG];for(inti=0;i<n;i++){if(x>={SG_dfs(x-vis[sg[x-s[i]]]=}}intfor(inti=0;;{if{e=i;}}returnsg[x]=}10.3intint{intt,a,b,m,while(t--){if(a>b){a^=b^=a;a^=}m=b-k=(int)(m*(1+sqrt(5))///m=?*//k=m///?://如果ak,則為后手贏,否則先手贏(奇異局)printf("%s\n",a==k?"B":"A");}return}周期性方程定義(n|a_1b_1c_1d_1e_1|=x_1---|e_2a_2b_2c_2d_2|=x_2---|d_2e_2a_2b_2c_2|=x_3---|c_4d_2e_2a_4b_4|=x_4---|b_5c_5d_5e_5a_5|=x_5---a[]bc[輸出:求解結(jié)果x在x[]constintMAXN=inta[MAXN];intb[MAXN];intc[MAXN];intvoid{c[0]/=a[0]/=x[0]/=for(inti=1;i<MAXN-1;{doubletemp=b[i]-a[i]*c[i-1];c[i]/=temp;x[i]=(x[i]-a[i]*x[i-1])/temp;a[i]=-a[i]*a[i-1]/temp;}a[MAXN-2]=-a[MAXN-2]-c[MAXN-for(inti=MAXN-3;i>=0;i--{a[i]=-a[i]-c[i]*a[i+x[i]-=c[i]*x[i+}x[MAXN-1]-=(c[MAXN-1]*x[0]+a[MAXN-1]*x[MAXN-x[MAXN-1]/=(c[MAXN-1]*a[0]+a[MAXN-1]*a[MAXN-2]+b[MAXN-for(inti=MAXN-2;i>=0;i--{x[i]+=a[i]*x[MAXN-}}階乘最后非0階乘最后非零位復(fù)雜度返回改為,n#defineMAXNconstintmod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,intintlastDigit(char{intlen=(int)strlen(buf);inta[MAXN],i,c,ret=1;if(len==1){returnmod[buf[0]-}for(i=0;i<len;{a[i]=buf[len-1-i]-}for(;len;len-=!a[len-{ret=ret*mod[a[1]%2*10+a[0]]%5;for(c=0,i=len-1;i>=0;i--){c=c*10+a[i];a[i]=c/5;c%=}}returnret+ret%2*}#definePIint#definePIint{intn,{a=(int)((0.5*log(2*PI*n)+n*log(n)-n)/log(10));printf("%d\n",a+1);}return}用遞歸實現(xiàn)多重循環(huán),本遞歸程序相當(dāng)于n重循環(huán),每重循環(huán)的長度為m的情況,所以輸出共輸入輸入樣例3輸出樣例000001011010**11*11#defineMAX_Nintn,int//相當(dāng)于n重循環(huán),每重循環(huán)長度為voidloop_permutation(int{intif(l=={for(i=0;i<n;{if(i<n-1){cout<<"}}return;}for(i=0;i<m;{rcd[l]=//n//每重循環(huán)長度為//在l位置放loop_permutation(l+1);//填 個位}}int{while(cin>>n>>{}return}全排輸入樣例312輸出樣例#defineMAX_Nint //共n個int //記錄每個位置填int //標(biāo)記數(shù)是int //存放輸入的n個{intif(l=={for(i=0;i<n;{if(i<n-1){}}return;}for(i0;in //枚舉所有的數(shù)(n個),循環(huán)從開{if //若num[i]沒有使用過則標(biāo)記used[i]=rcd[l]=num[i]; //在l位置放上該數(shù) //填下 used[i]=0; //清標(biāo)記}}}int{intif(scanf("%d",&n)=={return}for(i=0;i<n;{scanf("%d",}for(i=0;i<n;{used[i]=}return}intint{while{}return}程序通過used數(shù)組,標(biāo)記數(shù)是否被用過,可以產(chǎn)生全排列,共有n!種。但是,通過觀察會發(fā)現(xiàn),不重復(fù)排列DFS輸入樣例311輸出樣例111221#defineMAX_Nintn, //共有n個數(shù),其中互不相同的有mint intused[MAX_N];//標(biāo)記mint //存放輸入中互不相同的mvoidunrepeat_permutation(int{intif(l //填完了n個數(shù),{for(i=0;i<n;{if(i<n-1){}}return;}for(i=0;i<m;{if(used[i]>{used[i]--rcd[l]=//枚舉m//若數(shù)num[i]還沒被用完,//在l//填 個位//}}}int{inti,j,if(scanf("%d",&n)=={return}m=for(i=0;i<n;{scanf("%d",&val);for(j=0;j<m;j++){if(num[j]=={used[j]++;}}if(j=={num[m]=val;}}return}int{while{}return} int{charch[10];intlen=int{charch[10];intlen=(int)strlen(ch);sort(ch,ch+len);int{cnt=-1;for(inti=len-1;i>0;i--{if(ch[i]>ch[i-{cnt=i-for(intj=len-1;j>=0;j--{if(ch[j]>{chartmp=ch[j]^ch[cnt];ch[j]^=tmp;ch[cnt]^=for(intkik(ilen1)2;k++)//ch[cnt]和ch[j] tmp=ch[k]^ch[len-1+i-ch[k]^=ch[len-1+i-k]^=}}}}}}while(cnt!=-return}輸入n個數(shù)輸入n個數(shù),從中選出m個數(shù)可構(gòu)成集合,輸入樣例4123輸出樣例12121323#defineMAX_Nintn, //從n個數(shù)中選出m個構(gòu)成組int //記錄每個位置填int //存放輸入的n個{intbination(intl,intifif(l=={//若選出了m個數(shù)for(i=0;i<m;{if(i<m-1){}}return;}for(i=p;i<n;{rcd[l]=//上個位置填的是num[p-1],本次從num[p]//在lbination(l+1,i+ //填 個位}}int{intif(scanf("%d%d",&n,&m)=={return}for(i=0;i<n;{scanf("%d",}return}int{while{bination(0,}return}因為在組合生成過程中引入了變量p,保證了每次填入的數(shù)字在num中的下標(biāo)是遞增的,所以需要使用used進(jìn)行標(biāo)記,共C(n,m)種組合全組輸入樣例312輸出樣例11*12*1223#defineMAX_Nint //共n個int //記錄每個位置填int //存放輸入的n個 bination(intl,int{intfor(i0;il //每次進(jìn)入遞歸{if(i<l-1){}}for(ipin //循環(huán)同樣從p開始,但結(jié)束條件變?yōu)閧rcd[l //在l位置bination(l+1,i+ //填 個位}}int{intif(scanf("%d",&n)=={return}for(i=0;i<n;{scanf("%d",}return}int{while{bination(0,}return} 輸入n個數(shù),求這n個數(shù)構(gòu)成的集合的所有子集,輸入樣例311輸出樣例111113#defineMAX_Nintn //輸入n個數(shù),其中本質(zhì)不同的有mint //記錄每個位置填intused[MAX_N];//標(biāo)記m個數(shù)可以使用int //存放輸入中本質(zhì)不同的m個 bination(intl,int{intfor(i0;il //每次都輸{if(i<l-1){}}for(ipim; //循環(huán)依舊從p開始,枚舉剩下的本質(zhì)不{if(used[i //若還可以用則可用次{used[i]--rcd[l //在l位置放上bination(l+1,i);//填 個位 //可用次數(shù)恢}}}int{inti,j,if(scanf("%d",&n)=={return}}m=for(i=0;i<n;{scanf("%d",&val);for(j=0;j<m;j++){if(num[j]=={}}if(j=={num[m]=val;}}return}int{while{bination(0,}return}需要注意的是遞歸調(diào)用時,第二個參數(shù)是i,不再是全組合中的的基本算法框架常常是類循環(huán)排列、全排列、組合或全組。而不重復(fù)排列與不重復(fù)組合則是兩**擴(kuò)展歐幾里得法(求axby)//返回d (a,b);和對應(yīng)于等式ax+by=d中的x、longlong (longlonga,longlongb,longlong&x,longlong{if(a==0&&b=={return1;//無最大公約}if(b=={x=y=returnreturn}longlongd=extendy-=a/b*x;return(b,a%b,y,}//ax1(modlonglongmodReverse(longlonga,longlong{longlongx,longlongd=extend (a,n,x,y);if(d==1){return(x%n+n)%}{return1;//}}簡簡潔寫只能求a<m的情況,且a與m互求ax1(modm)的x值,即逆元(0alonglonginv(longlonga,longlong{if(a=={return}returninv(m%a,m)*(m-m/a)%}mod為素數(shù),而且a和m互//快速冪取longlongpowM(longlonga,longlongb,longlong{longlongtmp=1;if(b==0){return}if(b=={returna%}}tmp=powM(a,a>>1,m);tmp=tmp*tmp%m;if(b&{tmp=tmp*a%}return}longlonginv(longlonga,longlong{returnpowM(a,m-2,}typedeflonglongconstllMODtypedeflonglongconstllMOD1e9 //必須為質(zhì)數(shù)才管constllMAXN=1e5+ll //階ll //llQPow(llx,ll{llret=lltmp=x%while{if(n&{ret=(ret*tmp)%}tmp=tmp*tmp%MOD;n>>=1;}return}void{fac[0]=for(inti=1;i<MAXN;{fac[i]=fac[i-1]*i%}inv[MAXN-1]=QPow(fac[MAXN-1],MOD-for(inti=MAXN-2;i>=0;i--{inv[i]inv[i]=inv[i+1]*(i+1)%}}constdoublePI=acos(-//復(fù)數(shù)結(jié)構(gòu)struct{doublex,y; //實部和虛部x+yiComplex(double_x0.0,double_y0.0){x=_x;y=}Complexoperator-(constComplex&b){returnComplex(x-b.x,y-}Complexoperator+(constComplex&b){returnComplex(x+b.x,y+}Complexoperator*(constComplex&b){returnComplex(x*b.x-y*b.y,x*b.y+y*}//進(jìn)行FFT和IFFT前的反轉(zhuǎn)變//位置i和(i二進(jìn)制反轉(zhuǎn)后的位置)互//len必須去2的voidchange(Co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個人環(huán)保產(chǎn)業(yè)股份轉(zhuǎn)讓合同
- 二零二五年度醫(yī)療機(jī)構(gòu)與康復(fù)醫(yī)院醫(yī)生合作合同
- 二零二五年度股東債權(quán)債務(wù)清算與債務(wù)重組財務(wù)顧問協(xié)議
- 二零二五年度綠色養(yǎng)殖基地雇傭放羊合同
- 二零二五年度漁業(yè)資源保護(hù)與魚塘承包責(zé)任合同
- 2025年度生態(tài)農(nóng)業(yè)園招商引資合同性質(zhì)與生態(tài)循環(huán)農(nóng)業(yè)發(fā)展
- 二零二五年度養(yǎng)老護(hù)理勞務(wù)合同解除標(biāo)準(zhǔn)指南
- 《物流系統(tǒng)分析》課件 項目二任務(wù)四 掌握物流需求預(yù)測方法
- 2025年吉林b2從業(yè)資格證模擬考試題目
- 2025年濟(jì)南貨運從業(yè)資格證考試模擬考試答案大全
- 《家庭護(hù)士》課件
- 2024年社區(qū)工作者考試時事政治模擬題及答案
- 物業(yè)服務(wù)行業(yè)禮儀培訓(xùn)
- 22陳涉世家 司馬遷 公開課一等獎創(chuàng)新教學(xué)設(shè)計 度部編版初中語文九年級下冊
- 2021年飽和蒸汽及過熱蒸汽焓值表
- 《抗戰(zhàn)中的英雄人物》課件
- 外墻真石漆施工方案
- 森林防火安全生產(chǎn)工作
- 《服裝市場營銷》課件
- 【MOOC】實驗室安全學(xué)-武漢理工大學(xué) 中國大學(xué)慕課MOOC答案
- 網(wǎng)絡(luò)安全風(fēng)險評估報告模板
評論
0/150
提交評論