博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #396(div 2)
阅读量:5289 次
发布时间:2019-06-14

本文共 624 字,大约阅读时间需要 2 分钟。

A

题意:求两个字符串的最长非公共子串

分析:trick题

   最长非公共子串的长度<=子串长度<=原串长度<=max(len1,len2)

   容易发现如果两个字符串不相同,那么答案就是最长的那个长度,否则就是0

B

=w=

C

QvQ

D

题意:给出一些单词的近义、反义关系,判断给出的是否合法、判断两个词的关系

分析:并查集

   经典的并查集,每个点有两个集合,分别为近义词集合和反义词集合(补集),每次操作对并查集操作

E

题意:给出n个节点组成的树(n<=1e5),每个点有权值(<=1e6),每对点对(i,j)的权值为i到j的树上路径所有点的权值的异或和,求所有点对的权值的总和

分析:二进制拆位+dfs树上统计

   因为是异或,所以可以想到一位一位来分别进行dfs,那么时间就是O(log(1e6)*n),是可以的

   现在问题就是每个点权值要么为0,要么为1,求所有点对的权值的总和

   f[i][0]表示以i为根的子树,表示:由子树中某一点开始,向上走一直走到i为止的这种路径的异或和为0的路径条数

   f[i][1]表示对应的异或和为1的路径条数

   那么dfs(i)的时候,可以统计出以i为lca的点对的异或和为1的个数,加到s中,并且不断更新f[i][0]和f[i][1]

   ans=Σs*对应位的权值

转载于:https://www.cnblogs.com/wmrv587/p/6393237.html

你可能感兴趣的文章
docker 不同版本 添加--insecure-registry
查看>>
并发编程中的Callable,Future,FitureTask
查看>>
Java反射机制
查看>>
Oracle EBS AP更新供应商地址
查看>>
Perl语言入门笔记 第十章 其他控制结构(unless,until,elsif,for,last,next,redo,and,or)
查看>>
phpunit.xml
查看>>
php实现工厂模式
查看>>
ubuntu 安装maven提示出错 The program &#39;mvn&#39; can be found in the following packages
查看>>
drwtsn32.exe 遇到问题须要关闭。我们对此引起的不便表示抱歉
查看>>
cocos2d-x3.0 Slider
查看>>
Python接口测试-使用requests模块发送GET请求
查看>>
List中的元素 去重
查看>>
7/27 进制转换
查看>>
解决nginx无法访问问题
查看>>
[老老实实学WCF] 第十篇 消息通信模式(下) 双工
查看>>
WCF随笔3----消息编码器
查看>>
通过 C# 代码操作 Google 日历
查看>>
曲演杂坛--一条DELETE引发的思考
查看>>
web测试
查看>>
POJ 3150 Cellular Automaton(矩阵乘法+二分)
查看>>