出題互測測試數(shù)據(jù)圖中圖_第1頁
出題互測測試數(shù)據(jù)圖中圖_第2頁
出題互測測試數(shù)據(jù)圖中圖_第3頁
出題互測測試數(shù)據(jù)圖中圖_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、圖中圖【問題描述】在看過碟中諜后,對“X 中 X”很感,于是想探究“圖中圖”?!皥D中圖”的外圖是一張由個大節(jié)點組成的有條邊(無重邊和自環(huán))的無向無權(quán)圖(不一定連通),外圖中的每個大節(jié)點的內(nèi)部又是一張由若干條邊組成的無向圖。想要構(gòu)一張“圖中圖”,對大節(jié)點之間的邊可以隨便連條,對每個大節(jié)點內(nèi)部的無向圖,有一種生成方法:先確定一個長度為的序列對于每個大節(jié)點,確定一個在中的區(qū)間, 那么在第個大節(jié)點中, + 3邊數(shù) =區(qū)間,中存在其中為在區(qū)間, 中比小的數(shù)字個數(shù),為區(qū)間, 中等于的數(shù)字個數(shù)。設(shè)為在區(qū)間, 中出現(xiàn)的不重復(fù)的數(shù)字個數(shù),那么每條邊上的權(quán)值可以取1的任意正整數(shù)?,F(xiàn)在,想要求出在給定, ,序列和每

2、個大節(jié)點的區(qū)間, 的情況下,有多少張不同的“圖中圖”,由于方案數(shù)可能很大,你只需要輸出方案數(shù)模后的 。*對于大節(jié)點,只關(guān)心邊的情況,而不關(guān)心點的情況,每個大節(jié)點中的邊是有標(biāo)號的,兩個方案不同當(dāng)且僅當(dāng),個大節(jié)點的連接狀況不同或者至少其中有一個大節(jié)點的其中一條邊的權(quán)值不同?!窘忸}】這道題目是自己 YY 的一道題,第一次自己 YY 題,實在有些渣,算法一眼就知道了。勿噴。享受比賽過程最重要。平均分 300 分是目標(biāo)。對于這道題目,其實把題目簡化就是求: =1(1)/2對于,相當(dāng)于是給了一個序列和一段區(qū)間, ,求3( + )區(qū)間 , 中存在 為區(qū)間, 中不同的數(shù)字的個數(shù),為區(qū)間中小于的數(shù)字個數(shù), _為

3、區(qū)間中等于的數(shù)字個數(shù)。算法一:對于的兩部分,可以分開來求。那么對于 =1可以先對所有數(shù)字離散化,那么序列中的數(shù)字都在1之間,然后枚舉每一個區(qū)間,然后枚舉, 中的每一個數(shù)字,用一個數(shù)組每個數(shù)字的出現(xiàn)次數(shù)。接著,枚舉每一種數(shù)字,用前綴和地來計算不同數(shù)字種數(shù)以及:數(shù)字個數(shù),就能方便( + 3)區(qū)間,中存在然后再用快速冪計算3( + ) 區(qū)間 , 中存在 那么計算這部分的復(fù)雜度就是()接著,再來計算(1)/2令 = (1), = ,那么也就是計算(0 106且!()!為質(zhì)數(shù)。那么由定理:當(dāng)(, ) = 1時,() 1 ( ) 得到!在模下就是(!)()1,( )!同理。的就可以預(yù)處理出1 2的! 和(

4、!)1 ,然那么后(1)求出組合數(shù)??臻g復(fù)雜度:( + 2)時間復(fù)雜度:( + 2)期望得分:30分算法二:對于 50%的數(shù)據(jù),數(shù)據(jù)只對, 有制約,而卻不再是質(zhì)數(shù)。那么,對于前面的那部分,還是可以按算法一的來求,對于組合數(shù),可以先對進行因式分解, = 1 2 ,求出對每個的,然12 _后用中國剩余定理進行合并。然后,問題就變成了如何求 = 1 = 12!, 這 里 (, ) = (, ) = 1 , 如 果令=!()!21 2 ,那么 = 0;否則, = 12 ,因為(, ) = 1,所以(, ) = 1,所以1 = ()1 。那么就是如何求!中包含的的個數(shù)以及!除去所有包含的后模的值。先解決

5、第一問:! = 1 2 3 ,那么把他按模分類,所有模不為0 的,可以先排除,對所有模為 0 的在這一次能貢獻(xiàn)出個,然后對所有模為 0 的都除以,那么問題就劃歸成求 !中包含的個數(shù),那么可以遞歸進行,復(fù)雜度為log 。代碼如下:Factor_Num(64 x)s=0;for (;x;x/=p) s+=x/p; return s;然后是第二問:同樣,對!按模分類,然后把連續(xù)的個一起算,那么這一層對的貢獻(xiàn)是 + , 然后對所有模為 0 的都除以,那么問題就劃歸成求 !中除去后的乘積,那么也可以遞歸進行,復(fù)2雜度為(log )其中為1中所有不能被整除的數(shù)的乘積。代碼如下:Calc_Except_P(

6、64 x)s=1;for (;x;x/=p)s=( return s;64)s*er(jcmo,x/mo,mo) % mo*jcx % mo % mo;空間復(fù)雜度:( + 105)2時間復(fù)雜度:( + 的質(zhì)因子數(shù) (105 + (log 105) )期望得分:50分 _算法三:其實,算法三完全是賣萌的。太水了。對于求組合數(shù)的部分,已經(jīng)滿足時間復(fù)雜度要求了,那么就是如何優(yōu)化第一部分求區(qū)間的時間復(fù)雜度了。本來題目在那個指數(shù)上不是三次方,是想要四次方的。然后邪惡的爆了 ,那么又要對指數(shù)對各個質(zhì)因子的模,最后也用中國剩余定理合并,并且由于算 先要對提出,然后判斷 是否超過,那么程序會比較麻煩,所以就出

7、了三次方,那么指數(shù)上的爆 的,所以可以先求出來,然后快速冪。然后就是怎么求?最大也是不會由于是區(qū)間數(shù)字統(tǒng)計類型的題,所以很容易就想到了需要的方法。把所有詢問區(qū)間按首端點的排序,然后把首端點在 ( + 1) 的一起做。具體方法就是枚舉,表示當(dāng)前要做區(qū)間首端點在( 1) 的詢問,把所有這些區(qū)間到相應(yīng)的末端點處,然后枚舉從 到,3時刻當(dāng)前的( + ) 以及當(dāng)前不同的數(shù)字?jǐn)?shù),每到一 , 區(qū)間中存在 這些數(shù)字,求出個區(qū)間的末端點處,的,然后在把這些數(shù)字去掉。然后就是怎么計算和刪除數(shù)字對的影響。一個數(shù)字:首先對3 的影響= ( + 1)3 3,然后是對影響=比大的不同的數(shù)字個數(shù),如果原來是沒有的,那的影響:么會產(chǎn)生主動影響=比小的數(shù)字?jǐn)?shù)量,并且不同的數(shù)字?jǐn)?shù)量加一。刪除一個數(shù)字:首先對3 的影響= ( 1)3 3,然后是對影響=-比大的不同的數(shù)字個數(shù),如果原來是一個的,那的影響:么會產(chǎn)生主動影響=-比小的數(shù)字?jǐn)?shù)量,并且不同的數(shù)字

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論