- 博客(18)
- 资源 (6)
- 收藏
- 关注
原创 caioj 2064 & POJ 1741 & CH 0x40数据结构进阶(0x45 点分治)例题1:树
这真是一道毒瘤入门题 ,一连做了两天,poj的数据竟然卡memsetmemsetmemset.QwQ 心力憔悴~~~~~~ 思路: 很明显,对于u,v之间的合法路径一定满足以下条件之一: 经过根节点. 不经过根节点. 废话! 我们可以只处理第1种情况,对于第2种情况直接分治. 有一个细节需要注意:就是路径上边不能重复走,或者说点不能在根节点的同一颗子树中. 设b[x]b[x]b[x]表示x隶属...
2019-07-27 00:10:17 145
原创 caioj 2063& CH 0x40数据结构进阶(0x44 分块)例题4:小Z的袜子
传送门 这一题乍一看——居然比前面的题要简单一些的样子。 之后,我兴致勃勃地打了个代码——耶,只有30分。 时间复杂度:O(n∗n∗log(n))O(n*\sqrt{n*log(n)})O(n∗n∗log(n)) n=50000时,复杂度等于44721359 再加上STL常数太大,1s内根本卡不进去. ...
2019-07-25 18:54:25 135
原创 BZOJ 2154: Crash的数字表格
Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple)。对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数。例如,LCM(6, 8) = 24。回到家后,Crash还在想着课上学的东西,为了研究最小公倍数,他画了一张NM的表格。每个格子里写了一个数字,其中第i行第j列的那个格子里写着数为LCM(i, j)。一个...
2019-07-25 18:04:56 134
原创 caioj 2062& CH 0x40数据结构进阶(0x44 分块)例题3:磁力块
传送门 这题看完后一头雾水,看完题解后豁然开朗. 题目要我们一个一个吸,我们才不要听它的 ,直接使用大功率吸引术 把一块磁铁能吸的全部吸过来,之后这块磁铁就没用了. 按照这个思路,我们可以用bfs,一次把队头可吸的全吸来,再把队头出队. 现在,我们只需考虑怎么吸吸得快了. 本题中,磁石吸引的条件为:质量≤\le≤磁力,距离≤\le≤半径. 不妨先按质量排序吧. 排序完后,那么一定存在一个整数k,满...
2019-07-24 17:57:08 213
原创 caioj 2061& CH 0x40数据结构进阶(0x44 分块)例题2:蒲公英
二话不说,直接看代码.(说不清楚) 方法1: #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define g getchar() using namespace std; const int N=40010,T=37; int a[N],b[N],L[T...
2019-07-24 15:23:25 149
原创 POJ 2482 & caioj 2059& CH 0x40数据结构进阶(0x43 线段树)例题5:你窗外的星星
扫描线->线段树维护区间最大值。
2019-07-23 20:49:30 164
原创 caioj 2057(2060)& poj 3468 & CH 0x40数据结构进阶(0x43 线段树)例题3:A Simple Problem with Integers
线段树/树状数组/分块
2019-07-22 17:07:27 166
原创 多项式的化简求法
前言: 作为一名OIer,数学推导一定不能差。 例子: 用尽量快的方法求以下式子: ∑i=0n−1ai∗bn−1−i (n∈N+)\sum_{i=0}^{n-1} a^i*b^{n-1-i}~~~ (n \in N_+)∑i=0n−1ai∗bn−1−i (n∈N+) ∑i=0n−1(−1)i∗an−1−i∗bi &...
2019-07-15 20:40:26 2739
原创 HDU 2829 Lawrence
有点复杂的斜率优化题。 前置知识: ∑i=1n∑j=i+1nai∗aj=(∑i=1nai)2−∑i=1nai22 (1)\sum_{i=1}^n \sum_{j=i+1}^n a_i*a_j=\dfrac{(\sum_{i=1}^n a_i)^2- \sum_{i=1}^n a_i^2}{2}~~~~~~...
2019-07-03 10:17:31 140
原创 HDU 3480 Division
卡long longlong ~~longlong long的水题。 设f[i][j]表示前i个数分成j份的最小费用f[i][j]表示前i个数分成j份的最小费用f[i][j]表示前i个数分成j份的最小费用。很明显,这道题要用sortsortsort。 转移方程:f[i][j]=min f[k][j−1]+a[k+1]∗a[i]f[i...
2019-07-02 21:15:34 88
原创 HDU 3045 Picnic Cows
这是一道猥琐的题。 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N=4e5+10; int n,m,q[N],l,r; ll a[N],s[N],f[N]; ll x(int i){retur...
2019-07-02 11:31:11 154
转载 HDU 2993 MAX Average Problem
这题要卡读入,必须用fread。 以下提供两种方法: 1. //二分做法,时间复杂度O(T*N*log20000000),T为数据组数。超时代码——HDU数据真强。 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N=1e5+10; co...
2019-07-01 16:20:26 150
原创 HDU 3507 Print Article
这是一道斜率优化简单题,但是他不给清楚数据范围。注意:0≤Ci。0\le C_i。0≤Ci。 不会斜率优化,请戳这里。 设f[i]表示对前i个单词进行处理的最低费用,s为c的前缀和f[i]表示对前i个单词进行处理的最低费用,s为c的前缀和f[i]表示对前i个单词进行处理的最低费用,s为c的前缀和。 则有:f[i]=min f[j]+(s[i]−s[j])2+m&...
2019-07-01 11:27:12 79
原创 Luogu P2900 [USACO08MAR]土地征用Land Acquisition
这是一道有技巧的斜率优化题。(不会斜率优化,请戳这里) 设ai,bi分别为第i块土地的长、宽a_i,b_i分别为第i块土地的长、宽ai,bi分别为第i块土地的长、宽。 首先,我们按长为第一关键字,宽为第二关键字排序,使得长为非下降序列,当长相等时,宽为非下降序列。因为如果一块土地长,宽都大,就可以把比它长宽都小的土地吃掉,所以我们排序后,再删去一些不需要保留的土地,使得所有土地的宽单调递减。 ...
2019-07-01 11:16:45 127
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人