- 博客(9)
- 收藏
- 关注
原创 树分治(点分治+边分治)
基本相关论文树分治分为点分治O(N和边分治。点分治就是每次找到重心,然后把重心去掉,对分成的每两棵树之间分别统计路径信息(以重心的每个相邻点为根,遍历整棵子树即可得到这个根到每个结点的统计信息),就可以知道包含这个重心的所有路径的信息,然后对于剩下的路径就是在子树里面进行同样的操作了,直到只剩一个点为止(注意这一个点所构成的路径有时也要处理一下)。 边分治就是每次找到一条边,使得删掉这条边后分成的
2017-03-31 11:16:29
3608
原创 洛谷P1168 中位数
原题链接特别水的题对于前 1 个数中,中位数为它本身 可以建一个大根堆,储存的值都是小数 同样建一个小根堆,储存的值都是大数 在大根堆的堆顶放这K个数里的中位数 每次返回大根堆的堆顶法一:STL 重点: 要保证大根堆减小根堆的个数不超过1 一次插入两个数,便于控制个数 注意: 要小心当n为偶数的情形,最后一个数字是没有用的,所以只处理前2*i-1个数字 //大根堆:priorit
2017-03-20 17:42:53
509
原创 背诵内容
先挖个坑1.读入优化inline int read(){ int x=0,f=1;char c=getchar(); while(c<'0'||c>'9'){if(c='-') f=-1;c=getchar();} while(c<='9'&&c>='0') x=x*10+c-'0',c=getchar(); return x*f;}2.快速幂int ksm(int
2017-03-17 07:41:11
283
原创 洛谷铺地毯+放兵种
铺地毯题目描述为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n 张地毯,编号从 1 到n 。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。想法:用二维数组会爆,
2017-02-27 17:40:58
599
原创 HDU2842 Chinese Rings
HDU2842(不水)英文版原题题目描述:一根木棒上有n个环(n<=10^9) 第一个环可以随意取下或者放上 如果前k个环都不在棒子上,且第k+1个环在棒子上,则你可以取下或放上第k+2个环 给出n,求最少需要多少步可以取完棒子上的环?思路: 设f[n]数组表示取下n个环所需最小次数; 若想让第n个环被取下,那么前(n-2)个都要被取下,第(n-1)要挂在环上;这时所需次数为f[n-
2017-02-24 11:32:42
626
原创 矩阵快速幂(模板+例题)
模板#include<cstdio>#include<cmath>//pow函数,其实没啥用 using namespace std;int n;long long k;const int N=pow(10,9)+7;struct node{long long a[105][105];};node shu,ans,mp;//shu是输入的矩阵,ans是所求答案node matrix(
2017-02-24 11:12:38
3974
1
原创 洛谷P1984 烧水问题
烧水问题题目描述把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃。现需要把每一杯水都烧开。我们可以对任意一杯水进行加热。把一杯水的温度升高t℃所需的能量为(4200*t/n)J,其中,“J”是能量单位“焦耳”。如果一旦某杯水的温度达到100℃,那么这杯水的温度就不能再继续升高,此时我们认为这杯水已经被烧开。显然地,如果直接把水一杯一杯地烧开,所需的总能量为(42
2017-02-18 09:56:40
696
原创 Day 1
1.转圈游戏(circle.cpp/c/pas)【问题描述】n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从0 到 n-1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n − m号位
2017-02-12 20:02:39
278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人