[杂题] Codeforces 772D VK Cup 2017 - Round 2 D. Varying Kibibits
2017-06-13 22:29
387 查看
一个集合的 子集的和的平方 的和 就记一下 ∑a0i、∑a1i和∑a2i就好了
处理出 f(S)≥x的 这个就是一个6维前缀和
然后再把前缀和倒回去 就好了
处理出 f(S)≥x的 这个就是一个6维前缀和
然后再把前缀和倒回去 就好了
#include<cstdio> #include<cstdlib> #include<algorithm> using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++; } inline void read(int &x){ char c=nc(),b=1; for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1; for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b; } const int N=1000000; const int P=1e9+7; const int pw[]={1,10,100,1000,10000,100000,1000000}; inline void add(int &x,int y){ x+=y; if (x>=P) x-=P; } int n; int f [3]; int g ; int _pow[N+5]; int main(){ int x; freopen("t.in","r",stdin); freopen("t.out","w",stdout); _pow[0]=1; for (int i=1;i<=N+2;i++) _pow[i]=_pow[i-1]*2%P; read(n); for (int i=1;i<=n;i++) read(x),f[x][0]++,add(f[x][1],x),add(f[x][2],(ll)x*x%P); for (int j=0;j<6;j++) for (int i=N-1;i;i--) if (i/pw[j]%10!=9) for (int t=0;t<3;t++) add(f[i][t],f[i+pw[j]][t]); for (int i=0;i<N;i++) g[i]=((ll)f[i][2]*_pow[f[i][0]-1]%P+((ll)f[i][1]*f[i][1]%P+P-f[i][2])*_pow[f[i][0]-2]%P)%P; for (int j=0;j<6;j++) for (int i=0;i<N;i++) if (i/pw[j]%10!=9) g[i]=(g[i]+P-g[i+pw[j]])%P; ll ans=0; for (int i=0;i<N;i++) ans^=(ll)g[i]*i; printf("%lld\n",ans); return 0; }
相关文章推荐
- Codeforces 8VC Venture Cup 2017 - Elimination Round D.PolandBall and Polygon
- [数论 DAG最长路] Codeforces 772C VK Cup 2017 - Round 2 C. Vulnerable Kerbals
- [交互 点分治] Codeforces 772E VK Cup 2017 - Round 2 E. Verifying Kingdom
- [几何] Codeforces 772B VK Cup 2017 - Round 2 B. Volatile Kite
- [最短路 杂题] Codeforces 806D VK Cup 2017 Round 3 D. Perishable Roads
- [线段树 杂题] Codeforces 806E VK Cup 2017 Round 3 E. Blog Post Rating
- Codeforces Round #434 (Div. 2, based on Technocup 2018 Elimination Round 1)&&Codeforces 861A k-rounding【暴力】
- Codeforces 838A. Binary Blocks (区间筛+二维前缀和, IndiaHacks 2nd Elimination 2017 )
- Technocup 2017 - Elimination Round 1 (Rated for Div. 2) D. T-shirts Distribution 贪心、flows
- Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 – Elimination Round 2) A. Interview wi
- Codeforces Good Bye 2017 F - New Year and Rainbow Roads
- 2017 百度之星 Round 2 - Hdu 6108,6112,6113
- Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3)(A.B.C,3道暴力题,C可二分求解)
- Educational Codeforces Round 17 C && codeforces 762C C. Two strings(前缀后缀的妙用)
- codeforces 2B B. The least round way(dp+数论)
- Codeforces-8VC Venture Cup 2016-Elimination Round-626A.暴力 626B.水题 626C.二分
- 【前缀和 && 思维转换】ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined)Molly's Chemicals
- codeforces 2B.The least round way(数学&dp)
- codeforces 673B B. Problems for Round(模拟)
- Codeforces Round #179 (Div. 2) B (codeforces 296b) Yaroslav and Two Strings