排序:
默认
按更新时间
按访问量

Runaway to a Shadow 幅角相关函数的运用的板子

atan2(y,x):表示点(x,y)的方位角,值域(-pi,p],想跟高中几何象限定义统一就加个pi,asin,acos返回值都可以用作角度来在方位角上加减,在这基础上就可以很方便地算三角函数了//#include<bits/stdc++.h> #...

2018-03-14 01:13:37

阅读数:110

评论数:0

分块模板

#include<bits/stdc++.h> //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<st...

2018-03-08 16:41:51

阅读数:68

评论数:0

Proud Merchants HDU - 3466 贪心背包的证明

做状态更新是使用[ qi - pi , m - pi ]去更新[ qi , m ],对于第i个物品前者是利用域,后者是更新域。当m足够大,两个区间会产生相交,这段相交会更新在从dp[m]向前一段等长上,更新为为w1+w2先1的交区间是[ q1 , m - p2],先2的交区间是[ q2 , m -...

2018-03-08 15:59:07

阅读数:22

评论数:0

739B - Alyona and a tree倍增+差分

发现cf文本读确实变快了,但是用了快读树剖还是过不了2e5,好像常数大了4?后来才想起来这是离线的树链改值,差分就行了跪了的树剖:#include<bits/stdc++.h> //#pragma comment(linker, "...

2018-03-07 20:01:21

阅读数:14

评论数:0

Lost Cows POJ - 2182 树状数组+倍增

需要用树状数组维护01序列前缀和,并且查找某个位置的前缀和是k,也就是前面有k个1这个可以用二分,两个log,但是用倍增就是一个log不得不说树状数组和倍增的相性真的很好,倍增到的节点维护信息与上一级完全没有重合譬如说跳8可以跳到8,跳4的时候如果可以跳12直接加上c[12]就可以,因为c[12]...

2018-03-04 17:23:18

阅读数:44

评论数:0

并查集负值根表集合大小的写法

这个写法就能高效查集合大小了const int maxn=1e2+43; int fa[maxn],n; void init(){for(int i=1;i<=n;i++)fa[i]=-1;} int find(int x){ if(fa[x]<0...

2018-03-04 15:22:40

阅读数:14

评论数:0

[Poi2011]Tree Rotations线段树合并

整理一下线段树合并的思路,大体是给每个树上节点分配一个根编号建一棵log长的权值线段树,一开始树上只有这个树节点的节点权merge两个树节点的时候,对于当前合并的值域(例如两棵线段树的表示1到n/2的节点),任意取两棵树中的一个节点编号,空的返回另一个,把树丰满起来,同时更新一下计数就可以了#in...

2018-03-02 00:21:40

阅读数:31

评论数:0

[Usaco2017 Jan]Promotion Counting 线段树合并模板/dfs序

两种做法,因为是求整个子树的值域问题所以可以按dfs序把进点和出点的数量作差#include<bits/stdc++.h> //#pragma comment(linker, "/STACK:1024000000,102400000...

2018-03-01 22:30:33

阅读数:32

评论数:0

BZOJ4727: [POI2017]Turysta tarjan/竞赛图哈密顿

首先竞赛图保证是一定有哈密顿路径的,强连通的竞赛图一定有哈密顿回路竞赛图求每个点的最长链,不重复经过点思路就是对每个scc求出哈密顿回路,再按拓扑序n^2dp一下哈密顿路径和哈密顿回路的构造法看的这篇文章Bfk_#include<bits/stdc++.h&g...

2018-02-28 20:36:45

阅读数:49

评论数:0

【POJ Challenge】生日礼物 加强m子段和

还是链表跟二叉堆的双映射//#include<bits/stdc++.h> //#pragma comment(linker, "/STACK:1024000000,1024000000") #include...

2018-02-24 11:02:20

阅读数:37

评论数:0

BZOJ2351: [BeiJing2011]Matrix 行列哈希

ull的读写用%llu,二维哈希跟二维前缀和是一个方法//#include<bits/stdc++.h> //#pragma comment(linker, "/STACK:1024000000,1024000000&quo...

2018-02-22 12:18:16

阅读数:49

评论数:0

Tree 倍增

每个节点有重量,询问节点的祖先序列中最长重量递增序列长度赛中写的倍增没调出来,感觉这种从指数最大到最小枚举做倍增的方法也不错比之前那个从每次都从低位开始凑的更快//#include<bits/stdc++.h> //#pragma comment(l...

2018-02-16 02:31:00

阅读数:46

评论数:0

NUMBER BASE CONVERSION POJ - 1220 进制转换/模拟除法

给a进制下的x,求x的b进制表示考虑20(10)→(3)20/3=6余2,那么3^0位记录2,接下来考虑用3^1位表示6整体像是一个递归,把原数字不断除以b,每一轮余下的数字作为这个深度的余数最深一层也就是除以b最多的一层是最高阶的余数,按阶从高向下写余数就是b进制的x表示//#include&a...

2018-02-15 17:19:30

阅读数:38

评论数:0

Raid POJ - 3714 分治最近点对模板

复杂度大约是nloglog//#include<bits/stdc++.h> //#pragma comment(linker, "/STACK:1024000000,1024000000") #includ...

2018-02-11 17:59:30

阅读数:48

评论数:0

Genius ACM HihoCoder - 1384 倍增/归并排序模板

倍增可行长度和直接二分都可以保证对于每个左端点至多log次找到最远右端点 但是倍增的过程中所需要计算的长度是从小逐渐变大的,而且可以利用前一步倍增的有序数组做一轮归并, 整体就比直接二分右端点所需要计算的长度快一个log //#include //#pragma comment(link...

2018-02-06 00:20:53

阅读数:111

评论数:0

BZOJ1500: [NOI2005]维修数列 Splay维护序列

//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include ...

2018-02-06 00:13:30

阅读数:43

评论数:0

BZOJ3245: 最快路线 拆点dijkstra

150个点,500种速度,乘起来大概8e4个点,3e4的边 其他题解写的基本都是spfa,想想dij也能做,还挺快 #include //#pragma comment(linker, "/STACK:1024000000,1024000000") #includ...

2018-01-17 16:39:55

阅读数:87

评论数:0

存个头

#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include ...

2018-01-08 21:54:16

阅读数:70

评论数:0

895E - Eyes Closed 线段树维护区间线性变换 好题

考虑左区间中的任意数x,令len1为左区间长度,sum1为左区间的期望和 经过操作1,x的期望会变为x*(len1-1)/len1+sum2/len2*(1/len1) 这个变化相当于y=kx+b,因此可以用线段树维护乘法和加法 要注意的是pushdown的时候子节点的加法受到父节点乘法的影...

2017-12-07 20:09:25

阅读数:116

评论数:0

894E - Ralph and Mushrooms 缩点/dp

想出正解之后感觉不太会缩点,今天学了一下tarjan,发现就是遍历边。。tarjan只是过程,存反向边dfs两次分解scc也能做 #include //#pragma comment(linker, "/STACK:1024000000,1024000000") #i...

2017-12-07 16:40:10

阅读数:45

评论数:0

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