03 2019 档案
摘要:凸包曾经感觉很可怕的东西如今看了几眼就明白了先按x为第一关键字,y为第2关键字排序先跑凸包下半部分然后逐个放进栈里,当栈中元素的个数大于2的时候,用栈顶元素和前前个点的斜率和栈顶元素和前个点的斜率比较,如果当前点对应的斜率更小,那么就把前一个点踢掉,1到n扫一遍,最后加一波答案最后再跑凸包上半部分
阅读全文
摘要:P1516 青蛙的约会x+mt-p1L=y+nt-p2L(m-n)t+L(p2-p1)=y-x令p=p2-p1(m-n)t+Lp=y-x然后套扩欧就完事了 #include<iostream> #include<cstdio> #include<queue> #include<algorithm>
阅读全文
摘要:Gym 100963B Gym - 100963B 2018 省赛Nim游戏那个题 http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/problemlist/cid/2513 C - Crosses and Crosses SG函数
阅读全文
摘要:Gym 100963B啊,郁闷,就tm调小了一点范围就A了,就写dp和贪心比较一下,范围到最大值的二倍-1就好了假设最大值的2倍以内能满足最优条件,当金额范围超过最大值2倍的时候;至于为什么,还不清楚,再想想 #include<iostream> #include<cstdio> #include<
阅读全文
摘要:2018山东省赛sequence因为必须要删除一个数,所以可以计算每个数删除的代价,从而选取代价最小的进行删除如果一个数大于它前面的所有数的最小值而小于次小值,删除最小值的代价就要+1;如果一个数本身就是good数,那么该数代价就要加一 #include<iostream> #include<cst
阅读全文
摘要:zoj3781赛场上堵在了缩点上emmmmm把原始图相同颜色的方块缩成一个点,然后与它周围不同颜色的联通块连双向边,然后枚举每个点然后求最大深度的最小值因为每次翻转都相当于深度+1(可以手动模拟一下 #include<iostream> #include<cstdio> #include<queue
阅读全文
摘要:单向和双向bfs 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<algorithm> 5 #include<cmath> 6 #include<ctime> 7 #include<set> 8 #includ
阅读全文
摘要:hdu3038带权并查集这种问题不仅仅要处理不同的点的是否在同一个集合里之类的问题,点与点之间存在连线,其带有权值,在路径压缩的时候也要对权值进行操作这道题就是带权并查集+向量去做 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4
阅读全文