【from new_dtoj 3974: 資料結構(set)】
題目描述
對乙個可重集合進行操作,每次可以所有元素+1+
1或新增乙個元素。輸出集合元素的k
k次方和。(來自jarden神犇)
題解:對於每個數字x
x,可以算出它+1+
1的價值:(x
+1)k
=ck0
∗xk+
ck1∗
xk−1
+...
+ckk
(x+1
)k=c
k0∗
xk+c
k1∗
xk−1
+...
+ckk
所以用sis
i維護所有數的i
i次方和,每次用k2k
2修改,效率o(m
k2)o
(mk2
)(卡常可過) 也可以寫個優化,變成o(m
k)o(
mk)具體見**1.o
(mk2
)1.o
(mk2
)
#include #include #define _(d) while(d(isdigit(c=getchar())))
using namespace std;
inline int r()
const int p=1e9+7;int m,k,s[52],c[52][52];
int main()
printf("%d\n",s[k]);
}return 0;
}
2.o(
mk)2
.o(m
k)(orzsuzhen)
#include#include#include#include#include#includeusing namespace std;
int r()
while(isdigit(c)) s=s*10+c-'0',c=getchar(); return s*p;
}typedef long long ll;
const int k=52,n=2e5+2; const ll p=1e9+7;
ll mul(ll a,int x) return s;}
int n,m,k; ll y,s1[k],s2[k],s[k],mi[n][k];
ll c(int n,int m)
int main()
while(m--)
else y++;
ll ans=0;
for(int i=0;i<=k;i++) ans=(ans+c(k,i)*mi[y][k-i]%p*s[i]%p)%p;
printf("%lld\n",(ans+p)%p);
}return 0;
}
Set資料結構
1 es6 提供了新的資料結構 set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值 set 本身是乙個建構函式,用來生成 set 資料結構。const s new set 2,3,5,4,5,2,2 foreach x s.add x for let i of s 2 354上面 通過add...
set資料結構
set 資料結構,類似陣列。所有的資料都是唯一的,沒有重複的值。它本身是乙個建構函式。屬性和方法 應用 var arr 1 1,1 3,4 5,3 5 資料去重 varset new set arr console.log set console.log set.size 4 console.log...
set資料結構
set類似於陣列,但是成員的值都是唯一的,沒有重複的值 const s1 newset console.log s1,size 0 const s2 newset a b console.log s2,size 2 const s2 newset a b a console.log s2,size ...