2019hpu暑期集训
circoding
先就这样吧
展开
-
最短路(Dijkstra算法模板 HDU2544)
Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为...原创 2019-08-06 13:34:48 · 168 阅读 · 0 评论 -
最近公共祖先(LCA)POJNearest Common Ancestors 1330
最近公共祖先(简称LCA(Lowest Common Ancestor)):官方定义是对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。 其实就是一棵树上两个点,这两点公共的离这两个点最近的公共节点。就好比下图: 在这个图中,千万别把根节点搞错! 乍一看,好像是8,那就等着wa吧。仔细看一下,图其实根节点是9。 例如,6...原创 2019-08-08 19:08:29 · 431 阅读 · 0 评论 -
畅通工程系列(并查集+最小生成树)
并查集:两个点是否具有直接或者间接的联系,就如同一棵树上的树干,即使不直接相连,具有相同的树根(根节点),也可认为有联系。并查集的函数就是判断两个数是否具有联系,并且建立联系。可归结为两个模板代码: pre[i]=j; //意为i的根节点是j int find(int x){ //寻找x的根节点 int r=x; while(pre[r]!=r) //x的...原创 2019-08-06 21:15:35 · 172 阅读 · 0 评论 -
二分查找(Trailing Zeroes (III)(LightOJ1138))
二分查找:在有序数组中,寻找特定数的的算法。 步骤: 先在判断当前数组 中间值mid(mid=left+(right-left)/2))是否等于所找数字n,若是,返回mid。 若不是,n>fx(mid),说明n在数组靠近right的部分,left=mid+1;n<mid,n在数组靠近left部分,right=mid-1;继续进行1中的判断。 进入循环的条件是:while(lef...原创 2019-08-13 20:47:05 · 122 阅读 · 0 评论 -
简述逆元+两种算法
逆元:用于计算式子(a/b) mod p,当b十分大的时候,可以利用b的逆元inv(b),原式即为(a*inv(b) mod p)。一个类似于b的倒数的家伙,要注意的是b的逆元并不唯一,而且要说成是b模p的情况下逆元是多少。逆元不是一定存在的,必须是b与p互质(两者公因数仅有1)才存在逆元。 求解逆元的方法,目前博主学了两个: 利用费马小定理快速幂求逆元。 利用拓展欧几里得算法求逆元...原创 2019-08-14 15:58:54 · 653 阅读 · 0 评论 -
算术基本定理(LightOJ Aladdin and the Flying Carpet 1341)
算术基本定理:一个非质数,可以分解唯一有限个质数的乘积。 N=P1^r1 * P2^r2 *P3^r3*...*Pn^rn (P1<P2<P3<...<PN & Pi 是质数 & ri>=0) N的正因子个数为num=(a1+1)*(a2+1)........*(an+1),即为每个质数的质数+1的乘积。 核心思想: 对素数进行打表,将素数存...原创 2019-08-12 15:49:39 · 215 阅读 · 0 评论