青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

pku3904 容斥原理的運(yùn)用,好題!

解法發(fā)現(xiàn)網(wǎng)上一個(gè)大牛寫的很好,就轉(zhuǎn)載過來吧。可憐的我,開始沒想到算法就算了,想到算法后又刻意依賴STL結(jié)果o(N)寫成o(logN)成功葬送。
解法

題意:給你n個(gè)數(shù),求GCD(gcd(a,b),gcd(c,d))=1的方案數(shù),注意a,b,c,d并不一定兩兩互質(zhì),有多組數(shù)據(jù)

本來這個(gè)題的題解有一大把,但沒有講題解的只有貼代碼的。

本來一直在做題,沒有什么時(shí)間發(fā)題解,但這個(gè)題加深了我對(duì)容斥原理的理解,所以講一下

這個(gè)題的算法是個(gè)偽多項(xiàng)式

首先,先將算法流程說一下,原理后面會(huì)有

Step 1:用篩法篩出10000內(nèi)的素?cái)?shù)表

Step 2:組合素?cái)?shù),用bool數(shù)組記錄由m(m<=5)個(gè)素?cái)?shù)相乘所得數(shù)的m的奇偶

例如:182=2*7*13 ———> m=3 so,bool[182]=false

            2=2 ——>m=1 so,bool[2]=false

            91=7*13 ——>m=2 so,bool[91]=true

            注意12=2^2*3等這種是B=p1^k1*p2^k2+...這種有質(zhì)因數(shù)指數(shù)不為一的合數(shù)不要處理因?yàn)椴粫?huì)用到

以上是預(yù)處理

Step 3:讀入當(dāng)前數(shù)為a,將a分解為質(zhì)因數(shù)形式,注意每個(gè)質(zhì)因數(shù)只被記錄一次

例如:12=2*2*3 則 12會(huì)被分為2*3,多余的2被消去了

Step 4:將分出的素?cái)?shù)進(jìn)行組合,將組合出的a的約數(shù)的time+1

例如:12=2^2*3——>12=2*3——>time[2]++,time[3]++,time[6]++

Step 5:處理之后,ans賦值為C(n,4)即n*(n-1)*(n-2)*(n-3)div 24

Step 6:for i 2-->10000

                if bool[i] then ans:=ans-C(time[i],4)

                               else ans:=and+C(time[i],4);

Step 7:輸出ans


原理:首先考慮一個(gè)問題,1000以內(nèi)6,7,8,9的倍數(shù)有多少個(gè)?答案是

1000div6+1000div7+1000div8+1000div9

-1000div(6*7)-1000div(6*8)-1000div(6*9)-1000div(7*8)-1000div(7*9)-1000div(8*9)

+1000div(6*7*8)+1000div(6*8*9)+1000div(7*8*9)

-1000div(6*7*8*9)

這是容斥原理的一個(gè)最簡(jiǎn)單的應(yīng)用,類比這道題,Step3到4其實(shí)將每個(gè)數(shù)a的不重復(fù)約數(shù)記錄了下來,有公共約數(shù)的四個(gè)數(shù)的方案要從ans中減去,多減的要加上

顯然m為奇時(shí)要減,m為偶時(shí)要加,這和”1000以內(nèi)6,7,8,9的倍數(shù)有多少個(gè)?“這個(gè)問題奇偶是反的,由于a最大為10000,所以m最大可以有5 (2*3*5*7*11<10000,2*3*5*7*11*13>10000)

至于12=2*2*3這種約數(shù)不處理因?yàn)榭梢苑譃?*6,而2和6會(huì)算一次,所以不須再算。


代碼:
 1 # include <cstdio>
 2 # include <map>
 3 # include <cstring>
 4 # include <algorithm>
 5 using namespace std;
 6 int pa[2000],pp=0,sa[10],sp=0;
 7 int refer[5][10001];
 8 void make_prime()
 9 {
10     bool used[10001];
11     memset(used,true,sizeof(used));
12     for(int i=2;i<=10000;i++)
13          if(used[i])
14          {
15              pa[pp++]=i;
16              for(int j=2*i;j<=10000;j+=i)
17                 used[j]=false;
18          }
19 }
20 void spilt(int n)
21 {
22     sp=0;
23     for(int i=0;i<pp&&n!=1;i++)
24         if(n%pa[i]==0)
25         {
26             sa[sp++]=pa[i];
27             while(n%pa[i]==0)
28                 n/=pa[i];
29         }
30 }
31 void putmap(int n)
32 {
33     spilt(n);
34     for(int i=1;i<(1<<sp);i++)
35     {
36         int n1=0,n2=1;
37         for(int j=0;j<5;j++)
38             if(i&(1<<j))
39                 n1++,n2*=sa[j];
40         refer[n1-1][n2]++;
41     }
42 }
43 long long c(int n)
44 {
45     return (long long)n*(n-1)*(n-2)*(n-3)/4/3/2;
46 }
47 long long getans(int n)
48 {
49     long long ans=c(n);
50     for(int i=0;i<5;i++)
51     {
52         bool flag=false;
53         for(int j=1;j<=10000;j++)
54             if(refer[i][j]>=4)
55                 flag=true,
56                 ans+=c(refer[i][j])*(i%2?1ll:-1ll);
57         if(!flag)break;
58     }
59     return ans;
60 }
61 int main()
62 {
63     int n;
64     make_prime();
65     while(scanf("%d",&n)!=EOF)
66     {
67         memset(refer,0,sizeof(refer));
68         for(int i=0;i<n;i++)
69         {
70             int t;
71             scanf("%d",&t);
72             putmap(t);
73         }
74         printf("%lld\n",getans(n));
75     }
76     return 0;
77 }

posted on 2012-02-17 02:03 yzhw 閱讀(421) 評(píng)論(0)  編輯 收藏 引用 所屬分類: combination math

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導(dǎo)航

統(tǒng)計(jì)

公告

統(tǒng)計(jì)系統(tǒng)

留言簿(1)

隨筆分類(227)

文章分類(2)

OJ

最新隨筆

搜索

積分與排名

最新評(píng)論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩1区2区3区| 欧美一区二区三区精品| 欧美三级电影一区| 免费观看国产成人| 久久一区二区三区超碰国产精品| 亚洲色图自拍| 亚洲一区二区三区在线播放| 国产一区二区三区免费不卡| 欧美午夜无遮挡| 国产精品区一区二区三区| 欧美视频二区36p| 国产女主播一区二区三区| 国产日韩在线播放| 亚洲国产精品精华液2区45| 日韩亚洲国产精品| 亚洲综合日韩在线| 久久亚洲私人国产精品va| 美女性感视频久久久| 亚洲国产乱码最新视频| 久久尤物视频| 亚洲日韩第九十九页| 一区二区欧美亚洲| 久久成年人视频| 欧美日韩高清在线| 国产亚洲欧美日韩在线一区 | 欧美丝袜一区二区| 国产精品日韩欧美一区二区| 精品粉嫩aⅴ一区二区三区四区| 亚洲欧洲在线视频| 欧美一区二区视频免费观看| 亚洲成色777777女色窝| 国产日韩欧美在线看| 欧美性开放视频| 亚洲专区免费| 免费看亚洲片| 欧美性事免费在线观看| 国产一区91精品张津瑜| 99亚洲精品| 欧美成人dvd在线视频| 亚洲私人影院| 欧美激情第1页| 亚洲成人在线网| 欧美一区二视频| 99在线精品视频在线观看| 久久久久久电影| 国产亚洲aⅴaaaaaa毛片| 一区二区冒白浆视频| 欧美成人免费全部观看天天性色| 亚洲视频免费在线| 欧美日韩亚洲精品内裤| 亚洲激情网站免费观看| 久久国产免费看| 亚洲综合精品四区| 欧美视频日韩视频| 日韩午夜精品| 亚洲福利视频网站| 久久免费视频这里只有精品| 国产午夜精品理论片a级探花| 亚洲一区在线直播| 亚洲九九九在线观看| 蜜臀久久99精品久久久画质超高清| 国产日韩欧美在线播放不卡| 欧美 日韩 国产 一区| 国产精品综合不卡av| 中文精品在线| 亚洲精品美女在线观看| 欧美阿v一级看视频| 亚洲国产精品成人久久综合一区| 久久久中精品2020中文| 欧美一区二区三区喷汁尤物| 国产美女在线精品免费观看| 午夜视频一区二区| 亚洲欧美日韩久久精品 | 免费在线观看精品| 久久久精品久久久久| 亚洲福利在线看| 亚洲大片精品永久免费| 欧美a级片一区| 一本色道久久综合亚洲精品高清 | 亚洲影视中文字幕| 亚洲深夜福利| 国产午夜久久| 亚洲国产高清高潮精品美女| 欧美α欧美αv大片| 免费一级欧美片在线观看| 亚洲国产高清视频| 一区二区日韩| 影音先锋日韩精品| 亚洲乱码久久| 黄色一区二区在线观看| 亚洲精品日产精品乱码不卡| 国产欧美日韩精品丝袜高跟鞋 | 亚洲在线观看视频网站| 亚洲欧美日本国产有色| 亚洲第一伊人| 亚洲网站在线看| 在线观看91精品国产麻豆| 亚洲人妖在线| 国产亚洲综合性久久久影院| 亚洲国产成人精品久久久国产成人一区| 欧美成人日本| 久久国产日本精品| 欧美激情性爽国产精品17p| 性色av一区二区三区红粉影视| 久久手机精品视频| 午夜国产不卡在线观看视频| 久久综合色88| 久久精品二区亚洲w码| 欧美xx视频| 免费一级欧美片在线播放| 国产精品盗摄一区二区三区| 玖玖综合伊人| 国产精品一区二区在线观看| 亚洲激情另类| 亚洲国产精品一区在线观看不卡| 亚洲欧美精品伊人久久| 一区二区欧美国产| 美日韩免费视频| 久久午夜影视| 国产一区久久久| 中文成人激情娱乐网| 亚洲巨乳在线| 美女露胸一区二区三区| 久久久国产精品一区二区三区| 欧美性做爰毛片| 一本久道综合久久精品| 99riav国产精品| 欧美久色视频| 亚洲伦理一区| 宅男噜噜噜66国产日韩在线观看| 欧美韩日一区| 日韩午夜在线| 亚洲性感激情| 国产精品久久久久久久第一福利| 日韩一级欧洲| 午夜精品国产更新| 国产女人精品视频| 欧美一区二区福利在线| 久久全球大尺度高清视频| 国内自拍一区| 狂野欧美激情性xxxx欧美| 欧美丰满少妇xxxbbb| 最近中文字幕mv在线一区二区三区四区| 久久婷婷国产综合精品青草| 另类春色校园亚洲| 亚洲欧洲日本在线| 欧美日韩三级在线| 欧美一二三区精品| 国产精品九色蝌蚪自拍| 亚洲一区二区视频在线| 久久成人资源| 在线观看国产成人av片| 欧美mv日韩mv国产网站| 亚洲日本激情| 亚洲欧美日韩中文播放| 国产一区二区三区精品久久久| 欧美一区二区三区喷汁尤物| 久久久久久久波多野高潮日日| 韩国女主播一区二区三区| 老司机精品视频网站| 亚洲毛片播放| 午夜精品久久| 在线观看的日韩av| 欧美色区777第一页| 亚洲欧美第一页| 欧美成人日韩| 亚洲午夜视频| 国产一区二区三区四区在线观看 | 美脚丝袜一区二区三区在线观看| 欧美国产成人精品| 亚洲一区二区动漫| 国产亚洲精品久久久久动| 美女久久一区| 亚洲欧美清纯在线制服| 欧美激情一区二区三级高清视频 | 国产精品高潮粉嫩av| 久久国产毛片| 最新成人在线| 久久精品中文| 在线一区欧美| 在线看片第一页欧美| 欧美日韩在线综合| 久久精品国产亚洲5555| 一区二区久久久久| 亚洲高清视频在线| 久久久久久久综合| 亚洲伊人色欲综合网| 亚洲黄网站黄| 国产综合色产在线精品| 国产精品成人在线| 欧美日本中文字幕| 久久综合五月天婷婷伊人| 亚洲一区二区三区中文字幕在线 | 最新国产拍偷乱拍精品| 99热在线精品观看| 欧美99在线视频观看| 欧美在线免费一级片| 亚洲香蕉视频| 日韩视频一区二区三区| 樱桃视频在线观看一区|