ACM,
zhang_ab
渣渣一枚
展开
-
POJ 1061 :拓展欧几里德
题目为POJ1061 青蛙的约会 题意大致为: 两只青蛙在不同的坐标x,y,沿着一个方向跑环,每一次的移动距离为m,n,环的长为L,问能否成功会师即在某一时刻在同一坐标点?输出最小移动次数或“Impossible” 首先是拓展欧几里德,欧几里德算法我们都知道,就是求两个整数a,b的最大公约数gcd,而拓展欧几里德算法在得到gcd的同时,还求解出了ax+by=gcd的一组特解x原创 2017-04-13 13:36:47 · 315 阅读 · 0 评论 -
HDU6127-Hard challenge
HDU6127 题意:给定n个平面坐标点,任意两个点两两连线(连线不过原点),每个点带权值,然后任意两个点所连成的线段的权值为点权的乘积,找一条过原点的直线,要求它所穿过的线段的权值和最大,输出最大权值和官方题解:对于一条直线,线段权值和实际上就等于其两边点权和的乘积,所以把所有点按极角排个序,然后扫一圈就好了。(喵了个咪)原创 2017-08-16 16:28:57 · 178 阅读 · 0 评论 -
分治入门——数列分治
分治思想:划分子问题,解决子问题,合并子问题题目:输入一个整数n,然后输入n个整数。若是将n个整数进行冒泡排序(升序),那么请问排完序之后将会发生多少次的数据交换即求序列中存在的逆序对的个数?(1题解:虽然题目说是冒泡,但是冒泡的复杂度是O(n^2),所以必然超时。因此这里使用分治的思想即简单修改一下归并排序。步骤如下: (1)将原序列命名序列A,现在问题为求序列A的逆序对个数并使A序列原创 2018-01-19 22:32:29 · 304 阅读 · 0 评论 -
分治入门——树分治
分治思想:划分子问题,解决子问题,合并子问题题目:POJ1741 题意:给定一棵含有n个节点的无向带权树,满足距离≤k的两点共有多少对?(n≤1e4)题解: (1)首先找到树A的重心,(重心指的是一个节点,将该节点删去之后剩下的最大子树的节点数最小)将其作为树A的根。在数列的分治之中我们是直接去区间的中间为分界线,但是这里,如果随意将某个点删去,最坏的情况可能是这棵树退化成一条链,递归原创 2018-01-20 12:44:39 · 332 阅读 · 0 评论 -
Trouble of Tyrant(平面几何折线)
题目:2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 参考博客:大神的最后是二分做法题意: 给定一张无向带权图,规定 (1) 1跟2~n各连接一条边 (2) 2~n按照顺序依次连接一条边然后有q个询问,每次询问输入一个d,问所有的边权加上d之后,从1到达n的最短路径长度。思路: 这道题仔细观察会发现,从1到达n总共有n-1条路径,每一条的路径的经过的边的...原创 2018-04-30 21:24:47 · 300 阅读 · 0 评论 -
HDU-2196
题目:HDU-2196参考博客题意:给定一棵树,每条树边附带边权,求每个点的在这棵树上能够去到的最远距离思路:树形dp,做两次dfs 第一次dfs得到每个节点到它子树中节点的最远距离和次远距离,然后第二次dfs得到经过父亲到当前节点的最远距离 第二次dfs时是用父亲的最远距离 + 边权(父亲,儿子)来更新状态,因此需要用son记录父亲的最远距离和次远是经过了哪个儿子得到的,防止...原创 2018-07-23 10:59:31 · 843 阅读 · 0 评论