随笔分类 - 其他 - 思维题
摘要:Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标
阅读全文
摘要:Description 小c同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。?天天爱跑步?是一个养成类游戏,需要 玩家每天按时上线,完成打卡任务。这个游戏的地图可以看作一一棵包含 N个结点和N-1 条边的树, 每条边连接两 个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从
阅读全文
摘要:考虑如果两点在一个环中,那么这两点一定可以构出双联通分量. 考虑环和环镶嵌,那么两个环中的点一定都互为双联通分量. 由此,我们想到一个算法: 将删边转为反向加边,用LCT维护图. 当我们连接两个点时,分两种两种情况. 1.不连通 : 没啥说的,直接连上 2.连通 : 那么说明要被连接的两点在一个换中
阅读全文
摘要:题意: 给定一个串 $S$ 和若干个串 $T_{i}$每次询问 $S[pl..pr]$ 在 $Tl..Tr$ 中出现的最多次数,以及出现次数最多的那个串的编号. 数据范围: 需要离线 题解:首先,很常规的对 $T_{1}$ 到 $T_{rmax}$ 的所有字符串构建一个广义后缀自动机.来一遍线段树合
阅读全文
摘要:Description ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN。 由于她的疏忽, 第 i 个物品丢失了。 “要使用剩下的 N - 1 物品装满容积为 x 的背包,有几种方法呢?” -- 这是经典的问题了。她把答案记为 Count(i, x) ,想要得到所有1 <
阅读全文
摘要:定义重载运算的时候一定要将矩阵初始化,因为这个调了一上午...... Code:
阅读全文
摘要:题目描述: 策策同学特别喜欢逛公园。公园可以看成一张N个点MM条边构成的有向图,且没有 自环和重边。其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。 策策每天都会去逛公园,他总是从1号点进去,从N号点出来。 策策喜欢新鲜的事物,它不希望有两天逛公园
阅读全文
摘要:题目描述: 给你一个 $n$ 个数的数列,其中某个数出现了超过 n div 2 次即众数,请你找出那个数。空间大小:1mb 题解:显然,我们是不能开任何数组的,此题专卡空间。然而我们要求的东西也十分简单,就是出现次数最多的数。出现次数最多,即代表着序列中没有数比答案数更多。想象一下如果众数和其他的数
阅读全文
摘要:题解: 考场上靠打表找规律切的题,不过严谨的数学推导才是本题精妙所在:求:$\sum\prod_{i=1}^{m}F_{a{i}}$ 设 $f(i)$ 为 $N=i$ 时的答案,$F_{i}$ 为斐波那契数列第 $i$ 项。由于 $a$ 序列是有序的,要求的答案可以表示成:$f(i)=\sum_{j
阅读全文
摘要:题目描述:在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.例如,对于直线:L1:y=x; L2:y=-x; L3:y=0则L1和L2是可见的,L3是被覆盖的.给出n条直线,表示成y=Ax+B的形式(|A
阅读全文
摘要:题目描述:给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。 有q次询问,每次询问给出l r z,求$\sum_{l\leq i\leq r} dep[LCA(i,z)]$ 题
阅读全文
摘要:我们发现 $c_{i}$ 和 $k$ 的规模非常小我们还发现每种颜色的位置是不必知道的,只要这种颜色和相邻的颜色种类不同即可。定义状态 $f[a][b][c][d][e][last]$,代表有 $a$ 个还可以放 1 个,$b$ 个可以放 2 个,$c$ 个可以放3个......上一个状态最后一个放
阅读全文
摘要:Code: 定义状态 $dp[i]$ 为前 $i$ 天的最小代价。 状态转移为:$dp[i]=min(dp[i],dp[j]+spfa(j+1,i)$ 这里 $spfa(i,j)$ 是指 $(i,j)$ 天中用一种最短路方案的最短路(最小花费)
阅读全文
摘要:Code:#include using namespace std;const int maxn=4000005;const int R=4000002;const int N=4000002;long long sumv[maxn...
阅读全文
摘要:Code:#include#includeusing namespace std;const int maxn = 1000000 + 3;long long arr[maxn], ans[maxn], sumv[maxn];int main(){ int...
阅读全文
摘要:不难发现起点必定是一个点。每次间隔的距离一定是 2k2^k2k,关键就是要判断两点是否在同一跳跃距离上可被同时覆盖。我们可以对上边进行 x1≡x_{1}\equivx1≡ x2mod(2∗dx)x_{2} mod( 2*dx)x2mod(2∗dx),这样...
阅读全文
摘要:我们可以将横坐标和纵坐标看成是点。发现这些点之间是有传递性的。题中说明,如果有矩阵中三个顶点被选,则底角的点也会被覆盖,发现这些点之间是有传递性的。那么我们最终达到的目的就是使整个图中只有 111 个集合。而将两个集合合并的代价是新覆盖一个点。于是我们只需统...
阅读全文

浙公网安备 33010602011771号