zoukankan      html  css  js  c++  java
  • 洛谷秋季集训测试1

    这次真的是很凉了
    T1玄学炸 T2爆胎翻车 T3…正解行数500+

    T1

    求问一个集合各子集元素和的和
    集合大小n <= 1e6

    分析每个元素贡献
    ans = (sum_{i=1}^{n} i) * 2^{n - 1}

    T2

    给定T个n,求每个n的 sum_{i = 1}^{n} n mod i
    n <= 1e7 T <= 1e6

    明显离线
    sum_{i = 1}^{n} n mod i
    = n^2 - sum_{i = 1}^{n} (n / i) * i; 考虑每一个数的贡献得
    = n^2 - sum_{i=1}^{n} d_1(i)
    然后就是线性筛

    复习一下 约束和的计算方式是

    inline void calc(){
        d1[1] = sp[1] = npr[1] = 1;
        for(int i = 2; i <= N; ++i){//i <= N
            if(!npr[i]) prm[++ps] = i, d1[i] = sp[i] = 1ll * i + 1ll;
            for(int j = 1, x; j <= ps && prm[j] * i <= N; ++j){
            	npr[x = i * prm[j]] = 1;
                if(i % prm[j]) d1[x] = d1[i] * d1[prm[j]], sp[x] = prm[j] + 1;//sp[x] != ps[i]!!!
            	else {
            		sp[x] = sp[i] * prm[j] + 1, d1[x] = d1[i] / sp[i] * sp[x]; 
            		break;
            	}
            }
        }
    }
    
    

    T3

    欸。。。
    题目链接:yyy的迷失
    想到要线段树 想到要倍增 然而把他们当成两种完全不同的想法。。
    大概就是先扫描线求出每个箭头上点的必走路径
    然后把这路径倍增
    繁琐在于要扫四次

  • 相关阅读:
    HTTP状态码
    TCP慢启动、拥塞避免、快速重传、快速恢复(转)
    优化js设计,防止浏览器假死(转)
    Firebug详解(转)
    WUST Online Judge
    WUST Online Judge
    WUST Online Judge
    WUST Online Judge
    WUST Online Judge
    WUST Online Judge
  • 原文地址:https://www.cnblogs.com/hjmmm/p/9745534.html
Copyright © 2011-2022 走看看