首页 > TAG信息列表 > TJOI2017

P3760-[TJOI2017]异或和【树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/P3760 题目大意 给出\(n\)个数字的一个序列\(a\),求它所有区间和的异或和 \(n\leq 10^5,\sum a_i\leq 10^6\) 解题思路 开始写了个前缀和\(+FFT\)发现要卡常然后就换了个方法。 每一个位分开考虑,现在要求有多少个区间和的第\(k\)

【洛谷3761】[TJOI2017] 城市(暴枚+换根DP)

点此看题面 给定一棵树,每条边有一个边权。 你可以断开重连一条边(边权不变),求最小化树的直径。 \(n\le5000\) 大致思路 刚看完题目完全不知何从下手,结果突然发现数据范围\(n\le5000\)。。。 那不就是直接暴枚断开哪条边就好了吗? 考虑断开一条边把原树分成了两棵树,假设我们重连两点

洛谷 P3758 [TJOI2017]可乐(DP||矩阵优化)

题目链接:https://www.luogu.com.cn/problem/P3758   在不用矩阵优化之前,可以写递推/记忆化: 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std; 5 const int N=35; 6 const int maxn=1e6+5; 7 const int mod=2017; 8 int n,m,ans

P3759 [TJOI2017]不勤劳的图书管理员 [树套树]

树套树是什么啊我不知道/dk 我只知道卡常数w // by Isaunoya #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize("Ofast") #pragma GCC optimize( \ "inline,-fgcse,-fgcse-lm,-fipa-sra,-ftree-pre,-ftree-vrp,-fpeephole2,-ffast-math,-fsched-spec,

[TJOI2017] DNA - 后缀数组,稀疏表

[TJOI2017] DNA Description 求模式串与主串的匹配次数,容错不超过三个字符。 Solution 枚举每个开始位置,进行暴力匹配,直到失配次数用光或者匹配成功。考虑到容错量很小,所以每个位置开始的匹配过程中大部分与普通匹配是同样操作,而我们需要的其实就是 LCP 长度,所以预处理出后缀数组

[Tjoi2017]城市

从加里敦大学城市规划专业毕业的小明来到了一个地区城市规划局工作。这个地区一共有ri座城市,《-1条高速公路,保证了任意两运城市之间都可以通过高速公路相互可达,但是通过一条高速公路需要收取一定的交通费用。小明对这个地区深入研究后,觉得这个地区的交通费用太贵。小明想彻底改造

[TJOI2017] 异或和

题面       由于本题求和的优先级高于异或,所以最后其实是一坨求和之后的数再异或起来,于是我们就可以拆位做啦。     然后原问题简化成了:对于每一位,有多少区间和在这一位上是1。     假如现在处理到 2^i 这位,然后我们枚举区间右端点j,想要可以快速找到所有左端点l,满足 sum[j]

[TJOI2017]不勤劳的图书管理员(分块+树状数组)

有一个数组开大会MLE开小会RE的做法:就是树套树,即树状数组套主席树,这种方法比较暴力,然而很遗憾它不能通过,因为其时空复杂度均为O(nlog2n)。 想到一种不怎么耗内存,以时间换空间,分块!单次修改(l,r)只对点对(l,r)、(l,i)和(i,r)产生影响,其中l<i<r,然后可以考虑分块,每块维护每个p[i]出现的

洛谷P3758 [TJOI2017]可乐

原题链接:洛谷P3758 [TJOI2017]可乐  题目描述 加里敦星球的人们特别喜欢喝可乐。因而,他们的敌对星球研发出了一个可乐机器人,并且放在了加里敦星球的1号城市上。这个可乐机器人有三种行为: 停在原地,去下一个相邻的城市,自爆。它每一秒都会随机触发一种行为。现 在给加里敦星球城市图

LG3763 [TJOI2017]DNA

DNA 题目描述 加里敦大学的生物研究所,发现了决定人喜不喜欢吃藕的基因序列S,有这个序列的碱基序列就会表现出喜欢吃藕的性状,但是研究人员发现对碱基序列S,任意修改其中不超过3个碱基,依然能够表现出吃藕的性状。现在研究人员想知道这个基因在DNA链S0上的位置。所以你需要统计在一个

bzoj4892 [TJOI2017]DNA

\(\verb|bzoj4892 [TJOI2017]DNA|\) 给定一个匹配串和一个模式串,求模式串有多少个连续子串能够修改不超过 \(3\) 个字符变成匹配串 \(len\leq10^5\) hash 枚举子串左端点,hash 求 lcp 枚举断点,接着跳过断点,记作一次修改,最多修改 \(3\) 次。特判修改 \(3\) 次后剩余部分是否相等。

P3760 [TJOI2017]异或和

思路 二进制肯定拆位考虑 然后思考每个位上多少个连续和的贡献次数 前缀和一下,假设求得第k位,问题变成了求解对一个i,有多少个s[i]-s[j]的对应位是1 因为有减法,所以考虑一下借位的思想 假设这个数对应位是1,就是求有多少个数对应位是0且右侧的二进制位的大小小于等于这个数右侧的二进

[TJOI2017]DNA

Description: 加里敦大学的生物研究所,发现了决定人喜不喜欢吃藕的基因序列S,有这个序列的碱基序列就会表现出喜欢吃藕的性状,但是研究人员发现对碱基序列S,任意修改其中不超过3个碱基,依然能够表现出吃藕的性状。现在研究人员想知道这个基因在DNA链S0上的位置。所以你需要统计在一个

洛谷P3761[TJOI2017]城市(树的直径、半径)

题目链接 洛谷 BZOJ(没有题面,有数据) 解析 删掉一条边后原树变成两棵树,再连一条边后新树的直径一定不小于这两棵树的直径 考虑再新增一条边,要想新树直径最小,一定是将两树的“中心”相连,经过这条连边的最长路径为两树半径之和加上这条边的长度 枚举修改哪条边,求出断开这条边后两棵树