自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 bestcoder#82回顾

最终rank仿佛是4(in div2)???然而unranked所以并没有卵用T1水。。。给定一个整数,看n=x^2-y^2是否有整数解。。。不难发现只要是大于等于3的奇数或者大于等于8的4的倍数都可以T2水。。。满足条件的数不到十万个,搜索出来lowerbound即可,但是最大的一个要暴longlong所以要特判输出一个20位的字符串(4*10)(7*10)T3开始不水。。。要写一个

2016-04-30 22:22:17 458

原创 【BZOJ4519】【Sdoi2016】游戏 线段树

第一次接触到这么神奇的线段树。首先树的形态不改变所以数链剖分+线段树建树。对于线段树上的每一个点,我们保证其最多保存一条直线,如果存在第二条直线,那么两条直线“占据空间”较小的一个一定可以下传到它的某个儿子,而这个节点只存占据空间较大的一个即可。查询的时候要用到永久化(好像是叫这个奇怪的名字)思想,一边向下查一边比较存放在当前节点的直线能否更新最小值。 /*************

2016-04-28 21:48:57 640

原创 【BZOJ4520】【Cqoi2016】K远点对 K-DTree

所以说CQ冷门模板默写大会真的不是吹的科科,话说一天到晚给BZOJ贡献双倍经验真的大丈夫吗K-D Tree裸题,主要结构其实是一棵二叉搜索树,交替以横坐标和纵坐标作为第一关键字,把中位数当成根递归构建树,这样每一个节点代表原图的一个矩形区间,当且仅当这个矩形的四个顶点离查询点的距离的最大值大于小根堆的堆顶时才继续向下搜索。其实第一反应丫就是强剪枝对不对!#include#include

2016-04-28 10:00:14 359

原创 【BZOJ4513】【Sdoi2016】储能表

听说标解是个神数位DP什么的。。。讲道理我是辣鸡我不会。所以说异或运算真的是个神奇的东西,打一张表出来仿佛各处都藏着奇葩的规律,因为有k的限制,所以我们的目的是将整个序列化成若干个等差序列的和,并且每个等差序列从k处断开(因为负数不计入计算),不难发现存在很多个长边为(2^i),短边小于等于长边的矩形,其中每一条长边都是一个打散的等差数列,我们每次从子矩形中拿出最大的一个,计算一个再乘以一共有

2016-04-27 21:18:58 1195

原创 【BZOJ4500】矩阵 DFS

一开始的想法是转化成一个n+m个未知数k个方程的方程组然后甩高斯消元法,但写完发现一是要TLE(经优化可以解决该问题),二是方程是否存在一组整数解不好判断(因为不知道线性无关的方程数量和未知数数量的大小关系0),交上去花样WA后来发现是自己想多了,方程的想法没问题,但注意到一个方程只有两个未知数,因此我们将每个未知数当成一个点,一个方程当成一条边,边的权值就是这个方程的值,每扫到一个没有被标记

2016-04-27 19:10:35 442

原创 【BZOJ4516】【Sdoi2016】生成魔咒 后缀数组 线段树

ZJOI2015陈老师幻想乡的简化(阉割)版,所以可以不用Trie上后缀自动机那么高大上的东西。。。首先不难想象出O(n^4)以及O(n^2)的做法,一种是每穷举一个字串再暴力检查是否已经出现,一种是在第一种的基础上Hash优化。这两种都没有什么卵用我们就不提了。首先我们将数字串反向读入,那么每一个加入的前缀对应反串的一个后缀,我们每加入一个字母,相当于有 该字母开始的后缀和目前已经加

2016-04-26 19:59:16 482

原创 【BZOJ4517】【Sdoi2016】排列计数 线性逆元 错位排列

首先真诚地感谢BZ某大神为我们解锁正确的备考姿势。一语惊醒梦中人。回到题目。。。不难看出一答案ans=D[n-m]*C(m,n);,其中D是错位排序数,也就是n个数全排列中,满足ai!=i的排列的个数,具体证明涉及到容斥原理。存在递推公式。为了计算C,我们可以将n! mod p以及 (n!) ^ -1 mod p 全部预处理出来,两个操作均存在线性递推。然后答案就可以在O(1)内求解了

2016-04-25 23:55:02 412

原创 【BZOJ3143】【Hnoi2013】 游走 期望DP 高斯消元

卧槽这题BZOJ上的数据用了dcmp就会WA不讲道理。。。裸的才能A。。。除了第一个点以外,每个点到达的期望次数是与它相连的点的期望次数除以度数之和,一条边的期望次数是他非n端点(因为到n就不再走出来了)的期望次数除以度数之和,排序后赋值即可。#include#include#include#include#include#include#include#i

2016-04-25 17:58:01 465

原创 【BZOJ4016】【FJOI2014】 最短路径树问题 树的点分治

首先是最短路径树,将一个点相连的所有边装入Vector中,排序后倒序加边(因为链表的写法是从最后加入的边向前便利),求出最短路径图后DFS得到最短路径树,然后和普通的点分治一样辣!要善于利用时间戳(虽然并没有什么卵用)。#include #include #include #include #include #include #include #i

2016-04-23 15:09:38 410

原创 【BZOJ1758】【Wc2010】重建计划 树的点分治 二分

感觉仿佛所有统计路径的题都可以把锅甩给点分治???由于要求平均值最大,我们每二分一个答案ave,就去检查是否存在一条路径满足其新路径长度(d(u,v)-ave)的和大于等于0,并且路径的长度在[L,R]之间,检查的时候技巧很多,可以用单调栈来维护当前各深度边权最大值。同时,要善于利用时间戳来避免一切memset。并且由于答案是三位小数,因此我们可以控制当r-l/************

2016-04-21 21:39:33 349

原创 【BZOJ2152】聪明的可可 树的点分治

题目大意:给定一棵n第一次接触神奇的点分治算法,其主要思想就是对于一棵树,找到他的重心,DP计算所有经过重心点的路径中mod3==0的路径条数,然后将整棵树从重心点处断开,分为若干棵子树,化归解决原问题。其中断树的操作可以通过给边打上bool标记来实现。/**************************************************************

2016-04-21 20:12:21 318

原创 【BZOJ1011】遥远的行星

第一次见到拿误差做文章的题,世界观又一次刷新。看到这题的第一感觉是前两天做过的力,所以一来就往FFT上想。。。然并卵,边界死活不会处理看了标解顿时有婊人的冲动。。。对于那些比较大的n(以2000为界比较合适),我们发现不同1/(i-j)之间的差距极小,因此我们用1/(i-(i*A)/2)来代替所有的分母,加上前缀和就变成O(1)了。/************************

2016-04-21 19:01:24 606

原创 【BZOJ2342】【Shoi2011】双倍回文 Manacher算法

其实这道题就是马拉车(?)的数组做出来之后再来一点小小的处理。为了偷懒在s[0]处插入'$',然后用‘#’把字符串夹在中间,首先将d数组处理出来,然后枚举每个s[i]=='#'的位置(因为长度是偶数所以对称中心一定是‘#’),暴力寻找最大的j,满足d[i+j]>=j && d[i-j]>=j (j%2==0),原理比较浅显,因为i+j.i-j就是两个小字串的对称中心。 最终答案就是maxj

2016-04-20 23:45:15 483

原创 【BZOJ4539】【Hnoi2016】树 树套树

你萌知道一道题从晚八点调到早一点是什么感觉么?你萌知道凌晨一点的CQ长什么样子么?你萌知道TLE或者WA的情况显示成RE对没有数据的小朋友伤害有多大吗???我!知!道!算了我们来说说Hn的这套题。。。6道DS。。。这道是我当时拿道题后第一道yy出标算的题。。。我也不知道是算树套树还是算分块。。。主要思想就是把模板树建好之后,每个加入一块树的操作在大树中只加入一个

2016-04-20 19:29:36 1933 1

原创 【BZOJ3160】万径人踪灭 FFT manacher

我是真的想写字符串的题。。。这道题除了manacher和字符串有半!毛!钱!关!系!题目所求的数量可以由(无限制对称字符串)-(连续对称字符串)求得其中(连续对称字符串)可以由manacher求得,问题变为求(无限制对称字符串)的数量我们考虑d[i]表示s[a]==s[b]&&a+b==i的数的对数(ab可以相等并且ab有序),那么sum=sigma(2^( ( d[i] - 1

2016-04-19 20:26:47 678

原创 【BZOJ3238】差异 后缀数组

反正又要办停课了不如一块一块慢慢刷。。。最近集中处理一下字符串和数据结构(说起来真轻巧)这种直接把“后缀”两个字糊脸上的题也是不常见。首先长度和(也就是求和式中的前两项)比较简单,不讨论,重点就是原来字符串中任意两项的公共前缀如何计算。首先将sa数组和height数组做出来(不要和h搞混,注意弄清含义),然后计算 以height[i]作为答案的数对的组数 K ,在答案中减去2*k*he

2016-04-18 20:16:32 379

原创 【BZOJ1031】字符加密 后缀数组

后缀数组模板题用的罗学长惊为天人的模版。。。当时搅了整整一周才明白。。。/************************************************************** Problem: 1031 User: RicardoWang Language: C++ Result: Accepted Time:820 ms

2016-04-18 18:53:29 286

原创 【BZOJ1014】火星人prefix Splay 字符串Hash

这道题要是卡自然溢出还真的有点慢。。。还好不卡。。。因为要半路加点所以可以想到Splay,针对每一个询问操作,我们二分一个答案出来,在Splay将这两段单独隔离出来检查Hash值是否相同,所以插入的时间复杂度是logn,查询是log^2n,满足题目的要求/**************************************************************

2016-04-17 23:01:52 397

原创 【BZOJ1015】星球大战 并查集

我在那里想割顶和桥你却告诉我这是并查集,人与人之间的信任呢。。。离线倒序操作,先将所有未被删除的点的子图用并查集连起来,倒序加入点即可#include#include#include#include#include#include#include#include#define maxn 400005using namespace std;void _read(int &

2016-04-17 09:53:34 397

原创 【BZOJ1047】理想的正方形 堆套堆 优先队列

可以粗略的理解为二维的滑动窗口最大最小值首先我想到的是暴力穷举A-n+1行,每一列对应一个n*B的矩形区域做一维的滑动窗口,时间复杂度O(nABlog(n))妥妥TLE经过分析如果我们为每一横行开一个优先队列维护横向滑动窗口,加入j列的新元素之后同时处理出A-n+1行中以第j列结尾的n*n矩阵的最大最小值,以最小值为例,首先将n行的优先队列的队首清成合法元素,再开一个维护纵向滑动窗口的优先

2016-04-15 23:14:44 677

原创 【BZOJ1185】最小矩形覆盖 计算几何 凸包 旋转卡壳

写完程序两小时,调对精度一小时hhh首先不严格的直觉告诉我们所求矩形一定有一条边在凸包上,我们遍历凸包上的边,用类似旋转卡壳的方式得到凸包上的三个点,分别是在边上投影最靠前的点,在边上投影最靠后的点,距离边最远的点 ,这三个点一定在所求矩形的另外三条边上。得到一个矩形求解即可。我尽力了。。。判断1号点和2号点时要同时运用内积(点乘)和外积(叉乘)与0的大小关系,具体见代码/

2016-04-15 22:08:34 1377 4

原创 【BZOJ1013】球形空间产生器sphere 高斯消元

第一次见到行末有空格要错的题。。我真的是以为这题是计算机和才去做的。。设圆心的n个坐标为x1——xn,不难推广出n维向量的点乘,并注意到球上任意两点的向量与球心和两点中点的向量垂直,固定第一个点列出n个方程求解即可#include#include#include#include#include#include#include#includeusing namespace s

2016-04-15 00:21:31 551

原创 【BZOJ1069】【SCOI2007】最大土地面积 计算几何 凸包

凸包模板题。。。我用的是一种叫Graham的方法,主要思想是以最下最左的点作为原点,将其余各点按照极角排序(用向量的叉积实现),之后用栈维护新点永远在凸包最后两点的射线右边即可。用反证法不难证明四个点一定全在凸包上(不然一定存在一个比已知四边形更大的四边形),枚举对角线将四边形隔成两个三角形,旋转卡壳维护两个三角形最大面积即可。#include#include#include#i

2016-04-14 23:50:48 796

原创 【BZOJ1005】明明的烦恼

#include#include#include#include#include#include#include#includeusing namespace std;#define maxn 1005void _read(int &x){ x=0; char ch=getchar(); bool flag=false; while(ch'9'){if(ch=='-')f

2016-04-13 23:45:55 321

原创 CQOI2016游记

来一篇CQYZ视角的嘤嘤分析什么的留到最后两周之前开始停的课,成功水掉一次月考加一次运动会加晚自习无数,之前都是晚自习过来水一水,然而并没有水出什么东西HB权衡利弊之后果断放弃了计算几何(FLAG),带领大家专攻高(级)数(据结构)和网络流建模(FLAG*2),大家平时在各班班主任的(唠叨)谆谆教诲下过着又不专心准备竞赛又不专心准备高考的生活。大家一致认为自己复赛发挥不错(FLAG

2016-04-12 23:43:01 743

原创 【BZOJ4523】【CQOI2016】路由表 Trie

数据保证无相同有效地址(地址中掩码部分)出现对于一次查询的一种理解方式是:无视其它所有查询操作,只看添加操作。先清空路由表,然后执行第1到a-1次添加操作。之后再执行第a到b次添加操作过程中,统计匹配改变的次数。第一眼扫过去是可持久,但是转念一想去年CQOI考过这东西果断跳过这题对拍数据之难做hhh这年头输入都不按套路来。。。间接考察了一波输入优化思路比较清晰,插入的地

2016-04-12 23:00:20 895

原创 【BZOJ4521】【CQOI2016】手机号码 数位DP

所以说CQOI板子背少了没人权。。。Day1唯一A了的题目题目非常良心的帮人们略去了前导零的烦恼,给定的范围一定是十一位的整数,但这同时意味着裸对拍真!的!好!慢!设状态DP(i,j,k,ok1,ok2)表示前i位最后一位是j倒数第二位是k,ok1记录是否已经有三连续,ok2记录4和8出现的情况(不能同时出现所以可以压到一位),再加上一堆奇奇怪怪的细节,递推思路倒是比较清晰。注意如果他

2016-04-12 22:44:05 600

原创 【BZOJ1004】Cards

#include#include#include#include#include#include#include#includeusing namespace std;int SA,SB,SC,m,p,n;struct data{ int a[65]; data() { memset(a,0,sizeof(a)); }}A[65];void Init(){

2016-04-12 20:26:43 346

原创 写在最前头

还有三个月就要去绵阳找虐我还要开博客真的是有聊。。。主要就刷(chao)一点BZOJ上的题目的题解(以及吐槽)以上

2016-04-12 20:20:31 279

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除