摘要: 其实并不算标准半平面交?但是思路差不多 先按照斜率排序,然后用栈维护凸壳,每遇到重斜率或a[i],s[top 1]交点的x轴在s[top],s[top 1]交点左侧,则说明s[top]被a[i],s[top 1]覆盖,弹栈即可; cpp include include include using n 阅读全文
posted @ 2018-03-04 21:58 lokiii 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 其实挺简单的但是没想出来………… 首先判断无解情况,即,一开始的图就不是仙人掌,使用tarjan判断如果一个点dfs下去有超过一个点比他早,则说明存在非简单环。 然后考虑dp,显然原图中已经属于某个简单环的边就是没用的,tarjan缩点之后删掉两个端点在一个强连通分量中的边。(无向图的tarjan要 阅读全文
posted @ 2018-03-04 20:26 lokiii 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/ljh2000 jump/p/6686960.html 由于操作反过来了,所以~~显然~~树状数组维护后缀和,所以本来想查询(1,r) (1,l 1),现在变成了(r,n) (l 1,n); 然后在mod 2意义下进行,每次又是+1,就相当于是异 阅读全文
posted @ 2018-03-04 20:16 lokiii 阅读(129) 评论(0) 推荐(0) 编辑
摘要: ```cpp include include include include using namespace std; const int N=1005; const double eps=1e 8; int T,n,r,w,top; struct dian { double x,y; dian(d 阅读全文
posted @ 2018-03-03 22:04 lokiii 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 求平面最远点对 阅读全文
posted @ 2018-03-03 22:02 lokiii 阅读(113) 评论(0) 推荐(0) 编辑
摘要: ```cpp #include #include #include #include using namespace std; const int N=505; int n; double r; struct dian { double x,y; dian(double X=0,double Y=0) { x=X,y=Y; } dian operator + (const dian ... 阅读全文
posted @ 2018-03-03 22:02 lokiii 阅读(155) 评论(0) 推荐(0) 编辑
摘要: ```cpp include include include include using namespace std; const int N=505; int d,b,n,m; struct dian { double x,y; dian(double X=0,double Y=0) { x=X, 阅读全文
posted @ 2018-03-03 22:00 lokiii 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 1.质量集中在顶点上。n个顶点坐标为(xi,yi),质量为mi,则重心(∑( xi×mi ) / ∑mi, ∑( yi×mi ) / ∑mi) 2.质量分布均匀。这个题就是这一类型,算法和上面的不同。 特殊地,质量均匀的三角形重心:(( x0 + x1 + x2 ) / 3,Y = ( y0 + y 阅读全文
posted @ 2018-03-03 21:59 lokiii 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 参考论文:https://wenku.baidu.com/view/6f9f2223dd36a32d73758126.html 参考代码:http://hzwer.com/3500.html ~~虽然会写了但是我还是不知道弦图是个什么玩意~~ 阅读全文
posted @ 2018-03-03 21:53 lokiii 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 参考:http://blog.miskcoo.com/2015/05/bzoj 3456 首先推出递推式(上面的blog讲的挺清楚的),大概过程是正难则反,设g为n个点的简单(无重边无自环)无向图数目,显然边数是\\( C_{n}^{2} \\),所以\\( g(n)=2^{C_{n}^{2}} \ 阅读全文
posted @ 2018-02-26 20:02 lokiii 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 看别的blog好像我用了比较麻烦的方法…… (以下的n都 过 $$ c[i]=\sum_{j=i}^{n}a[i] b[j i] $$ 设j=i+j $$ c[i]=\sum_{j=0}^{n i}a[i+j] b[i+j i] $$ $$ c[i]=\sum_{j=0}^{n i}a[i+j] b 阅读全文
posted @ 2018-02-26 15:26 lokiii 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 暴力推式子推诚卷积形式,但是看好多blog说多项式求逆不知道是啥.. $$ \sum_{i=0}^{n}\sum_{j=0}^{n}S(i,j) 2^j j! $$ $$ S(i,j)=\frac{1}{j!}\sum_{k=0}^{j}( 1)^k C_j^k (j k)^i $$ $$ S(i, 阅读全文
posted @ 2018-02-26 14:37 lokiii 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 考试题搞了好久也没懂…… 正解应该是线性规划 https://www.cnblogs.com/CQzhangyu/p/7894559.html ~~可是不会写啊~~ 如果从网络流的角度来体会大概是这样 http://blog.csdn.net/clover_hxy/article/details/7 阅读全文
posted @ 2018-02-25 22:42 lokiii 阅读(378) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-02-25 21:27 lokiii 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 大力推公式,目标是转成卷积形式:\\( C_i=\sum_{j=1}^{i}a_jb_{i j} \\) 首先下标从0开始存,n $$ F_i=\frac{\sum_{ji}\frac{q_jq_i}{(j i)^2}}{q_i} $$ $$ F_i=\sum_{ji}\frac{q_j}{(j i 阅读全文
posted @ 2018-02-23 19:51 lokiii 阅读(91) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-02-23 10:53 lokiii 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/CQzhangyu/p/7500328.html ……其实理解了泰勒展开之后就是水题呢~~可是我还是用了两天时间来搞懂啊~~ 泰勒展开是到正无穷的,但是因为精度问题,所以一般展开十几项就可以(这里展开了17项)。以下是公式: $$ e^x=\su 阅读全文
posted @ 2018-02-20 21:23 lokiii 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 详见: http://blog.csdn.net/popoqqq/article/details/42366599 http://blog.csdn.net/whzzt/article/details/51346228 用拉格朗日乘数法,求了偏导之后二分λ。然后求完偏导的那个一元三次式的解可以二分求 阅读全文
posted @ 2018-02-19 09:41 lokiii 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 大概是对于f(x,y)求min,先把x看成常数,然后得到关于y的一元二次方程,然后取一元二次极值把y用x表示,再把x作为未知数带回去化简,最后能得到一个一元二次的式子,每次修改这个式子的参数即可。 智商欠费解释不清,详见Claris大神 http://www.cnblogs.com/clrs97/p 阅读全文
posted @ 2018-02-19 09:33 lokiii 阅读(1157) 评论(0) 推荐(0) 编辑
摘要: 投影到地面之后,会发现圆形在平行光下面积和形状是不会变的,也就是所要求的图形是若干个圆和把相邻两个圆连起来的公切线所组成的。 公切线和圆间距瞎求一下就行,注意要去掉被完全覆盖的圆 然后simpson即可 eps大概1e 6 cpp include include include using name 阅读全文
posted @ 2018-02-17 22:42 lokiii 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 直接套simpson,f可以直接把圆排序后扫一遍所有圆,这样维护一个区间就可以避免空段。 然而一定要去掉被其他圆完全覆盖的圆,否则会TLE cpp include include include include using namespace std; const double eps=1e 13; 阅读全文
posted @ 2018-02-17 22:35 lokiii 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 一般用于在坐标系上求面积。 公式是\\( S=\frac{f(l)+4\ f(mid)+f(r)}{6} \\),其中f为对应x的y值。也就是用二次函数拟合。 至于为什么是自适应:因为使用二次函数拟合,所以对于一段x区间[a,b],考虑对[a,b]求S,再求[a,(a+b)/2]和[(a+b)/2, 阅读全文
posted @ 2018-02-17 22:29 lokiii 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 用到了网络流的思想(大概)。新建一个源点s,所有边权扩大两倍,然后所有的点向s连边权为点权的无向边,然后以s为起点跑spfa(S什么L优化的),这样每个点到s的距离就是答案。 原因的话,考虑答案应该是min(2\ dis[i][j]+a[j]} ),那么每个点到s的距离就是若干条边边权的二倍加上某个 阅读全文
posted @ 2018-02-17 22:01 lokiii 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 用顶点式\\( a(x h)^2+k=y \\)解方程,转化为\\(ax^2+bx+c=y \\)的形式,然后对二次函数求定积分\\( \frac{ax^3}{3}+\frac{bx^2}{2}+cx+C \\)即可。(其实我不知道那个C是干什么用的反正这里不用加。 阅读全文
posted @ 2018-02-17 21:44 lokiii 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 第一步:建立无源汇有上下界的网络模型 每行 i 作为一个点并连边(s, i, Ri, Ri),每列 j 作为一个点并连边(j, t, Cj, Cj),设 Uij, Lij 分别表示第 i 行第 j 列元素的上下界,初始时设 Uij=∞, Lij=0。按照给定的约束条 件不断调整 Uij, Lij,若 阅读全文
posted @ 2018-02-12 20:08 lokiii 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 看错题了以为多组询问吓得不行…… 其实还挺好想的,就是数据范围一点都不网络流。把U作为s,V作为t,以最小生成树为例,(U,V,L)要在最小生成树上,就要求所有边权比L小的边不能连通(U,V)所在的联通块。这样一来模型就很显然了,就是对所有边权 include include include inc 阅读全文
posted @ 2018-02-12 13:48 lokiii 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 第一问直接跑最大流即可。建图的时候按照费用流建,费用为0. 对于第二问,在第一问dinic剩下的残量网络上建图,对原图的每条边(i,j),建(i,j,inf,cij),表示可以用c的花费增广这条路。然后从新建一个源点,连(s,1,k,0)表示要增加k的流量。跑最小费用最大流即可。 阅读全文
posted @ 2018-02-12 13:12 lokiii 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 神奇的建图:连接(s,1,inf,0)(n+1,t,inf,0),对于1~n连接(i,i+1,inf a[i],0),对于每个志愿者(s,t,c),连接(s,t+1,inf,c)。 因为从s开始的流是inf的,到t的也是inf,但是每个点的流量少它所需要的志愿者数量那么多,所以少的流量需要用带权的志 阅读全文
posted @ 2018-02-12 08:19 lokiii 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 一开始从客人角度想的,怎么建都不对 从一个修车工所接待的所有顾客花费的总时间来看,设一共有x个人,那么第一个修的对总时间的贡献是x\ w1,第二个是(x 1)\ w2…以此类推。所以把第i个修车工拆成n组m个,第j组表示i修车工修第j个顾客的车,第j组第k个表示i修车工修第(n k+1)个修第j个顾 阅读全文
posted @ 2018-02-11 20:53 lokiii 阅读(99) 评论(0) 推荐(0) 编辑
摘要: ……因为T点忘记还要+n所以选小了所以WA了一次 注意!题目中所给的时间是一边闭一边开的区间,所以读进来之后先l++(或者r 也行) 线段树优化建图,很神。(我记得还有个主席树优化建树的?)首先考虑暴力建图:s向每个强盗i连(s,i,1,c[i]),每个时间j向t连(j,t,1,0),每个强盗向所有 阅读全文
posted @ 2018-02-11 18:59 lokiii 阅读(168) 评论(0) 推荐(0) 编辑