小技巧
文章平均质量分 60
SC.ldxcaicai
我很菜=_=
展开
-
2018.06.29 NOIP模拟 区间(前缀和差量)
1、区间(interval.cpp)时限:2000ms空间限制:512MB【问题描述】 给出一个长度为 n 的序列 a[1]…a[n]。 给出 q 组询问,每组询问形如<x,y><x,y>,求 a 序原创 2018-10-11 23:01:06 · 183 阅读 · 0 评论 -
2018.07.12 atcoder Go Home(贪心)
传送门 题意简述:大家在数轴上生活,公司在 s。 班车送所有人回家,有 n 个住处,第 i 个位置在 xi,居住了 pi 的人。 保证 xi 互不相同。 大家⼀起投票向前还是向后,如果票数相同就固定向数轴负方向,每个⼈是自私的,希望自己尽早回家。 (但是注意,虽然是自私的,并不⼀定投自己家的方向) 到家了必须下车(因为自私) 问大家都做最优决策的情况下,最后⼀个回家的人需要多久到家?...原创 2018-07-12 23:24:12 · 382 阅读 · 0 评论 -
2018.07.13 数学技巧
早上大概是学了一个叫做切比雪夫距离的东西。切比雪夫距离的数学定义大概是这样的:对于两个点(x1,y1),(x2,y2)(x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2),它们之间的切比雪夫距离是max(|x1−x2|,|y1−y2|)max(|x1−x2|,|y1−y2|)max(|x_1-x_2|,|y_1-y_2|),这个东西有什么用呢?观察两点之间的切比雪夫距离计算公式...原创 2018-07-13 09:39:55 · 167 阅读 · 0 评论 -
[NOI2018]归程(return)(kruskal重构树)
传送门 新鲜出炉的noi2018试题。 话说今年T1被许多大佬秒掉了。 lzy就是其中一个,并且他解法传给了我。 下面讲讲这题的解法: 首先要学习一个叫做kruskal重构树的东东。听名字就知道跟kruskal算法有关,没错,原来的kruskal算法就是用并查集实现的,但当我们使用kruskal重构树的时候,对于每次找出的不同的两个连通块的祖先,我们都新建一个点作为两个祖先的父亲,并...原创 2018-07-18 22:49:08 · 1558 阅读 · 0 评论 -
2018.07.07 洛谷 P3939 数颜色(主席树)
P3939 数颜色 题目背景 大样例下发链接:http://pan.baidu.com/s/1c0LbQ2 密码:jigg题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的。每只兔子都有一种颜色,不同的兔子可能有 相同的颜色。小 C 把她标号从 1 到 nnn 的nn n 只兔子排成长长的一排,来给他们喂胡萝卜吃。 排列完成后,第 ii 只兔子的颜色是4ai4ai4 a_i 。俗话说得好...原创 2018-07-07 16:15:15 · 259 阅读 · 0 评论 -
2018.07.07 BZOJ2212: Poi2011Tree Rotations(线段树合并)
2212: [Poi2011]Tree Rotations Time Limit: 20 Sec Memory Limit: 259 MB Description Byteasar the gardener is growing a rare tree called Rotatus Informatikus. It has some interesting features: The tr...原创 2018-07-07 22:39:37 · 419 阅读 · 0 评论 -
2018.07.20 bzoj3211: 花神游历各国(线段树)
传送门 维护区间开方,区间求和。这个是线段树常规操作。 显然一个数被开方若干次之后要么是1,要么是0,所以用线段树维护区间最大和区间和,如果区间最大不超过1就剪枝剪掉,不然就继续递归直到叶节点时停下进行单点修改。虽然这方法看起来很暴力,但实际上由于只有开方这一个操作,时间复杂度是有保障的。代码如下:#include<bits/stdc++.h>#define N 10...原创 2018-07-20 15:10:44 · 241 阅读 · 0 评论 -
2018.08.10 atcoder Median Sum(01背包)
传送门 题意简述:输入一个数组anan{a_n}。 对于所有2n−12n−12^{n-1}个非空子集,每个子集的权值是包含的所有元素之和。 求这2n−12n−12^{n-1}个非空子集权值的中位数。 代码:#include<bits/stdc++.h>using namespace std;int sum=0,n,x;bitset<5000000>s; ...原创 2018-08-10 21:48:18 · 296 阅读 · 0 评论 -
2018.11.08 NOIP模拟 水管(简单构造)
传送门仔细读题会发现只要所有点点权之和等于0一定有解。如何构造?直接当做树来构造就行了,非树边都赋值成0就行。代码原创 2018-11-08 23:23:04 · 136 阅读 · 0 评论 -
bzoj4876: [Zjoi2017]线段树(树上差分)
传送门对于这种广义线段树的题,想要定位区间[l,r][l,r][l,r]可以转化成定位节点[l−1,l−1],[r+1,r+1][l-1,l-1],[r+1,r+1][l−1,l−1],[r+1,r+1]路径上的一些儿子节点。设lca=tlca=tlca=t那么路径[l−1,l−1]→t[l-1,l-1]\rightarrow t[l−1,l−1]→t的右儿子和路径[r+1,r+1]→t[r...原创 2019-06-27 21:56:44 · 178 阅读 · 0 评论 -
2018.07.18 HAOI2009 逆序对数列(线性dp)
传送门 目前只会n2n2n^2的dpdpdp做法。 设dp[i][j]dp[i][j]dp[i][j]表示111~iii的排列逆序对为jjj的方案数。显然这个东西是可以递推的。相当于将iii插入到111~i−1i−1i-1的排列中,然后就可以从dp[i−1][k]dp[i−1][k]dp[i-1][k]转移过来。 代码如下:#include<bits/stdc++.h>...原创 2018-07-18 11:55:35 · 155 阅读 · 0 评论 -
2018.06.29 NOIP模拟 1807(简单递推)
1807 题目背景 SOURCE:NOIP2015-SHY-2 题目描述 给出一个由数字(‘0’-‘9’)构成的字符串。我们说一个子序列是好的,如果他的每一位都是 1、8、0、7 ,并且这四个数字按照这种顺序出现,且每个数字都出现至少一次(111888888880000007 是好的,而 1087 不是)。请求出最大的好的子序列的长度。 输入格式 输入唯一一行一个字符串。 输出格式 ...原创 2018-10-11 23:05:44 · 190 阅读 · 0 评论 -
BZOJ 2342: [Shoi2011]双倍回文(manacher)
2342: [Shoi2011]双倍回文 Time Limit: 10 Sec Memory Limit: 128 MB DescriptionInput 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。Output 输出文件只有一行,即:输入数据中字符串的最长双倍回文子串的长度,如果双倍回文子串不存在,则输出0。Sampl...原创 2018-06-30 10:48:39 · 180 阅读 · 0 评论 -
树的操作(换根树剖)
描述 XXX和 YYY在愉快地刷题。有一道题是这样的:给你一棵 n 个节点的有根树,每个节点有 一个权植。你要支持两种操作:查询以某棵树为根的子树的权值和,给以某个节点为根的整 棵子树的所有点的权值都加上一个值。机智的 XXX 很开心地用LLL教授 讲过的某些东西水水水水过了这道题。但是可怕的出题人又增加了一种操作:将根节点改为第 u 号节点。于是XXX和YYY 就不会 做了。按照一惯的逻辑...原创 2018-06-30 23:19:32 · 1113 阅读 · 0 评论 -
2018.07.08 hdu6183 Color it(线段树)
Color it Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others) Problem Description Do you like painting? Little D doesn’t like painting, especially messy color pai...原创 2018-07-08 09:47:11 · 297 阅读 · 0 评论 -
2018.07.08 hdu1394 Minimum Inversion Number(线段树)
Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description The inversion number of a given number sequence a1, a2, …, an is the...原创 2018-07-08 10:22:58 · 251 阅读 · 0 评论 -
2018.07.08 hdu5316 Magician(线段树)
Magician Problem Description Fantasy magicians usually gain their ability through one of three usual methods: possessing it as an innate talent, gaining it through study and practice, or receiving i...原创 2018-07-08 22:30:17 · 233 阅读 · 0 评论 -
2018.07.08 NOIP模拟 第K小数(二分)
第K小数 题目背景 SOURCE:NOIP2016-AHSDFZ T1 题目描述 有两个正整数数列,元素个数分别为 N 和 M 。从两个数列中分别任取一个数相乘,这样一共可以得到 N*M 个数,询问这 N*M 个数中第 K 小数是多少。 输入格式 第一行为三个正整数 N,M 和 K 。 第二行为 N 个正整数,表示第一个数列。 第三行为 M 个正整数,表述第二个数列。 输出格式 ...原创 2018-10-11 23:08:58 · 272 阅读 · 0 评论 -
2018.07.08 NOIP模拟 好数(线段树)
好数 题目背景 SOURCE:NOIP2016-AHSDFZ T3 题目描述 我们定义一个非负整数是“好数”,当且仅当它符合以下条件之一: 1. 这个数是 0 或 1 。 2. 所有小于这个数且与它互质的正整数可以排成一个等差数列,例如,8 就是一个好数,因为 1,3,5,7 排成了等差数列。 给出 N 个非负整数,然后进行如下三个操作: 1. 询问区间 [L,R] 有多少个好数。...原创 2018-10-11 23:11:17 · 276 阅读 · 0 评论 -
HDU Rikka with Phi(线段树)
Rikka with Phi Time Limit: 16000/8000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Problem Description Rikka and Yuta are interested in Phi function (which is known as Euler’s to...原创 2018-07-03 11:53:56 · 346 阅读 · 0 评论 -
2018.07.17 CQOI2017 余数求和(整除分块)
洛谷传送门 bzoj传送门 这道题要用到学习莫比乌斯反演时掌握的乘除分块算法,也就是对于一个数nnn,nnn除以111到nnn的数商的取值只有sqrt(n)sqrt(n)sqrt(n)种,然后这道题对于商相同的一段余数,它们会构成一个等差数列,于是直接上整除分块统计答案即可。代码如下:#include<bits/stdc++.h>using namespace std...原创 2018-07-17 16:09:52 · 163 阅读 · 0 评论 -
LOJ#3159. 「NOI2019」弹跳(四分树+dijkstra)
传送门n2n^2n2暴力显然,考虑优化。有一种想法是使用四分树/kd-tree/树套树,发现你并不能得到100pts100pts100pts的好成绩(空间会炸掉)考试的时候比较智熄,先暴力四分树建边然后跑dijkstra,于是动态内存炸了。。。88pts88pts88pts滚粗。那剩下那12pts12pts12pts如何拿呢?我们考虑只用四分树加入点,这样的空间开销仅有O(nlogn)O...原创 2019-07-18 21:20:30 · 327 阅读 · 0 评论