这条题目A了十次...emmmmm 其实不难就是一个贪心.... 先说下算法(之前的和现在的) 之前考虑的其实很简单.用平面几何即可将雷达可以放置的区域转化为区间(顺便判断是否无解.问题就比较简单了:先排序.然后我们第一个区间我们肯定是放在区间的最右边,然后对后面的我们如何处理呢?若后一个区间的左边在目前区间的右边,我们肯定是不用动这个雷达的摆放位置的:如果不满足,那么我们就要看看后一个区间的右边和这个区间的摆放位置了.如果后一个区间的右边在目前区间的右边的左边,那么我们就应当放在后一个区间的右…
Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the coasting, can only cover d distance, so an island…
Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the coasting, can only cover d distance, so an island…
装雷达 题目大意,就是令在海岸线的(直线)一边是海(y>0),另一边是陆地(y<=0),在海岸线上装雷达,雷达可以覆盖的范围为d,海上有岛,(x,y),问你应该怎么装雷达,才能做到技能雷达的检测范围覆盖全部的岛,又能使雷达安装最少?(不能做到输出-1) 我的思路,首先是把岛排一次序,然后从x坐标最小的那个岛开始贪心算法,怎么做呢?那就是用x=sqrt(d*d-y*y)+xa,来获得当前岛的安装最远的雷达的位置,然后不断往前找,在超越当前雷达圆心距离之前,不断缩小雷达的位置,使雷达能覆盖到更多的…
题目大意(vj上的翻译版本) 假定海岸线是无限长的直线.陆地位于海岸线的一侧,海洋位于另一侧.每个小岛是位于海洋中的一个点.对于任何一个雷达的安装 (均位于海岸线上),只能覆盖 d 距离,因此海洋中的小岛被雷达安装所覆盖的条件是两者间的距离不超过 d . 我们使用卡笛尔坐标系,将海岸线定义为 x 轴.海洋的一侧位于 x 轴上方,陆地的一侧位于下方.给定海洋中每个小岛的位置,并给定雷达安装的覆盖距离,您的任务是写一个程序,找出雷达安装的最少数量,使得所有的小岛都被覆盖.注意:小岛的位置以它的 x-…
建模:二维转一维:贪心 Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the coasting, can only cover d…
与其说是训练不如说是重温.重新写了Java版本的代码. import java.util.*; import java.math.*; import java.io.BufferedInputStream; public class Main { static class Node { int r, c, t; public Node(int _r, int _c) { this(_r, _c, 0); } public Node(int _r, int _c, int _t) { r=_r;…
题目与分析 题解见https://blog.csdn.net/cmershen/article/details/53200922. 训练赛场上我们写出来了--在4小时50分钟的时候...激情补题啊...问题是这就是个尬模,我赛场上的写法和这个差不多...然后疯狂wa... 最后AC的是换了个写法....然后现在我再重头写我都一股子蛋疼,特么找不到问题在哪里是真的骚,以后多训练才是王道.(之后回顾的时候再找找看问题吧) 代码 #include <iostream> #include <cs…
题意 给定\(n\)个炸弹,每个炸弹的坐标与代价与影响范围给定,炸弹会引爆影响范围内其他所有炸弹.求引爆所有炸弹的最小代价. 分析 先做\(n^2\)的循环,然后建图,对\(i\)能引爆\(j\)建边\((i,j)\).然后对这个图求强连通分量并缩点,构成新的有向无环的森林.定义每个强连通分量的cost为其中包含的点的最小cost,然后把新森林中所有入度为0的点的cost加起来求和即可(由于无环,所以从任何入度不为0的点往回走,必然终止于一个入度为0的点). 代码 #include <iostr…
题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为子串不重叠且出现次数最多的串. 看起来很简单对吧,做法也很简单,先排序字符,然后枚举合法的B串能在A串中出现的次数,看能有几个C串,然后求个最优解就行了.是不是很简单?然后WA了十几发,各种捉bug,太杀妈了. 这份代码看起来贼简单,这是我写的第三版了.... 这种字符串题目太苦手了QAQ 代码 #…