问用三条 水平或竖直线能否覆盖所有点
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11163
直接DFS,想贪心想了好久,设想各种优先级都不能够满足条件,其实限制在三条直线,dfs 的复杂度只有O(8n)
#include <stdio.h>
#include <algorithm>
#define N 100001
struct Point{
int p,f,id;
void init(int a,int b,int c)
{
p = a;
id = b;
f = c;
}
}arr[N];
bool cmp(Point a,Point b)
{
return a.p < b.p;
}
int cow[N][2],x[N],y[N];
int n,flag;
void dfs(int k,int t)
{
if(flag)
return ;
if(k > 3)
return ;
if(t == n)
{
flag = 1;
return ;
该博客讨论了如何解决一道编程竞赛题目,即判断是否能用三条水平或竖直的线覆盖所有给定点。作者尝试了贪心策略但未成功,最终采用深度优先搜索(DFS)方法,指出在三条直线限制下,DFS的时间复杂度为O(8n)。
订阅专栏 解锁全文
685

被折叠的 条评论
为什么被折叠?



