- 博客(24)
- 收藏
- 关注
原创 [一直更新中]WerKeyTom的口胡
前言因为要保证能力的提升,不能啥题都是写写。 所以开一个口胡题解坑。 可能以后有心情和能力也会来写一写收录的题。 至少留下一个思考过的痕迹。 实在太水可能就不口胡啦。 有些题也会写写。2017.3.13bzoj3679 计算可以被分解成1~9的乘积且在1e9内的数只有5194个 然后可以数位dpbzoj3756 直接给Trie建SAM是伪的。 这个伪指的是深...
2017-03-13 22:39:13 4183
原创 轮回
题目描述掌管着世界的暗流的是一个叫做Samjia的人。 他看到所有人的生死,他看见所有人一世又一世的轮回,而他却从未把握过自己的命。 在无法估计的命中,他看见那些轮回,他很好奇,这一切的一切,都是如何开始如何结束,他想,就算是他也会堕入这样的轮回中的吧。 于是他开始数轮回,他看到的是一个有n个点m条边的无向图(边是带标号的),一个轮回是一个由四条边组成的环,环中不能有重复的边,除了起点和终点外
2017-03-30 21:26:21 659
原创 原谅
题目描述终其一生,我们在寻找一个原谅。 犯下了太多错,要原谅的那个人,永远都是自己。 Samjia在深夜中望见了没有边界的人生,他没有想到过自己犯下了这么多的错误,他想在他的一生中寻求一个原谅。 他的人生是一个没有边界的平面,平面上有n个错误,每个错误是一个点,每个点i有一定的坐标(x[i],y[i]),有一个参数p 表示每个点有p的概率出现在平面上,注意两个不同的点的出现互相没有影响,Sam
2017-03-30 21:20:10 406
原创 [bzoj4771]七彩树
题目描述给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点。每个节点都被染上了某一种颜色,其中第i个节 点的颜色为c[i]。如果c[i]=c[j],那么我们认为点i和点j拥有相同的颜色。定义depth[i]为i节点与根节点的距离 ,为了方便起见,你可以认为树上相邻的两个点之间的距离为1。站在这棵色彩斑斓的树前面,你将面临m个问题。 每个问题包含两个整数x和d,表示询问x子树里且dep
2017-03-30 21:07:27 964
原创 [bzoj3509][codechef]COUNTARI
题目大意求有多少对i<j<ki<j<k 满足a[j]-a[i]=a[k]-a[j]分块FFT口胡里写过了。 枚举j,我们可以得到两边的生成函数。 只要卷积起来看2*a[j]项的系数就可以统计了。 这样做显然不行。 考虑分块。 对于i或k在块内的情况,用枚举来暴力统计。 而对于i与k均不在块内的情况,用FFT。#include<cstdio>#include<algorithm>#i
2017-03-28 22:32:24 569
原创 跳蚤王国
题目描述跳蚤王国爆发了一场动乱,国王在镇压动乱的同时,需要在跳蚤国地方钦定一个人来做宰相。 然而当时国王的钦定方式很奇怪,跳蚤王国可以看成一棵树,国王认为宰相必须更好地位跳蚤服务,所以他会选择一个到所有节点距离和最小的节点,并在这个节点中钦定,如果有多个节点满足距离和最小则任选一个。 然而跳蚤国的动乱实在是太厉害了,以至于树的心态可能也会发生改变也就是说,树上可能会有若干条边消失,如果这个情况出
2017-03-25 16:45:47 782
原创 围墙
题目描述蛐蛐国准备在和它的一个邻国——蝈蝈国之间修一堵围墙。 围墙可以看成是一个长度为n的括号序列,与此同时还有一个长度为n的排列P,一个围墙被称为稳的,当且仅当: 1、这个括号序列是合法的。 2、构造一张n个点的图,当且仅当第i个位置是左括号时,点i向右Pi连边,最后形成的图必须满足每个点度数均为一。保证对于任意i有Pi 一个括号序列合法的定义如下: 1、空序列是合法的。 2、如果“
2017-03-25 16:40:06 551
原创 2017.3.25NOI模拟赛总结
今天策略比较失败,虽然成绩和排名不是很难看,但暴露了很多问题。 一开始正着看题,第一题是字符串,第二题什么鬼,第三题没看懂。 瞎想了一下第一题可以倒过来用SA+莫队+数据结构求LCP。 一开始很naive觉得用个并查集可以把log消掉,就没看了。 第二题想了会想到个很靠谱的贪心,但这是n^2 log n的。 发现随手推推可以n log n,噫这第二题送的。 回头看第一题发现自己萎的,推了
2017-03-25 16:01:30 987
原创 [bzoj2138]stone
题目描述话说Nan在海边等人,预计还要等上M分钟。为了打发时间,他玩起了石子。 Nan搬来了N堆石子,编号为1到N,每堆包含Ai颗石子。每1分钟,Nan会在编号在[Li,Ri]之间的石堆中挑出任意Ki颗扔向大海(好疼的玩法),如果[Li,Ri]剩下石子不够Ki颗,则取尽量地多。为了保留扔石子的新鲜感,Nan保证任意两个区间[Li,Ri]和[Lj,Rj] ,不会存在Li<=Lj & Rj<=Ri的情况
2017-03-24 22:27:20 1357
原创 Hall定理学习小记
前言蒟蒻Tom学hall定理!他萌萌哒! hall定理就是关于判定二分图是否存在完美匹配的东西啦。 那我们来一些基本定义吧。基本定义也没啥好定义的。。 学过网络流应该都懂本文要提到的东西。 完美匹配是指最大匹配数为min(|X|,|Y|) 也就是X或Y集合其中一个集合所有点都被匹配了。定理内容我们来假设X集合点少一点好了。X集合就当做有n个点。 那么二分图G存在完美匹配,则取任意正整数1
2017-03-24 21:58:48 9123 4
原创 [51nod1558][CF468D]树中的配对
题目大意一颗n个节点的树,边有边权。 求一个字典序最小的排列p 使得∑dis(i,pi)\sum dis(i,pi)最小思考∑dis(i,pi)=∑depi+deppi−2∗deplca(i,pi)=2∗∑depi−2∗∑deplca(i,pi)\sum dis(i,pi)=\sum dep_i+dep_pi-2*dep_{lca(i,pi)}=2*\sum dep_i-2*\sum dep_{
2017-03-22 16:48:09 1108 1
原创 [JZOJ3736]数学题
题目大意神题这就是一道论文题,嗯。。 两个向量夹角大于60度,肯定答案会取两个向量模长的较小值。 接下来的变换部分也不是很想自己写 结论2. (a, b)所对应的答案,和(a, b + ka)一致,其中k为整数。 然后就这样做,复杂度不会证,不懂看代码也肯定懂了#include<cstdio>#include<algorithm>#include<cmath>#define f
2017-03-21 22:43:57 759
原创 [luoguP3674]小清新人渣的本愿
题目大意询问区间是否存在两个数和为x/差为x/积为x 这两个数可以使同一个数bitset不会bitset的蒟蒻哭了 维护bitset加和减就随便做了。 积就枚举较小数 上个莫队算法来维护我们需要维护的#include<cstdio>#include<algorithm>#include<bitset>#define fo(i,a,b) for(i=a;i<=b;i++)using n
2017-03-20 16:52:20 900
原创 [hackerrank]Range Modular Queries
题目大意区间询问模x等于y的值的个数 值域是[0,40000] 允许离线平衡结合对于x<=200的询问,因为x很小所以y也很小,这时候可以考虑使用分块。 将序列分块,然后处理sum[i,j,k]表示前i块中模j等于k的值有多少个。 询问时暴力扫剩余部分。 对于x>200的询问,因为x较大所以符合条件的数很小,这时候可以考虑使用莫队。 维护一个桶,每次询问只要看一下对应符合的数字有多少个即
2017-03-20 15:24:21 503
原创 Sequence
题目大意若干个区间询问 每次询问∑ri=l∑rj=lw((ai,aj))\sum_{i=l}^r\sum_{j=l}^rw((ai,aj)) w(x)表示x的不同质因子数。上以根号n为阈值,用两种算法。 小于等于根号n的质数枚举+前缀和 大于根号n的就上莫队 当然直接莫队也能8nn√8n\sqrt n#include<cstdio>#include<algorithm>#define
2017-03-18 20:20:01 425
原创 东方神灵庙及东方辉针城E难度混关
东方神灵庙特别水 推荐梦机 随便扭扭就能过东方辉针城推荐咲A 怂了就炸 如果规划得不错到了六面每符基本都能炸 狼女终符推荐炸 四面和五面道中比较恶心人千万注意不要收点把自己撞死了 四面的符卡怂了就炸吧 五面终符和爆菊弓可以炸,逆转左右和上下的都很简单,从下往上飞的弹幕可以贴着正邪方便躲。 小碗的话,判定点变大那符最后几秒可能会坑爹要注意。 然后剩下的怂了就炸。 炸着炸着躲着躲着
2017-03-18 14:18:30 914
原创 [bzoj4773]负环
题目大意找到有向边权图的一个最小负环,输出点的个数。瞎做设f[i,j,k]表示i到j经过k个点的最短路。#include<cstdio>#include<algorithm>#define min(a,b) (a<b?a:b)#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=300+10,maxm=9
2017-03-17 21:25:26 815
原创 [51nod1634][hdu5729]刚体图
题目大意n*m的网格图。 对于一个网格,你可以什么都不干,也可以加一条对角线(有两种加法,只能加一条) 问有多少稳定网格图模型转化不论怎么改变网格图形状 同一行的竖边一定平行,同一列的横边一定平行。 加对角线会限定一行与一列的所有边都互相垂直。 稳定网格图一定是所有横边与所有竖边都相互垂直。 因此模型可以转化为,求联通二分图的数量。DP设dp[n,m]表示左边n个点右边m个点的联通二分图
2017-03-17 15:07:38 642
原创 [bzoj3492]Binary Dodgeball
结论我把乘2^k变成除以的话和原游戏当然是等价的。 这样的话我们把每个数二进制都写出来,每次就是去掉末尾几个0。 按照除lowbit部分分组,不同组之间互相独立。 每组的游戏可以这样描述: 有一群石子堆,每次从一个石子堆拿走至少一颗石子,若存在两堆相同的石子堆,则一起移走。 没有后面那个的话很容易知道就是nim游戏。 但其实我们可以把移走的两堆绑在一起,那么一个人操作其中一堆,另一个人就
2017-03-16 16:50:27 484
原创 [bzoj3072]Two Cakes
题目描述有两个长度为n的排列(1<=n<=1,000,000),然后你要再次写出一模一样的两个排列,于是你的左手和右手同时拿笔开始写。但是为了锻炼自己的协调能力,你不想左手和右手同时在写一模一样的数,每写一个数你就需要花1ms的时间,那么你要写完这两个序列至少要花多久时间呢?注:每个序列同时只准用一只手写。DP要注意到这是两个排列。。 最朴素的dp是设dp[i,j] 如果a[i]!=b[j],肯
2017-03-15 21:47:12 585
原创 [bzoj3073]Journeys
题目描述Seter建造了一个很大的星球,他准备建造N个国家和无数双向道路。N个国家很快建造好了,用1..N编号,但是他发现道路实在太多了,他要一条条建简直是不可能的!于是他以如下方式建造道路:(a,b),(c,d)表示,对于任意两个国家x,y,如果a<=x<=b,c<=y<=d,那么在xy之间建造一条道路。Seter保证一条道路不会修建两次,也保证不会有一个国家与自己之间有道路。 Seter好不容
2017-03-15 21:09:59 604
原创 [CF671D]Roads in Yusland
题目大意一颗n个节点的树所有边都坏掉了。 请m个工人修路,每个工人都可以修一条树链ui到vi,费用为ci。 求最小修路费用,无法全部修复输出-1。DP我们来设f[i]表示i子树全都修好(包括i到父亲那条边)的最小费用。 怎么转移呢? 比如有一个能修i到其父亲边的工人j,费用是这个工人的费用+其他杂七杂八的子树的f值和。 用线段树来维护,大概是这样吧QAQ贪心我们来看看一个强做法! 首先可
2017-03-07 17:16:40 1008
原创 保镖
题目大意二分图,点有点权。 选择一个点集,使得存在原图的一个匹配可以包含该点集所有点,并使点集中点权和超过给定T,求方案数。搜搜搜虽然不会证,但是X集合中可被覆盖的点集和Y集合中可被覆盖的点集拼成的点集也是能被覆盖的! 然后就搜搜搜!#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using nam
2017-03-07 15:47:55 525
原创 [bzoj4766]文艺计算姬
题目大意求一个完全二分图的生成树个数行列式算算构造基尔霍夫矩阵的余子式,发现是这样的: 先用上面n-1行每一行都去加第n行。 然后第n行变成n-1个m-1然后一个1再来m-1个1-n 用下面m-1行每一行都去加第n行。 然后第n行变成只有后m个位置是1。 用第n行去加前n-1行,就把那堆-1消掉了。 然后变成下三角矩阵,行列式就是主对角线的乘积。 nm−1∗mn−1n^{m-1}*
2017-03-07 15:44:36 917
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人