[USACO Dec20 Bronze]Stuck in a Rut

2023-11-09

Farmer John 最近扩大了他的农场,从奶牛们的角度看来这个农场相当于是无限大了!奶牛们将农场上放牧的区域想作是一个由正方形方格组成的无限大二维方阵,每个方格中均有美味的草(将每个方格看作是棋盘上的一个方格)。Farmer John 的 N 头奶牛(1≤N≤50)初始时位于不同的方格中,一部分朝向北面,一部分朝向东面。

每一小时,每头奶牛会执行以下二者之一:

  • 如果她当前所在的方格里的草已经被其他奶牛吃掉了,则她会停下。
  • 吃完她当前所在的方格中的所有草,并向她朝向的方向移动一个方格。

经过一段时间,每头奶牛的身后会留下一条被啃秃了的轨迹。

如果两头奶牛在一次移动中移动到了同一个有草的方格,她们会分享这个方格中的草,并在下一个小时继续沿她们朝向的方向移动。

请求出每头奶牛吃到的草的数量。有些奶牛永远不会停下,从而吃到无限多的草。

输入格式(从终端/标准输入读入)

输入的第一行包含 N。以下 N 行,每行描述一头奶牛的起始位置,包含一个字符 N(表示朝向北面) 或 E(表示朝向东面),以及两个非负整数 x 和 y(0 \le x \le 10^90≤x≤109,0 \le y \le 10^90≤y≤109)表示方格的坐标。所有 x 坐标各不相同,所有 y 坐标各不相同。

为了使方向和坐标尽可能明确,如果一头奶牛位于方格 (x,y) 并向北移动,她会到达方格 (x,y+1)。如果她向东移动,她会到达方格 (x+1,y)。

输出格式(输出至终端/标准输出)

输出 N 行。输出的第 i 行包含输入中的第 i 头奶牛吃到草的方格的数量。如果一头奶牛可以吃到无限多的草,为这头奶牛输出 "Infinity"。

测试点性质

测试点 2-5 中,所有坐标不超过 100。

测试点 6-10 没有额外限制。

样例输入

6
E 3 5
N 5 3
E 4 6
E 10 4
N 11 2
N 8 1

样例输出

5
3
Infinity
Infinity
2
5
#include <bits/stdc++.h>
using namespace std;
int N, cnt;
struct Cow{
    char dir;
    int x, y, stop_x, stop_y, id;
    bool stopped;
}cow[60];
bool cmpCoor(Cow a, Cow b){
    if(a.dir == 'E' && b.dir == 'E'){
        return a.y < b.y;
    }else if(a.dir == 'N' && b.dir == 'N'){
        return a.x < b.x;
    }else{
        return a.dir < b.dir;
    }
}
bool cmpId(Cow a, Cow b){
    return a.id < b.id;
}
int main(){
    cin >> N;
    for(int i = 1; i <= N; i++){
        cin >> cow[i].dir >> cow[i].x >> cow[i].y;
        cow[i].id = i;
        cow[i].stopped = false;
        if(cow[i].dir == 'E'){
            cnt++;
        }
    }
    sort(cow + 1, cow + 1 + N, cmpCoor);
    for(int i = 1; i <= cnt; i++){
        for(int j = cnt + 1; j <= N; j++){
            if(cow[j].stopped || cow[j].y > cow[i].y || cow[j].x < cow[i].x){
                continue;
            }
            if(cow[i].y - cow[j].y < cow[j].x - cow[i].x){
                cow[i].stopped = true;
                cow[i].stop_x = cow[j].x;
                cow[i].stop_y = cow[i].y;
                break;
            }
            if(cow[i].y - cow[j].y > cow[j].x - cow[i].x){
                cow[j].stopped = true;
                cow[j].stop_x = cow[j].x;
                cow[j].stop_y = cow[i].y;
            }
        }
    }
    sort(cow + 1, cow + 1 + N, cmpId);
    for(int i = 1; i <= N; i++){
        if(!cow[i].stopped){
            cout << "Infinity" << endl;
        }else{
            if(cow[i].dir == 'E'){
                cout << cow[i].stop_x - cow[i].x << endl;
            }else{
                cout << cow[i].stop_y - cow[i].y << endl;
            }
        }
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[USACO Dec20 Bronze]Stuck in a Rut 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐

  • web前端html+css基础 项目实例

  • 【C++笔记】数据结构栈、堆,内存占用中栈区、堆区的区别和理解

    在计算机领域 堆栈是一个不容忽视的概念 我们编写的C语言程序基本上都要用到 但对于很多的初学着来说 堆栈是一个很模糊的概念 堆栈 一种数据结构 一个在程序运行时用于存放的地方 这可能是很多初学者的认识 因为我曾经就是这么想的和汇编语言中的堆
  • matlab机器人工具箱(1)

    1 机器人工具箱 2 Figure的基本组成 figure和axes的概念 在实际绘图中 一张图可能会有好几个子图 这时axes表示生成的各个小图 而figure则是绘制各图的大画布 所以 在之后设置图形属性时 有时用到gca Axes 有
  • Python爬虫自动刷“问卷网”问卷(不锁IP)

    大学很多项目都会要求征集问卷 但很难找到渠道迅速收集大量样本 如果是自己通过 问卷网 设计的问卷可以在设置不锁IP 默认情况 下用本方法快速刷取大量样本 且能保证问卷结果满足自身项目需求 即使没有了解过爬虫 稍有python基础看过本程序后
  • C++后台开发之我见

    C 后台开发之我见 2017 2 6 工作也快两年了 偶然看到自己以前写过的一些技术博客 发现自己自毕业后一直没有更新过自己的技术博客 趁现在是刚过完春节快要回公司工作之际 谈谈我个人对后台开发的一些个人见解 希望能够对在校的学生或者刚刚接
  • Python爬虫从入门到精通:今日作业_requests基础04_爬取药监总局中的企业详情数据_Python涛哥

    今日作业 爬取药监总局中的企业详情数据 爬取药监总局中的企业详情数据 url http scxk nmpa gov cn 81 xk 需求 将首页中每一家企业详情页对应的数据 每一家企业详情页对应的数据 将前5页企业的数据爬取即可 难点 用
  • scipy.sparse使用简例

    CDIMC Net 1 中有个对整个数据集求 kNN 图的函数 get kNNgraph2 2 是用 dense 的 numpy ndarray 存的 空间复杂度 O n 2 O n 2
  • HBuilder 制表符转换成空格

    在学习BootStrap时 看到 编码规范 by mdo 里面有一条关于编辑器配置的 用两个空格代替制表符 soft tab 即用空格代表 tab 符 避免常见的代码不一致和差异 然后找到了 HBuilder 制表符转换成空格 的方法 具体
  • Linux环境SVN用户权限修改

    1 查看SVN配置文件位置 系统环境 Linux 3 10 0 使用命令行查看SVN进程 ps ef grep svn 通过进程信息可以看到svnserve conf存放的目录 svnserve conf是svn配置文件 vim 目录 sv
  • OpenHarmony与HarmonyOS联系与区别

    目录 1 背景 2 OpenHarmony 3 HarmonyOS 4 鸿蒙生态 5 OpenHarmony与HarmonyOS的技术上实现区别 1 语言支持 2 SDK 的不同 3 运行调测方式不同 4 对APK的兼容性不同 5 包含关系
  • Android CheckBox 多选以及反选清除已选项

    前言 疫情随着这个春天的到来已悄然离去 你还记得填写问卷调查的那个时候么 话不多少 这篇文章要实现的就是一个问卷调查列表 即 Listview 嵌套 Listview 实现 checkbox 多选以及反选清除已选项 正文 思路就是定义一个
  • web服务选择lighttpd,采用fcgi组件技术扩展处理业务层

    目录 一 简介fcgi web和web服务器间数据传输的桥梁 2 二 源码编译配置ARM Lighttpd Fastcgi C 3 1 交叉编译 源文件都从官网下载 Fcgi lighttpd zlib 3 2 配置服务器server do
  • VMware上安装虚拟机的一些注意事项和VMware tools的安装

    VMware上安装虚拟机 VMware是windows上的一个应用程序 它可以虚拟出一个物理主机 pc机 在该虚拟机上可以安装linux系统 相关安装流程csdn上参考过多 这里不再赘述 虚拟机安装位置要求 1 不能和VMware放在同一个
  • 为AI而生的数据库:Milvus详解及实战

    1 向量数据库 1 1 向量数据库的由来 在当今数字化时代 人工智能AI正迅速改变着我们的生活和工作方式 从智能助手到自动驾驶汽车 AI正在成为各行各业的创新引擎 然而 这种AI的崛起也带来了一个关键的挑战 如何有效地处理和分析越来越丰富和
  • QSetting读取ini配置文件失败

    今天碰到一个问题 QSettings读取配置文件失败 同样的代码用5 13版本编译后读取正常 用5 7版本编译读取不到 排除了文件编码格式的问题 最终问题解决了 原因没有找到 解决方法是试错试出来的 解决方法是把相对路径换成了绝对路径 问题
  • 常见中间件漏洞复现

    目录 Tomcat 1 Tomcat 文件上传 CVE 2017 12615 2 Tomcat 代码执行 CVE 2020 1938 3 Tomcat弱口令登录获取后台 Weblogic 4 Weblogic反序列化漏洞获取服务器权限 CV
  • Vuex4(Module)+Typescript的基本使用

    一 Vuex4介绍 vuex 是一个专为 Vue js 应用程序开发的状态管理模式 库 它采用集中式存储管理应用的所有组件的状态 并以相应的规则保证状态以一种可预测的方式发生变化 vuex包括五大核心概念分别是State Getter Mu
  • Sql server 千万级大数据SQL查询优化的几点建议

    1 对查询进行优化 应尽量避免全表扫描 首先应考虑在 where 及 order by 涉及的列上建立索引 2 应尽量避免在 where 子句中对字段进行 null 值判断 否则将导致引擎放弃使用索引而进行全表扫描 如 select id
  • 应“云”而生的云数据库,让数据从“江河”到“大海”

    随着信息技术的发展 互联网应用的加速普及 人类进入了数字经济时代 进入二十一世纪以后 随着移动互联网技术 物联网技术 5G等技术的发展 全球数据圈 Global Datasphere 呈指数级递增 IDC预测全球数据将于2025年增长至17
  • [USACO Dec20 Bronze]Stuck in a Rut

    Farmer John 最近扩大了他的农场 从奶牛们的角度看来这个农场相当于是无限大了 奶牛们将农场上放牧的区域想作是一个由正方形方格组成的无限大二维方阵 每个方格中均有美味的草 将每个方格看作是棋盘上的一个方格 Farmer John 的