摘要:
题意:给定N个点,求最小圆覆盖的圆心喝半径。保留10位小数点。 N<1e5; 思路:因为精度要求较高,而且N比较大,所以三分套三分的复杂度耶比较高,而且容易出错。 然是写下增量法吧。 伪代码加深记忆: 那么代码的核心就是三点求外接圆 三点求外接圆: 两边求中垂线交点。 阅读全文
摘要:
题意:给定N点M边的无向连通图,每条边有两个权值(g,s)。 给定G,S。 让你给出一组(g0,s0)使得图中仅留下g<=g0, s<=s0的边之后,依然连通,并求Gg0+Ss0的最小值。 n<=200,m<=50000。 思路:枚举g0,求最小的s0,满足生成MST。 把边按g排序,一条边一条边的 阅读全文
摘要:
题意:给你n个工作集合,给你T的时间去做它们。给你m和s,说明这个工作集合有m件事可以做,它们是s类的工作集合(s=0,1,2,s=0说明这m件事中最少得做一件,s=1说明这m件事中最多只能做一件,s=2说明这m件事你可以做也可以不做)。再给你ci和gi代表你做这件事要用ci的时间,能获得gi的快乐 阅读全文
摘要:
题意:给两种宝石,体积S1,S2,价值V1,V2,背包容量n,求最大收益。 所有数据都在32位整数范围内。 思路:只有两种物品的背包,显然不是常见的背包,应该从背包之外的思路下手。 1:可以猜想其中一个是数量少于1e5,暴力求,然后过了。 2:分类处理数据: 如果有物品体积>=sqrt(N),那么可 阅读全文
摘要:
题目:在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。 不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。 接下来你需要在线处理M次操作: 0 x k 表示发生了一次地震,震中城市为x 阅读全文
摘要:
题意:一个序列被称作是不无聊的,当且仅当,任意一个连续子区间,存在一个数字只出现了一次,问给定序列是否是不无聊的。 思路:每次找到一个只出现了一次的点,其位置的pos,那么继续分治[L,pos-1],[pos1+1,R];为了保证分治的复杂度,每次的复杂度应该是拆开后较小的哪个。 可以类比启发式合并 阅读全文
摘要:
题意:有N个牧场,每个牧场修水井花费Wi,连接牧场花费Pij,问最小花费,使得每个牧场要么有水井,要么和有水井的牧场有通道。 思路:加一个格外的节点O,连接O表示修井,边权是修井的费用。 那么这N+1个点求最MST即可。 刘同学想到的解法: 先找到修井费用最低的的牧场,然后和上面一样,由于最低的那个 阅读全文
摘要:
题意: 给定长度为N的海滩,然后有M做防御塔,给出每座塔的位置Xi,到海岸的距离Yi。 求防御塔上最小观测半径Ri,使得海滩被封锁。 思路:要使左边界和右边界连通。 很nice,可以二分+并查集做。 可以最小生成树做。 可以最短路做。 MST代码: #include<bits/stdc++.h> # 阅读全文
摘要:
题意:有N种化学元素,有M种转化关系,(u,v,L)表示化学物质由u变为v需要L能量,现在你有E能量,问最多有多少种不同的途径,使得1转为为N,且总能量不超过E。 思路:可以转为为带权有向图,即是求前K(K未知)短路,满足前K短路的边权和小于等于E,求K。 BZOJ上面提交的时间和空间都还不错。但是 阅读全文
摘要:
题意:给定一个5*5的棋盘,上面有白马给妈给12匹,以及一个空格。问是否能在15步内有给定棋盘转移到目标棋盘。 如果可以,输出最小步数。 否则输出-1; 思路:由于步数比较小,我们就直接不记录状态vis[]用BFS求了。 直接搜索(即可能会多次走到同一状态)。 减枝1:f()=g()+h(),g是当 阅读全文