首先令$n=r-l+1$。
令$k$表示區間$[l,r]$中存在多少個數$x$,使得$x$不存在小於$x$且在區間$[l,r]$中的因數,我們把包含這些數的數集稱為$s$
我們來先想乙個$o(nk)$的$min-max$容斥做法吧。。。。。
顯然這一題我們可以轉化為min-max容斥的模型(將這k個數選完期望需要選多少次)
$max_=\sum_(-1)^min_$。
令$p_x=\sum_ min_$。
我們推一推式子就會發現$p_i=x!(n-x)!\sum_i\binom$。
然後我們發現這個式子是$o(n^2)$的,而且非常難以推出。
**如下(這個**可能有點假)
1 #include2#define l long long
3#define mod 1000000007
4#define m 10000005
5using
namespace
std;
67 l pow_mod(l x,l k)
8 l fac[m]=,invfac[m]=;
9 l c(int n,int m)
1011
int vis[m]=;
12int n,k=0;13
14 l p[m]=;
1516
intmain()
2728
for(int x=1;x<=k;x++)
35 p[x]=now*x%mod*fac[n-x]%mod;36}
37 l ans=0;38
for(l x=1,zf=1;x<=k;x++,zf=-zf)
41 cout42 }
考慮一些簡單的方法
我們考慮回題目中的列舉排列。令$f_i$表示 $t(p)=i$的排列個數,那麼答案顯然為$\sum_^f_i$
不難發現,一種$t(p)=i$的排列,其前$i-1$項中必包含有數集$s$中$k-1$個數,且第i個數必為數集$s$中的數。
那麼不難求出$f_i=k(n-k)!\dfrac$
答案即為$k(n-k)!\sum_^ \dfrac$
隨便求一求就好了
1 #include2#define l long long
3#define mod 1000000007
4#define m 10000005
5using
namespace
std;
67 l pow_mod(l x,l k)
8 l fac[m]=,invfac[m]=;
9 l c(int n,int m)
1011
int vis[m]=;
12int n,k=0;13
14 l p[m]=;
1516
intmain()
27 l ans=k*fac[n-k]%mod,sum=0;28
for(int i=k;i<=n;i++)
29 sum=(sum+fac[i]*invfac[i-k])%mod;
30 cout31 }
JXOI2018 遊戲 組合數學
給定乙個區間 l,r 每次選第乙個數,把它和它後面所有它的倍數去掉,直到序列為空,操作的次數稱為這個序列的代價。求對給定序列的所有排列的代價之和。顯然對於區間內的所有數,我們可以給出這些數的乙個拓撲圖,那麼入度為零的點的個數就是必須要選的點,其它的點在必須要選的點選完以後都不用選了,因此我們只需要考...
洛谷 JXOI2018 遊戲
初見安 這裡是傳送門 洛谷p4562 遊戲 九條可憐是乙個富有的女孩子。她長大以後創業了,開了乙個公司。但是管理公司是乙個很累人的活,員工們經常揹著可憐偷懶,可憐需要時不時對辦公室進行檢查。可憐公司有 nn 個辦公室,辦公室編號是 l到 l n 1,可憐會事先制定乙個順序,按照這個順序依次檢查辦公室...
JXOI2018簡要題解
考慮如果所有數都不同,那麼一定只有一種方案可行,需要 n 次 如果有數相同,考慮強制大小關係,最後除上每個相同數之內的排列個數 考慮如何加入新的數,明顯是越平均越好,模擬一下即可 複雜度為 o tn log n include define n 200005 define m 10000005 de...