POJ - 3020 Antenna Placement(最小覆盖路径)

本文通过一道编程题探讨了最小路径覆盖问题,并给出了详细的解题思路及代码实现。利用最大匹配算法来解决无线网络覆盖最少数量的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---恢复内容开始---

https://vjudge.net/problem/POJ-3020

题意

*--代表城市,o--代表空地

       给城市安装无线网,一个无线网最多可以覆盖两座城市,问覆盖所有城市最少要用多少无线。

 

分析

第一眼看没什么感觉,但要是想到需要处理的点是城市,那这个问题就是一个最小路径覆盖问题了。因为最多覆盖两个城市,即相邻城市才匹配。最小路径覆盖=总节点数-最大匹配数。建图时是双向的,所以最大匹配数/2。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<algorithm>
const int MAXN= 500;//最大顶点数
const int MAXM = 11000;//最大边数
const int INF=0x3f3f3f3f;
using namespace std;

bool g[MAXN][MAXN],used[MAXN];
int linker[MAXN],index[MAXN][MAXN];
int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
int tot;
char s[MAXN][MAXN];

bool dfs(int u){
    for(int v=0;v<tot;v++){
        if(!used[v]&&g[u][v]){
            used[v]=true;
            if(linker[v]==-1||dfs(linker[v])){
                linker[v]=u;
                return true;
            }
        }
    }
    return false;
}
int hungry(){
    int res=0;
    memset(linker,-1,sizeof(linker));
    for(int i=0;i<tot;i++){
        memset(used,false,sizeof(used));
        if(dfs(i)) res++;
    }
    return res;
}
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int n,m;
        memset(index,-1,sizeof(index));
        memset(g,false,sizeof(g));
        scanf("%d%d ",&n,&m);
        tot=0;
        for(int i=0;i<n;i++){
            gets(s[i]);
            for(int j=0;j<m;j++){
                if(s[i][j]=='*'){
                    index[i][j]=tot++;
                }
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(index[i][j]!=-1){
                    for(int k=0;k<4;k++){
                        int x=i+dir[k][0];
                        int y=j+dir[k][1];
                        if(x>=0&&x<n&&y>=0&&y<m&&index[x][y]!=-1){
                            g[index[i][j]][index[x][y]]=true;
                        }
                    }
                }
            }
        }
        int res=hungry();
        printf("%d\n",tot-res/2);
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/fht-litost/p/9245456.html

内容概要:该论文聚焦于T2WI核磁共振图像超分辨率题,提出了一种利用T1WI模态作为辅助信息的跨模态解决方案。其主要贡献包括:提出基于高频信息约束的网络框架,通过主干特征提取分支和高频结构先验建模分支结合Transformer模块和注意力机制有效重建高频细节;设计渐进式特征匹配融合框架,采用多阶段相似特征匹配算法提高匹配鲁棒性;引入模型量化技术降低推理资源需求。实验结果表明,该方法不仅提高了超分辨率性能,还保持了图像质量。 适合人群:从事医学图像处理、计算机视觉领域的研究人员和工程师,尤其是对核磁共振图像超分辨率感兴趣的学者和技术开发者。 使用场景及目标:①适用于需要提升T2WI核磁共振图像分辨率的应用场景;②目标是通过跨模态信息融合提高图像质量,解决传统单模态方法难以克服的高频细节丢失题;③为临床诊断提供更高质量的影像资料,帮助医生更准确地识别病灶。 其他说明:论文不仅提供了详细的网络架构设计与实现代码,还深入探讨了跨模态噪声的本质、高频信息约束的实现方式以及渐进式特征匹配的具体过程。此外,作者还对模型进行了量化处理,使得该方法可以在资源受限环境下高效运行。阅读时应重点关注论文中提到的技术创新点及其背后的原理,理解如何通过跨模态信息融合提升图像重建效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值