1789. 牛为什么过马路 II
Powered by:NEFU AB-IN
Link
文章目录
- 1789. 牛为什么过马路 II
- 题意
- 思路
- 代码
1789. 牛为什么过马路 II
题意
农夫约翰的农场布局十分奇特,一条大型的环形道路将奶牛吃草的田地围了起来。
每天早晨,奶牛们穿过这条道路,进入到田地吃草;每天晚上,奶牛们穿过这条道路,离开田地,返回牛棚休息。
众所周知,奶牛是有习性的动物,每头奶牛每天通过道路的方式都相同。
每头奶牛每天固定地从道路的某一位置进入田地,从道路的另一不同位置离开田地。
所有奶牛的所有进出位置之间互不相同
约翰共有 26 头奶牛,依次命名为 A∼Z。
因此,道路上共有 52 个不同的进出位置。
约翰沿着环形道路按顺时针方向扫描了每个位置,并记录了每个位置处经过的奶牛的名字,最终形成了一个包含 52 个字母的序列,A∼Z 中的每个字母恰好出现两次。
他并没有记录哪些位置是入口,哪些位置是出口。
看着地图上记录的这些位置,约翰想要知道一天当中,有多少对奶牛之间的从入口穿过田地到达出口的路径可能会存在交叉。
如果奶牛 A 从入口穿过田地到达出口的路径必须穿过奶牛 B 从入口穿过田地到达出口的路径,那么称这对牛 (A,B) 是“交叉”对。
请帮助约翰计算“交叉”对(不考虑顺序,即 (A,B) 与 (B,A) 视为同一对 )的总数。思路
当某个字母有且仅有一个在两个相同字母中间时,算交叉
代码
''' Author: NEFU AB-IN Date: 2022-02-04 18:06:33 FilePath: \ACM\Acwing\1789.py LastEditTime: 2022-02-04 19:53:32 '''from collections import defaultdict from string import ascii_uppercased = defaultdict(list)if __name__ == "__main__":s = input()for i in range(len(s)):d[s[i]].append(i)# print(d)res = 0for i in ascii_uppercase:x1 = d[i][0]x2 = d[i][1]for j in d.keys():if i == j:continuey1 = d[j][0]y2 = d[j][1]if ((y1 < x1 < y2) and(not (y1 < x2 < y2))) or ((y1 < x2 < y2) and(not (y1 < x1 < y2))):res += 1print(res // 2)
1789. 牛为什么过马路 II相关推荐
- 1788. 牛为什么过马路
尽管科学界已经深入探究了鸡为什么过马路这一问题,令人惊讶的是,关于牛过马路的的研究文献却很少发表. 农夫约翰很清楚这一问题的重要性,当一所当地的大学联系他,要求他协助进行一项关于奶牛为什么要过马路的科 ...
- 牛客 String II
文章目录 1. 题目 2. 解题 1. 题目 链接:https://ac.nowcoder.com/acm/contest/9715/B 来源:牛客网 给出一个仅包含小写字母的字符串s,你最多可以操作 ...
- 题目汇总(ACWing)
枚举: 1.拍照 解题思路:枚举a1,求出每个ai,然后检查这个答案是否合法. 2.牛为什么过马路 解题思路:对于一对相同的字母,枚举中间是否存在没有记录的单个字符. 3.牛的基因组学 解题思路:暴力 ...
- acm c 和java如何取舍,ACM中使用JAVA语言的优缺点介绍
Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点: (1) 最明显的好处是,学会Java,可以参加Java Challenge :) (2) 对于熟 ...
- acm java题_【转】ACM中java的使用
ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ...
- acm竞赛java很少_ACM比赛中JAVA的应用
Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点: (1) 最明显的好处是,学会Java,可以参加Java Challenge (2) 对于熟悉C/C+ ...
- 动态规划(持续更新、整理)
动态规划 记忆化搜索 不同路径:leetcode-62 分割回文串:leetcode-131 单词拆分II:leetcode-140 戳气球:leetcode-312 零钱兑换:leetcode-32 ...
- (构造+二进制)2020牛客寒假算法基础集训营3B.牛牛的DRB迷宫II
2020牛客寒假算法基础集训营3B.牛牛的DRB迷宫II 思路: 一开始我是考虑全部都是B会怎么样,然后删改,结果到后面发现很难推到普遍规律(可能是因为我没看出来). 看了题解之后,觉得这题出的挺有意 ...
- 构造-牛客寒假集训营3-牛牛的DRB迷宫II
构造-牛客寒假集训营3-牛牛的DRB迷宫II 题目: 题意: 输入一个数字,表示从起点(1,1)到终点(n,m)的方案数量,输出满足条件的迷宫.输入一个数字,表示从起点(1,1)到终点(n,m)的方案 ...
最新文章
- wp7 sdk部署应用操作
- 用scheme重写Python的三大函数map reduce 和filter
- docker run -it 如何退出_Docker学习笔记(4)容器的基本命令 1 - 你个小秃头
- Go语言、Docker 和新技术
- 配置节处理程序时出错,未能加载文件或程序集
- Python-02-基础知识
- android手机电话铃声设置,安卓手机铃声怎么设置
- 使用Docker快速搭建生产环境
- 如何在Visual Studio中开发自己的代码生成器插件
- Python实现常见算法[1]——冒泡排序
- RK3288_Android7.1添加两个gpio的按键
- Java 标注(Annotation)详解
- ArcGIS API for JavaScript 加载水经注离线地图
- Win7+MATLAB2017a+虚拟光驱
- 电信版行货黑莓9630修复历险记
- android 基站信息说明,安卓android手机查看基站信息
- visio2013 如何快速画出所有箭头
- 周易六十四卦——雷火丰卦
- html用title属性实现鼠标悬停显示文字
- How to Generate PDF in Ruby on Rails(HowtoGeneratePDFs) ZT
热门文章
- C语言十大操作符超全详解【建议收藏】
- java 实体字段校验@Valid - @NotNull @NotEmpty @NotBlank - ValidExceptionHandler
- 基于Canal+kafka监听数据库变化的最佳实践
- (外部)特定领域语言的完整指南
- Python-openpyxl之二次封装
- 循环神经网络RNN了解
- 论文阅读笔记:《Neural3D: Light-weight Neural Portrait Scanning via Context-aware Correspondence Learning》
- 眼界、激情、感恩——一个GIS专业学生大学四年总结,软件大赛、考研感想
- 浪漫又务实的华为自研之路: 始于情怀,终于智能
- QT+讯飞智能语音在线识别demo,录音识别