HDU - 2018杭电ACM集训队单人排位赛 - 3 - Problem B. Bullet

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: HDU - 2018杭电ACM集训队单人排位赛 - 3 - Problem B. Bullet

Problem B.Bullet

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 73    Accepted Submission(s): 36


Problem Description


In GGO, a world dominated by gun and steel, players are fighting for the honor of being the strongest gunmen. Player Shino is a sniper, and her aimed shot kills one monster at a time. Now she is in an n×n map, and there are monsters in some grids. Each monster has an experience. As a master, however, Shino has a strange self-restrain. She would kill at most one monster in a column, and also at most one in a row. Now she wants to know how to get max experience, under the premise of killing as many monsters as possible.


Input


The first line contains an integer n(n≤500)

Then n lines follow. In each line there are n integers, and Aij represents the experience of the monster at grid (i,j). If Aij=0, there is no monster at grid (i,j).(Aij≤1e9)

The experience is the minimal experience of all the monster which are killed.

It guaranteed that the maximum of the experience of the monster is not larger than 10^9


Output


One integer, the value of max experience.


Sample Input

2

2 0

1 8


Sample Output

2


题目大意:每行每列最多取一个数,构成的集合在满足元素数量最多的前提下,最小值最大。 最小值增大时,可匹配边的数量减少,所以最大匹配可能减小,于是可以二分最小值,每次求图中权值大于最小值的边的最大匹配。


解题思路:二分图最大匹配 + Hungarian 算法。


AC 代码


/

#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn=510;
struct edge
{
    int to,nx,w;
}eds[maxn*maxn];
int n, cnt;
int linker[maxn], vis[maxn], head[maxn];
void init()
{
    cnt=0;
    mem(head,-1);
}
void addEdge(int u, int v, int w)
{
    eds[cnt].to=v;
    eds[cnt].w=w;
    eds[cnt].nx=head[u];
    head[u]=cnt++;
}
bool dfs(int u,int limit)
{
    int v;
    for(int i=head[u];i!=-1;i=eds[i].nx)
    {
        v=eds[i].to;
        if(eds[i].w>=limit && !vis[v])
        {
            vis[v]=1;
            if(!linker[v]||dfs(linker[v],limit))
            {
                linker[v]=u;
                return 1;
            }
        }
    }
    return 0;
}
int jde(int limit)
{
    mem(linker,0);
    cnt=0;
    for(int i=0;i<n;i++)
    {
        mem(vis,0);
        if(dfs(i,limit)) cnt++;
    }
    return cnt;
}
int main()
{
    while(~scanf("%d",&n))
    {
        init();
        int w;
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
            {
                scanf("%d",&w);
                addEdge(i,j,w);
            }
        int ans=jde(1); // 求出最大匹配数
        int l=0,r=INT_MAX;
        while(r>=1) // 二分思想,可自己模拟下就明白了
        {
            if(jde(l+r)==ans) l+=r;
            else r>>=1;
        }
        printf("%d\n",max(1,l));
    }
    return 0;
}
目录
相关文章
|
6月前
|
人工智能 弹性计算 安全
2026年阿里云最新活动内容解读,个人和企业优惠权益及云产品特惠和免费试用等规则介绍
2026年阿里云推出多重优惠活动,覆盖权益中心、企业上云、中小企业扶持、云服务器爆款直降及免费试用等领域。活动提供AI焕新券(满20减10元)、GPU算力1折起、160+款云产品免费试用等权益,支持个人开发者、中小企业及企业级用户。通过低价域名(1元起)、高性能云服务器、协同办公解决方案及专项补贴(最高10万元出海补贴)。
1172 8
|
7月前
|
存储 弹性计算 安全
阿里云“99套餐”活动解析:套餐相关规则及云产品及组合配置与价格参考
阿里云“99套餐”是阿里云为了助力个人和中小企业无忧上云而推出的套餐组合活动,目前活动截止日期已延长到2027年3月31日。“99套餐”为在选购云服务器的同时还需要选购AI建站、SSL证书、安全防护包、RDS数据库等云产品的用户提供了额外的组合购买套餐,包括建站礼包、加36元防护主机安全、加99元解锁弹性数据库、加99元享高效存储保障等套餐,帮助用户一键选购。本文为大家介绍活动的相关规则及组合套餐配置与价格,以供参考。
977 2
|
5月前
|
存储 人工智能 弹性计算
2026年阿里云OpenClaw(原Clawdbot/Moltbot)一键部署教程
在AI智能助理领域,OpenClaw(原Clawdbot、Moltbot)凭借“实际完成任务”的核心定位脱颖而出,成为开源社区的现象级产品。这款本地优先的个人AI代理平台,历经两次更名迭代,彻底打破了传统对话机器人“只说不做”的局限——普通AI只会告知操作步骤,而OpenClaw能直接帮你完成任务:整理邮件时自动分类提取要点、处理文件时直接执行编辑存储、接收指令后即刻启动对应流程,真正实现“7×24小时在线工作,指令下达即任务完成”。
1635 1
|
5月前
|
人工智能 自然语言处理 运维
GEO推广服务深度解读:AI搜索时代的企业流量新范式
生成式AI重塑搜索生态,“关键词搜索”正被“自然语言提问+AI生成答案”取代。GEO(生成式引擎优化)应运而生——它不追求页面排名,而致力于让企业内容成为AI回答中的权威引用源。本文系统解析GEO的技术原理、核心价值、落地路径与未来趋势,助力企业抢占AI搜索时代增长先机。(239字)
1420 1
|
6月前
|
人工智能 自然语言处理 算法
AI 智能体运营工程师:从工程视角看定义、职责与落地方法
本文定义“AI智能体运营工程师”这一新型复合角色,聚焦智能体在真实业务中的长期稳定运行。通过任务编排、工具链协同、效果评估与持续优化,推动AI从一次性工具升级为可复用、可演进的工程化系统,助力企业级AI落地。(239字)
|
7月前
|
数据采集 供应链 物联网
RFID智能灯条让快递驿站查找如此简单
相信很多取快递时都会遇到相同的问题,快递驿站的包裹物品众多,很难一下子找到自己的快递物件。如何快速高效地找到呢?以往都是通过取件码去一层一层的找到货架。目前,RFID技术的亮灯标签和包裹快递进行身份绑定,通过数据采集后进行开始查询,实现亮灯提示,从而快速的知道快递包裹在哪个位置,RFID智能灯条让快递驿站查找如此简单。
|
6月前
|
人工智能 运维 监控
智能体来了,智创未来 ——从系统架构视角看 AI 智能体的工程化演进
随着大模型发展,单一模型难以应对复杂工程任务。智能体通过“感知-规划-执行-反馈”闭环,实现目标驱动的自主决策与工具调用,具备持续运行与自我调整能力。它融合大模型的认知力与系统执行力,推动软件从人工驱动走向策略驱动,成为“智创未来”的核心工程形态。
450 0
|
8月前
|
人工智能 UED 开发者
别把问卷做成"审讯录":用AI重构与用户的每一次对话
95%的用户调研问卷因为"审讯式提问"而被无视。本文提供一套基于认知心理学的AI指令,将枯燥的填表转化为有温度的对话,帮助开发者和产品经理设计出高完成率、高信度的调研问卷,打破"幸存者偏差",获取真实用户洞察。
1073 9
|
7月前
|
人工智能 自然语言处理 安全
国内智能客服系统有哪些值得推荐(2025年12月更新)
本文围绕智能客服系统选型,分析瓴羊Quick Service、智齿客服、百度智能云客服、Salesforce Service Cloud四大主流产品的核心优势、技术亮点与资质认证,结合企业实际场景提供选型建议,助力实现服务智能化升级。
|
网络协议
TCP状态转换图
TCP状态转换图 注:主动、被动 与 服务器、客户端没有明确的对应关系。 这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻的认识,不能只停留在一知半解之中。
2432 0