摘要:
http://codeforces.com/gym/241680/problem/B比赛的时候考虑的是,它们3个尽可能接近,然后好麻烦,不如暴力枚举,这里不需要质因数分解,而是两重循环枚举所有因数,第3个因数也就随之确定 1 #include<iostream> 2 #include<cstdio> 阅读全文
摘要:
凸包曾经感觉很可怕的东西如今看了几眼就明白了先按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 阅读全文
摘要:
hdu2473并查集的删除操作建立虚点,删除它就断掉了它在原图中的所有关系,而成为独立节点,而且它只能被删除一次,而且删除之后还能进行操作,采用映射(虚点)的方法,建立虚点并把删除之后的操作挪到虚点上来。啊,初始化确实有问题,有可能多次删除的,所以要按操作的数量来,比如全部删除等等数据,哭了 1 # 阅读全文