日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

G List it all

發(fā)布時(shí)間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 G List it all 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

傳送

題意:

題解:

我們來(lái)考慮以下樣例:1,1,2
我們先考慮1的貢獻(xiàn):如圖(圖中只花了)
2!表示還剩兩個(gè)空位,還有兩個(gè)數(shù)未填入,所以是2!個(gè)
對(duì)于n個(gè)數(shù)重復(fù),考慮重復(fù)的情況就是:111…11(一共n個(gè))* (n-1)! * sum
sum為Σa[i] * i,即每個(gè)數(shù)出現(xiàn)的次數(shù) *這個(gè)數(shù)的總和

然后考慮去重:
1,1,2所組成的重復(fù)情況有:
112,112
其中我用()括號(hào)來(lái)將1分號(hào)
1(1)1(2)2,1(2)1(1)2
也就是雖然這兩個(gè)的1是不同貢獻(xiàn)的,但是最終組成結(jié)果一樣,所以要去掉,怎么去?在這個(gè)例子中除以2,因?yàn)橛袃蓚€(gè)1重復(fù)了。那我們現(xiàn)在用1,1,1,2組成重復(fù)情況有:1112,1112,1112,1112,1112,1112,會(huì)發(fā)現(xiàn)有6個(gè)重復(fù)情況,因?yàn)槿齻€(gè)1全排列有6種情況,所以我們除以6,也就是重復(fù)x次,就除以x!,注意除了1重復(fù),2也有可能,所以每個(gè)數(shù)都要去除重復(fù),我們?cè)O(shè)a[i]表示第i個(gè)數(shù)出現(xiàn)的次數(shù)所以就要除以(a[1]!*a[2]!..a[9]!)
總結(jié)答案就是:
ans=(11…111(一共n個(gè)1)) * (n-1) * sum/(a[1]!*a[2]!..a[9]!)
答案要取模

代碼:

#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; const int N = 1e6 + 5; const int mod = 1e9 + 7; int fac[N], ifac[N]; int T[20]; typedef long long LL;int pow(int a, int b) {LL res = 1;for(;b;b >>= 1, a = (LL) a * a % mod) if (b & 1) res = res * a % mod;return res; }int main() {int Max = 1000000;fac[0] = 1;for(int i = 1; i <= Max; ++ i) fac[i] = (LL)fac[i - 1] * i % mod;ifac[Max] = pow(fac[Max], mod - 2);for(int i = Max-1; i >= 0; -- i) ifac[i] = (LL)ifac[i + 1] * (i + 1) % mod;LL Sum = 0;int Count = 0;for(int i = 1; i <= 9; ++ i) {int temp;cin >> temp;T[i] = temp;Sum += i * temp;Count += T[i];} Sum %= mod;LL part_I = 0;for(int i = 1; i <= Count; ++ i) part_I = (part_I * 10 + 1) % mod;LL part_mul = fac[Count - 1];LL part_div = 1;for(int i = 1; i<= 9; ++ i) part_div = part_div * ifac[T[i]] % mod;cout << (LL)Sum * part_I %mod * part_mul %mod * part_div % mod << endl; }

總結(jié)

以上是生活随笔為你收集整理的G List it all的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。