传送门:https://loj.ac/problem/6100 [题解] 我们考虑维护从某个端点开始的最长满足条件的长度,如果知道了这个东西显然我们可以用主席树来对每个节点建棵关于右端点的权值线段树,然后区间修改,标记永久化,询问就可以差分了 考虑如何求出某个端点开始的最长满足条件的长度,也就是某个端点$i$开始,到nxt[i]的这一段都满足异或不减性质. 考虑异或什么时候会导致减法:修改了最高位的时候 我们令s[x][i][j]表示$1 \sim i$个位置,二进制下第j位被当做最高位的时候,…
传送门:https://loj.ac/problem/6102 [题解] 贴一份zyz在知乎的回答吧 https://www.zhihu.com/question/61218881 其实是经典问题 # include <stdio.h> # include <string.h> # include <iostream> # include <algorithm> using namespace std; typedef long long ll; typed…
题目描述:输入一个大小为\(n\)的集合\(S\),求\(\text{lcm}_{k\in S}f_k\),其中\(f_k\)是第$$个Fibonacci数. 数据范围:\(n\le 5\times 10^4,u\le 10^6\) 数论经典题? 首先你要想到min-max容斥. \[ \text{lcm}(f_S)=\prod_{\varnothing\ne T\subseteq S}\gcd(f_T)^{(-1)^{|T|-1}} \] 然后你知道\(\gcd(f_a,f_b)=f_\gcd…
[LOJ#6066]「2017 山东一轮集训 Day3」第二题(哈希,二分) 题面 LOJ 题解 要哈希是很显然的,那么就考虑哈希什么... 要找一个东西可以表示一棵树,所以我们找到了括号序列. 那么二分一个答案\(d\),把所有点挂到\(d+1\)次祖先上去,那么\(d+1\)次祖先的哈希值就是它原本的括号序列挖去了若干段,直接暴力哈希拼接起来就好了. #include<iostream> #include<cstdio> #include<cstdlib> #inc…
Description 在某个神奇的大陆上,有一个国家,这片大陆的所有城市间的道路网可以看做是一棵树,每个城市要么是工业城市,要么是农业城市,这个国家的人认为一条路径是 exciting 的,当且仅当这条路径上的工业城市和农业城市数目相等.现在国王想把城市分给他的两个儿子,大儿子想知道,他选择一段标号连续的城市作为自己的领地,并把剩下的给弟弟,能够满足两端都是自己城市的 exciting 路径比两端都是弟弟的城市的 exciting 路径数目多的方案数. Solution 我们分析一下: 要求的…
题目描述 在某个神奇的大陆上,有一个国家,这片大陆的所有城市间的道路网可以看做是一棵树,每个城市要么是工业城市,要么是农业城市,这个国家的人认为一条路径是 exciting 的,当且仅当这条路径上的工业城市和农业城市数目相等.现在国王想把城市分给他的两个儿子,大儿子想知道,他选择一段标号连续的城市作为自己的领地,并把剩下的给弟弟,能够满足两端都是自己城市的 exciting 路径比两端都是弟弟的城市的 exciting 路径数目多的方案数. 输入格式 第一行一个正整数 n n n.第二行 n n…
题意 题目链接 分析 首先二分,假设二分的答案为 \(mid\),然后考虑利用括号序列来表示树的形态. 点 \(u\) 的 \(k-\) 子树的括号序列表示实际上是刨去了 \(u\) 子树内若干个与 \(u\) 距离为 \(mid\) 的点的一段连续的括号序列,挂链即可.判断括号序列是否相同可以考虑哈希. 总时间复杂度 \(O(nlog^2n)\). 代码链接…
传送门 二分答案 \(k\),考虑如何 \(hash\) 使得做起来方便 把每个点挂在 \(k+1\) 级祖先上,考虑在祖先上删除 这道题巧妙在于其可以对于 \(dfs\) 序/括号序列 \(hash\) 这样在 \(k+1\) 级祖先上暴力删除就好了 # include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int maxn(2e5 +…
LOJ 6060「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set $ solution: $ 这一题的重点在于优先级问题,我们应该先保证总和最大,然后再保证某一个最小.于是我们分两部分贪心:(注意 $ tot $ 表示左右元素的异或和) 首先我们要让总和最大的话,我们只需要讨论 $ tot $ 的某一位为0的情况(如果为1,那么不管怎么分配两边的数都只能并且一定有一个数,使它这一位上含有1).对于 $ tot $ 的某一位为0的情况,我们肯定贪心的让两边都在这一位上含有…
[LOJ6077]「2017 山东一轮集训 Day7」逆序对 题目描述 给定 n,k ,请求出长度为 n的逆序对数恰好为 k 的排列的个数.答案对 109+7 取模. 对于一个长度为 n 的排列 p ,其逆序对数即满足 i<j 且 pi>pj 的二元组 (i,j)的数量. 输入格式 一行两个整数 n,k. 输出格式 一行,表示答案. 样例输入 7 12 样例输出 531 数据范围与提示 对于 20% 的数据,n,k≤20:对于 40% 的数据,n,k≤100:对于 60% 的数据,n,k≤50…