摘要:三维扫描线,枚举z寻找相交区间的立方体,然后直接扫描线求xy平面的相交三次及以上面积,乘以z区间求和就可以了
阅读全文
摘要:扫描线求周长,题干又问题,没说要多组输入啊,不多组输入就wr,让我找了好长时间
阅读全文
摘要:线段树求区间最长连续上升 子序列,这里是直接将输入存一个数组,在数组里修改,而不是在树里修改,方便查询两个区间是否能构成连续上升序列
阅读全文
摘要:比赛想的区间更新返回不了区间,看了dls的直播恍然大悟,然后写了一个半小时A了,这里就是先存min值,叶子节点为b的值,然后lazy更新,当出现min==0的时候,就对此点的”min值为0“的子树进行更新(防止多个最小值),然后sum求和就行了。 PS:这里的pos数组没用上,可以忽略,,懒得改代码
阅读全文
摘要:题目就读不懂,把自己读死了。如果两条竖线能被一条横线穿过,且中间没有其他竖线的话,就认为他们两个能相互看见,这里让求任意三条边能两两相互看见的组数。这里就是对x排序,然后让线段往左看,并不断更新连接,最后n的三次方闭包一下。最后要注意的的是:0,4,1 和 0,2,2 和 3,4,2这三条线段覆盖的
阅读全文
摘要:#include #include #include #include #include using namespace std; const int maxn=10000+100; int n,m; int cnt; vector g[maxn]; struct note { int v; int num; bool operator p.num||num==...
阅读全文
摘要:感觉有点树形dp的感觉,就是假设a子树及a的点的数量为u,那么a子树之外点的数量就为n-u,使经过边的次数最多,就是min(u,n-u),再乘以到a的权值就可以了。
阅读全文
摘要:sum[x]+num[y]*z>sum[y]+num[x]*z贪心更新父节点
阅读全文
摘要:二分图可以去处理一对多,或多对一但只统计为数量为1的问题。这里是多个横坐标对应一个纵坐标,但只取1。这个题我写完后想到了2-set。老了啊,多长时间没写二分图,连板子都记错了。
阅读全文
摘要:看是否存在一个环,使所有点都在此环内,并使权值最小。所有点在环内即父节点单一,所拆点建立二分图,只要最后通量为n,那么所有点就都能经过一遍,就符合上述情况。
阅读全文
摘要:求最权值的两条不同路径,不能经过同一个点。直接用最小费用流写的话是不能经过同一条边,所以在这里用拆点法,设每个点a都存在一个与它容量为1的点a',由于最小费用流路径不能重复,所以点也就不在重复。
阅读全文
摘要:单源最短路,我拿SPFA写的,题目坑人,明明写的是没有其他路可走的时候才能等,结果是一直可以等。还有就是要拿更新后的d[u]操作,而不是进入队列的first
阅读全文
摘要:总结: 对于第一位的运算|运算,0|1取反,其他不变&运算,1&0取反,其他不变一定要把位运算的东西括起来再计算,如(1|0)+1,但不能是1|0+1。
阅读全文
摘要:这里用到一个结论:最小生成树里替换一定数量的边,那么新的最小生成树里剩余的边,一定在初始的最小生成树里面,先生成最小生成树,存一下边,然后枚举方案生成新的最小生成树就行了
阅读全文
摘要:板子题,开始看错题了,bug找了一年,有点难受
阅读全文
摘要:哈哈哈,活了,寒假好好刷题,过来参加了个前端培训,教了一天ps??????明天不听了,上课刷题。还有,紫书上的表达式树的板子好像有问题
阅读全文