- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这个问题之前有人问过,Finding minimum number of points which covers entire set of intervals?现在答案是要根据结束时间对间隔进行排序。我的问题是,为什么根据开始时间排序是错误的?这是我写的代码-
struct Interval {
int start;
int end;
};
bool helper(Interval a,Interval b)
{
return a.start<b.start;
}
int main() {
int t;
cin>>t;
while(t--)
{
int n,c;
cin>>n>>c;
vector<Interval> i(n);
for(int j=0;j<n;j++)
{
cin>>i[j].start>>i[j].end;
}
sort(i.begin(),i.end(),helper);
int count=1;
Interval s=i[0];
for(int j=1;j<n;j++)
{
if(i[j].start>s.end)
{
count++;
s=i[j];
}
}
cout<<count*c<<endl;
}
return 0;
}
如果我将辅助函数更改为 返回 a.end<=b.end我得到正确答案。 (我正在使用在线法官)。对我来说,按开始时间排序似乎也应该给出正确的输出,我真的想不出一个例子,它没有。谁能给我一个?
最佳答案
举个例子
按start排序时,先取红色区间。这意味着 count
不会递增,直到有一个 start
大于 10 的区间。所以你的算法的输出将为 1。但它应该是 2,因为绿色和蓝色区间不相互重叠。
OTOH,如果算法按终点(as described in the answer to the linked question)排序,那么绿色贡献点 4,蓝色贡献点 8,红色已经被覆盖。得出正确答案 2。
关于algorithm - 查找覆盖整组间隔的最小点数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51346250/
我有一个问题需要分而治之解决。有一个包含 N 个点的集合 S。如果有一个平行于轴的正方形,只包含S中的两个点p1和p2,则我们称p1和p2为 friend 点。 现在,我需要使用分而治之算法来计算 S
为 iPad 编程时,字体(和其他)大小以“磅”为单位指定。我已经看到将点作为独立于屏幕分辨率的像素的引用。但是我无法确定一个点的实际大小(即以英寸为单位)。一个点是否等于标准 iPad 屏幕上的一个
我有一个来自 Hadley Wickham 的 ggplot2 书中的问题。 我在这里有这个数据框: class % group_by(class) %>% summarise(n = n
好的,这是一些代码( pdfDocument 是 com.itextpdf.text.Document ): PdfPTable table = new PdfPTable(1); PdfPCell
我正在尝试添加一个 if 语句,如果小于 17,则将另一张牌添加到 DealerHand 中。 目前,它只是记录: 7 19 [ { suit: '♦', value: 9, points: 9 },
我正在编写一个程序,我需要: 对图像的每个像素进行测试 如果测试结果为真,我必须向点云中添加一个点 如果测试结果为假,什么都不做 我已经在 CPU 端 C++ 上编写了一个工作代码。现在我需要使用 C
我是一名优秀的程序员,十分优秀!