洛谷 P3750 [六省联考2017]分手是祝愿
生活随笔
收集整理的這篇文章主要介紹了
洛谷 P3750 [六省联考2017]分手是祝愿
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
傳送門
題解
//Achen #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<vector> #include<cstdio> #include<queue> #include<cmath> const int N=100000,mod=100003; #define For(i,a,b) for(int i=(a);i<=(b);i++) #define Rep(i,a,b) for(int i=(a);i>=(b);i--) typedef long long LL; typedef double db; using namespace std; int n,k,a[N],cnt; LL rs,f[N],inv[N]; vector<int>vc[N];template<typename T>void read(T &x) {char ch=getchar(); x=0; T f=1;while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();if(ch=='-') f=-1,ch=getchar();for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0'; x*=f; }void solve() {For(i,1,n) For(j,1,n/i) vc[i*j].push_back(i); Rep(i,n,1) if(a[i]) {int up=vc[i].size();For(j,0,up-1) a[vc[i][j]]^=1;cnt++;}rs=cnt;if(cnt>k) {rs=k;f[n]=1; inv[1]=inv[0]=1;For(i,2,n) inv[i]=(mod-mod/i*inv[mod%i]%mod)%mod;Rep(i,n-1,k) f[i]=(((LL)n-i)*inv[i]%mod*(f[i+1]+1)%mod+1)%mod;For(i,k+1,cnt) rs=(rs+f[i])%mod;}For(i,1,n) rs=rs*i%mod;printf("%lld\n",rs); }int main() {read(n); read(k);For(i,1,n) read(a[i]);solve();return 0; } View Code?
轉載于:https://www.cnblogs.com/Achenchen/p/8604385.html
總結
以上是生活随笔為你收集整理的洛谷 P3750 [六省联考2017]分手是祝愿的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDMI转MIPI DSI芯片方案TC3
- 下一篇: 梦到前额头发秃了什么意思