zoukankan      html  css  js  c++  java
  • CodeForces

    题面在这里!

        可以发现全是求和,直接拆开算贡献就好了

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int ha=998244353,N=1e6+5;
    
    inline int read(){
    	int x=0; char ch=getchar();
    	for(;!isdigit(ch);ch=getchar());
    	for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
    	return x;
    }
    
    inline int add(int x,int y){ x+=y; return x>=ha?x-ha:x;}
    inline void ADD(int &x,int y){ x+=y; if(x>=ha) x-=ha;}
    
    int n,c[N],a[N],ans;
    
    inline void calc(){
    	for(int i=1;i<n;i++) ADD(ans,add(c[n-i]*(ll)a[i]%ha,i+1==n?0:c[n-i-2]*(ll)a[i]%ha*(ll)(n-i-1)%ha));
    	ADD(ans,a[n]);
    }
    
    int main(){
    	n=read(),c[0]=1;
    	for(int i=1;i<=n;i++) a[i]=add(a[i-1],read()),c[i]=add(c[i-1],c[i-1]);
    	calc(),printf("%d
    ",ans);
    	return 0;
    }
    

      

  • 相关阅读:
    堆排序算法
    基数排序
    快速排序
    OpenSSL加密证书
    jobs后台任务
    at,crontab例行性任务
    dns
    ftp
    ssh
    iptables
  • 原文地址:https://www.cnblogs.com/JYYHH/p/9314693.html
Copyright © 2011-2022 走看看