[AGC029D] Grid game题解

这题很显然可以用贪心来解。

由于先手不动一定会让局数更少,所以先手要能动就动。

而后手一定是希望他的石子可以撞到一个障碍物上,这样先手就无法移动了,后手就可以让局数更少。

因为先手一定会能动就动,所以后手只能走到横坐标大于纵坐标的障碍物上方。那就很简单了,我们只需要统计符合特点的障碍物即可。

code:

复制代码
bool mp[200001][200001];//存图 
pair<long long,long long> a[555555];//一个结构体,有两个元素,一个叫first,一个叫second 
long long col[555555]={0,1};//第i行有几个可到达的列
long long ret;
int main()
{
    int n,m,k;
    cin>>n>>m>>k;
    ret=n;
    for(int i=1;i<=k;i++)
    {
        cin>>a[i].first>>a[i].second;//障碍物的位置 
        mp[a[i].first][a[i].second]=true;
    }
    long long sum=1;
    for(int i=2;i<=n;i++)
    {
        if(!mp[i][sum+1]&&sum<m)//高木最优策略 
        {
            sum++;
        }
        col[i]=sum;
    }
    for(int i=1;i<=k;i++)
    {
        if(col[a[i].first]>=a[i].second)
        {
            ret=min(ret,a[i].first-1);//统计答案 
        }
    }
    cout<<ret;
    return 0;
}
复制代码

 

posted @   _Acheron  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示
人是可以改变一切的,世上的一切。