摘要:
带修改,询问区间内出现次数大于区间长度一半的数个数,N,Q<=500000 如果一个数在一个区间内出现次数大于一半,那么在区间内随机抽一些数,抽到这个数的个数通常会很多,因此可以用平衡树维护每个权值的出现位置,只查询在抽查中出现次数充分多的数 具体的,最坏情况下一个数在区间内出现次数为1/2区间长度 阅读全文
摘要:
正边权无向图,一条边两个方向权值不一定相同,求经过点1的最小简单环 简单环包含了点1的一条出边和一条入边,且这两条边不同,因此可以枚举这两条边的编号的二进制表示中哪一位不同,用最短路求此时的最优解,时间复杂度$O(mlog^2m)$ 阅读全文
摘要:
无修改询问区间最长子串满足它是一个括号序列,N,Q<=400000 考虑分治,处理跨过分治中点的询问 预处理在中点一侧的最优答案,剩下只有最优答案跨过中点的情况,可以两侧贪心取前缀和最小位置,再进行调整,如图 时间复杂度O(nlogn) #include<bits/stdc++.h> const i 阅读全文
摘要:
Description 有一个神秘好人跟Bdcxq玩一个游戏,如果Bdcxq成功完成了这个游戏,那么他将会得到一件礼物。 这个游戏是这样的: 有一个梯子形的图如下,每条边都有一个权值。 神秘好人一开始会告诉Bdcxq每条边的权值。 然后神秘好人会做这样的事情: 1.神秘好人会修改某条边的权值; 2. 阅读全文
摘要:
只需写一个解释器 第一次预处理将输入进行分词,分割出 关键字,运算符,变量/函数名,整数常量,并对变量/函数名离散化以便处理 第二次预处理建语法树,每个节点存节点类型,变量定义表等信息 运行时在语法树上递归处理,维护一个栈存运行中用到的变量 #include<cstdio> #include<map 阅读全文
摘要:
Description 你办了一场比赛,有n给人参加,只有一道题,有m个数据点,标号为1~m,每个测试点都有一个分数a[i]。现在所 有选手已经提交了程序并且测评完了,你知道每个人都能通过哪些测试点。你现在要安排捆绑测试的方式,把数据 点划分为若干个连续的区间,每个区间至少有一个测试点。每个区间只要 阅读全文
摘要:
给出N个点的坐标,要求能够覆盖其中至少K个点的圆的最小半径及圆心位置。 最优答案圆周上一定有点,枚举这个点,二分半径扫描线判定,随机打乱输入顺序并加上最优性剪枝,由于答案期望变优$O(logn)$次,期望时间复杂度为$O(n^2logn+nlognlog(\frac{MaxAns}{eps}))$ 阅读全文
摘要:
Description 给出一个N个顶点的简单多边形,对于每个顶点,假如它和原点连成的线段只在这个顶点处和多边形相交,就称为满足要求的顶点。你的任务是输出所有满足要求的顶点编号。 给出一个N个顶点的简单多边形,对于每个顶点,假如它和原点连成的线段只在这个顶点处和多边形相交,就称为满足要求的顶点。你的 阅读全文
摘要:
Description N个点m条边,每个点有一个点权a。对于任意一个三元环(j,j,k)(i<j<k),它的贡献为max(ai,aj,ak) 求所有三元环的贡献和。N<100000,,m<250000。 对度数大的点w,枚举w相邻的每个点u1,u2,u3...,遍历u[a]相邻的点的统计w,u[a 阅读全文
摘要:
Description 有一个集合U={1,2,…,n),要从中选择k个元素作为一个子集A。若a∈A,则要有a*X不属于A,x是一个给定的数。求可选方案对M取模后的值。 1< = N< = 10^18,2< = m< = 1000000,0< = K< = 1000,2< = x< = 10。 有一 阅读全文