传送门


一开始读错题了,以为是\(\sum_{1\leq u\leq v\leq n}f(u,v)\),还疑惑这题这么简单怎么没人做(

实际上是\(\sum_{1\leq u\leq v\leq n}f(u,v)^{f(u,v)}\)(捂脸)

这个东西拆分是几乎不可做的,因此只能直接算。

发现对于固定起点的一条链,在链上做前缀\(\text{and}\)运算时只会使某些位的\(1\)变为\(0\),因此可能的\(\text{and}\)取值只有不超过\(\log a\)种。即,对于确定根的某个子树,以根为一端的链\(\text{and}\)值最多只有\(d\log a\)种,其中\(d\)为子树叶子个数。

直接dfs即可,每个点维护子树中以其为一端的链\(\text{and}\)值的种类和出现次数的集合。每次合并两棵子树时,暴力枚举两个集合中所有值计算。发现两个叶子只有在lca处才会产生\(\log^2a\)的复杂度,即合并叶子的总复杂度不超过\(d^2\log^2a\)。又由于路径最多\(n^2\)条,\(nd\leq 3\times 10^6\)就变成很强的性质了,\(O(\min(n,d\log a)^2)\leq O(nd\log a)\),在\(d\)取\(\frac{n}{\log a}\)时取到等号。

然而\(\color{grey}{\text{swk}}\)太菜了,犯了两个错误,都会导致复杂度上升至\(O(nd\log^2 a)\):

  • 维护子树中以其为一端的链\(\text{and}\)值的种类和出现次数的集合时,每次合并一棵子树要对值的种类去重。\(\color{grey}{\text{swk}}\)采用了暴力排序后去重的方法。然而正解是直接将两个vector拼接在一起,只在交接处去重。可以发现这样做不会使复杂度上界上升。

  • 题面中的模数是有深意的,给出原根的目的是通过预处理离散对数来避免快速幂。然而\(\color{grey}{\text{swk}}\)没注意到这点,就直接暴力快速幂了QAQ

然而所幸的是这两只\(\log a\)都属于常数较小的一类,加之数据很难做到卡满,\(\color{grey}{\text{swk}}\)仍然完成了\(2999ms\)通过时限\(3s\)的题目的壮举(逃

[Comet OJ - Contest #9 & X Round 3] Namid[A]me的更多相关文章

  1. Comet OJ - Contest #9 & X Round 3题解

    传送门 \(A\) 咕咕 typedef long long ll; int a1,a2,n,d;ll res; int main(){ scanf("%d%d%d",&a ...

  2. Comet OJ - Contest #9 & X Round 3 【XR-3】核心城市 【树的理解】

    一.题目 [XR-3]核心城市 二.分析 题意就是在树中确定$K$个点,满足剩下的$N-K$个点中到这$K$个点的最大距离尽可能小. 理解上肯定是确定一个根,这个根是这个图的中心. 可以通过根据结点的 ...

  3. Comet OJ - Contest #2 简要题解

    Comet OJ - Contest #2 简要题解 cometoj A 模拟,复杂度是对数级的. code B 易知\(p\in[l,r]\),且最终的利润关于\(p\)的表达式为\(\frac{( ...

  4. Comet OJ - Contest #2简要题解

    Comet OJ - Contest #2简要题解 前言: 我没有小裙子,我太菜了. A 因自过去而至的残响起舞 https://www.cometoj.com/contest/37/problem/ ...

  5. Comet OJ - Contest #4--前缀和

    原题:Comet OJ - Contest #4-B https://www.cometoj.com/contest/39/problem/B?problem_id=1577传送门 一开始就想着暴力打 ...

  6. Comet OJ - Contest #11 题解&赛后总结

    Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最 ...

  7. Comet OJ - Contest #8

    Comet OJ - Contest #8 传送门 A.杀手皇后 签到. Code #include <bits/stdc++.h> using namespace std; typede ...

  8. Comet OJ - Contest #13-C2

    Comet OJ - Contest #13-C2 C2-佛御石之钵 -不碎的意志-」(困难版) 又是一道并查集.最近做过的并查集的题貌似蛮多的. 思路 首先考虑,每次处理矩形只考虑从0变成1的点.这 ...

  9. Comet OJ - Contest #13 「火鼠的皮衣 -不焦躁的内心-」

    来源:Comet OJ - Contest #13 芝士相关: 复平面在信息学奥赛中的应用[雾 其实是道 sb 题??? 发现原式貌似十分可二项式定理,然后发现确实如此 我们把 \(a^i\) 替换成 ...

随机推荐

  1. ICML 2019 分析

    ICML 2019 分析 Word Embeddings Understanding the Origins of Bias in Word Embeddings Popular word embed ...

  2. docker安装和hub

    yum install wget wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum list dock ...

  3. 让DOM元素自动滚到视野内ScrollIntoView

    概述 项目中需要把一个DOM元素自动滚动到视野内,百思不得其解,最后再element库里面发现了这个方法,记录下来供以后开发时参考,相信对其他人也有用. 参考资料:element scroll-int ...

  4. Tensorflow 教程系列 | 莫烦Python

    Tensorflow 简介 1.1 科普: 人工神经网络 VS 生物神经网络 1.2 什么是神经网络 (Neural Network) 1.3 神经网络 梯度下降 1.4 科普: 神经网络的黑盒不黑 ...

  5. Centos 安装 FTP

    安装教程:   基于 CentOS 搭建 FTP 文件服务 搭建完成后,使用windows文件夹访问FTP报错,请确保输入的文件名是否正确,并且您有权访问此文件. 先确认ftp服务正常 修改:   设 ...

  6. CentOS安Elasticsearch

    工作中有需求用到es做数据分析和日志搜索的,整理记录一下安装部署过程.ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful we ...

  7. Windows下GIT的用户密码修改

    Windows下GIT的用户密码修改

  8. Java ——异常处理

    本节重点思维导图 详细戳——> 异常处理

  9. Discrete Mathematics and Its Applications | 1 CHAPTER The Foundations: Logic and Proofs | 1.2 Applications of Propositional Logic

    Translating English Sentences System Specifications Boolean Searches Logic Puzzles Logic Circuits

  10. 在线cron表达式生成工具

    http://cron.qqe2.com/ 名称 是否必须 允许值 特殊字符 秒 是 0-59 , - * / 分 是 0-59 , - * / 时 是 0-23 , - * / 日 是 1-31 , ...