关闭

没有上司的舞会

题目大意动态加子节点的树,每次询问最大独立集大小。DP给平衡树每个点x维护一个f[x,0/1,0/1]表示以x为根的这个平衡树区间在原树上对应的部分(包括连出去的虚子树)的最大独立集是多少,且这个平衡树区间的左端和右端选或不选。 然后就很好做了。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) usin...
阅读(88) 评论(0)

最小生成树

题目描述结论下面的m均指非树边有m条。 非树边的权值肯定赋值为路径上的最大值(根据环切原理这是下界)。 考虑按权值从小到大加入,每加入一条边就会连接两棵树。 那么一条非树边如果左端在其中一颗树中,右端在另一颗树中,则其权值和该树边一致。 由于是按照权值从小到大加入的,我们希望每次有尽量多的非树边权值确定。 那么容易发现,第i次一定会连接一个大小为i的树和一个单个的节点,也就是产生i-1条非...
阅读(101) 评论(0)

字符串游戏

题目大意题解瞎猜想和画图得到一个不好说的结论。 用诡异的单调栈做。#include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int maxn=1000000+10; char a[max...
阅读(57) 评论(0)

[LOJ6087]毒瘤题

题目大意找到k个出现次数为奇数的数,保证只有k个数出现奇数次。做法k=1全部异或起来。 k=2保存一个c[i]表示第i位上是1的数的异或和。 得到a^b,找到最高位k,那么c[k]是其中一个,然后能得到另一个。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std;...
阅读(96) 评论(0)

[LibreOJ β Round]ZQC的手办

题目大意区间对一个数取max。 区间求最小的x个比k小的数。线段树第一个操作很好搞。 第二个操作有个很显然的常数大做法。 实际上可以用堆把这个区间的笛卡尔树按优先级广搜。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; con...
阅读(115) 评论(0)

[LibreOJ β Round]ZQC的课堂

题目描述https://www.loj.ac/problem/503题解x和y是可以分开考虑的。 设si表示某维坐标的前缀和。 要求统计多少i满足si*si-1=0且min(si,si-1)<=0。 这样两个限制依然不好统计。 改成用n减去不满足条件的。 1、max(si,si-1)<=0 2、min(si,...
阅读(106) 评论(0)

[51nos1971]驴蛋蛋与老孙与微分式

题目描述http://www.51nod.com/contest/problem.html#!problemId=1971oeis这是一道oeis题,把答案打表,差分丢oeis,可以得到一个东西。 接下来用FFT预处理伯努利数,用公式做。#include #include #include #include #in...
阅读(138) 评论(0)

[51nod1786]数据流中的算法 - 众数

题目描述数据流统计功能上线后,为51nod提升用户体验做出了很大的贡献。但是新问题随之而来,夹克老爷还想知道在一个窗口内,访问次数最多用户(即窗口内的众数)。如果有多个众数,取用户ID最小的一个。(窗口的意思是一个固定长度的区间!)(因为数据流是实时的、在线的,所以不允许使用离线算法^_^)做法一个map+一个set#include #include #incl...
阅读(240) 评论(0)

[CodeM初赛A轮]E

题解大小点分治。 出现次数大于阈值的,处理前缀和,然后暴力枚举一个询问判断。 出现次数小于阈值的,跑莫队,维护每个数出现次数,以及每种出现次数的数的个数,然后询问可以暴力枚举出现次数。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int max...
阅读(292) 评论(2)

[CodeM初赛A轮]D

题解用sqrt(a)/log a的时间分解质因数。 枚举一个质因数x,所有x的倍数节点打标记。 对于每一个被标记的联通块求直径。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; typedef long long ll; const...
阅读(217) 评论(3)

[CodeM初赛A轮]C

题解T在max和min之间无解。 考虑二分答案,然后判定很简单。 要注意一些坑点,比如解出来的体积小于0,以及没有进行任何二分判定等。 我的方法没过样例,但是过了这题……#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; typ...
阅读(238) 评论(2)

[CodeM初赛A轮]B

题解设dp f[i1,i2,j1,j2]表示选出A串的[i1,i2]以及B串的[j1,j2]能否组成回文串。 dp转移显然。 但是边界比较麻烦。 考虑先做dp fa[i,j]和fb[i,j]分表表示A串的[i,j]和B串的[i,j]是不是回文串,然后瞎枚举弄出一些f的初值。 回文串完全在一个串中也要判断。 有点坑QAQ 详见代码#include #include<cstr...
阅读(336) 评论(1)

[CodeM初赛A轮]A

题解看懂题意题。#include #include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; typedef double db; const int maxn=1000+10; db c...
阅读(170) 评论(0)

[LibreOJ β Round]ZQC的截图

题目大意一句话题意:给一棵有根树,每个节点一种颜色,支持动态加叶子,并且在线回答加入的叶子到根路径上出现次数不是3的倍数的颜色有0个、1个还是多个,并要求在答案是1个时输出该颜色。随机大法这是一个套路题,不过它是3的倍数而不是2的倍数。 根据套路,我们可以给每种颜色随机一个三进制数,然后我们定义三进制异或表示加起来模3。 如果异或结果是0,说明有0个。 如果异或结果和某个颜色的三进制数或其三进...
阅读(150) 评论(0)

[LibreOJ β Round]ZQC的游戏

题目描述见LOJ。网络流建图裸跑。判断是否满流。 简单题。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; typedef double db; const int maxn=1000+10,maxm=500000+10,inf=...
阅读(154) 评论(0)
693条 共47页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:211293次
    • 积分:9145
    • 等级:
    • 排名:第2014名
    • 原创:689篇
    • 转载:4篇
    • 译文:0篇
    • 评论:181条
    最新评论
    文章分类