例题:牧场上的草泥马

大意:

安第斯山脉印第安人农场的布局相当奇特,他的草泥马白天吃草的田野周围,绕着一条大型圆形道路。每天早晨,草泥马在前往田野时要穿过这条路,每天晚上,他们离开田野回到谷仓时,都会再过一遍这条路。正如我们所知,草泥马是一种习惯性动物,它们每天都以同样的方式过马路。每只草泥马都在不同的点进入田野,走出田野,并且所有的点都与其他的不同。印第安人拥有26只草泥马,他把他们命名为A到Z,所以在这条路上有52个点。印第安人通过绕着圆形道路顺时针方向扫描这些点来记录它们,写下每一个点所属的草泥马的名字,最终形成一个有52个字符的字符串,字母表中的每一个字母都出现了两次。他没有记录哪些点是进入田野的点,哪些是走出田野的点。看着他的地图,印第安人很好奇,在一天中会有多少对不同的草泥马穿过马路。如果草泥马A从入口到出口的路径必须穿过草泥马B从入口到出口的路径,他把这对草泥马(A,B)称为交叉对。请帮助印第安人计算出交叉对的数量。

这个题目呢,老师已经讲过了,但老师讲完后,我是这样的:

但经过我看人家的程序反复思考(又是这样),终于......

思路是这样的:

记下草泥马进去的位置和走出的位置,如果A先进A+1后进,而A+1先出A后出,那么他们俩路线交叉,每次累加就行了

代码:

#include<bits/stdc++.h>using namespace std;
struct cow
{
int t,w;
}a[60];      //弄个结构体玩玩,t代表进去(头),w代表出来(尾)int ans=0; //用来统计交叉数
int main()
{
string s;  //字符串
cin>>s;
for(int i=0;i<26;i++)a[i].t=a[i].w=0;//都先赋值为0
for(int i=0;i<52;i++)  //进进出出看到52次草泥马{if(a[s[i]-'A'].t==0)a[s[i]-'A'].t=i+1;//a[1]存A接下来顺序存,t为零时代表它刚进去else a[s[i]-'A'].w=i+1;//不为0代表它已经出去,因为i是从0开始所以要加1}for(int i=0;i<=25;i++)for(int j=0;j<=25;j++){if(a[i].t<a[j].t&&a[i].w<a[j].w&&a[i].w>a[j].t)ans++;//如果一只比另一只先进并比它先出,但在另一只进去之前就出来,那么就为交叉对}cout<<ans<<endl;return 0;
}

牧场上的草泥马(游荡的奶牛)相关推荐

  1. bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(BFS)

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1293  Solved ...

  2. F. [usaco 2009 dec]游荡的奶牛 总结

    F. [usaco 2009 dec]游荡的奶牛 总结 题目 F. [usaco 2009 dec]游荡的奶牛 时间限制:1s 空间限制:256MB 输入文件:sgraze-in 输出文件:sgraz ...

  3. [USACO Mar08] 游荡的奶牛

    [USACO Mar08] 游荡的奶牛 时间限制:1 s 内存限制:128 MB 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游 ...

  4. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们在被划分成N ...

  5. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 bfs

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1290  Solved ...

  6. 【bzoj 1616】: [Usaco2008 Mar]Cow Travelling游荡的奶牛 dp

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1616 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Tim ...

  7. bzoj1616[Usaco2008 Mar]Cow Travelling游荡的奶牛*

    bzoj1616[Usaco2008 Mar]Cow Travelling游荡的奶牛 题意: n行m列的草地上有一些位置有障碍物.第0时刻奶牛在(r1,c1),第t时刻奶牛在(r2,c2)(注意这里都 ...

  8. P1535 游荡的奶牛

    P1535 游荡的奶牛 题目描述 Searching for the very best grass, the cows are travelling about the pasture which ...

  9. ACM 130. [USACO Mar08] 游荡的奶牛(dp+BFS)

    130. [USACO Mar08] 游荡的奶牛 ★☆   输入文件:ctravel.in   输出文件:ctravel.out   简单对比 时间限制:1 s   内存限制:128 MB 奶牛们在被 ...

最新文章

  1. Bootstrap table表格
  2. 又一个可以弄垮iPhone手机的漏洞...
  3. 根据twitter的snowflake算法生成唯一ID
  4. Linux命令学习笔记之一目录与文件基本操作
  5. 使用maven时报错Dynamic Web Module 3.1 requires Java 1.7 or newe
  6. Cocos2dx学习笔记(1) Ref类型数据 垃圾回收机制
  7. 设计模式--结构型模式
  8. 玩转SpringBoot 2 之项目启动篇
  9. java split 正则_java split方法的实现 正则匹配
  10. Redis万字总结,面试必备
  11. 洛谷.5283.[十二省联考2019]异或粽子(可持久化Trie 堆)
  12. 拓端tecdat|R语言量化交易RSI策略:使用支持向量机SVM
  13. 10246 - Asterix and Obelix
  14. 2017吉首大学新生赛周老师的区间问题
  15. cad 打开硬件加速卡_CAD2020 使用图块插入命令特别卡怎么办?
  16. 基于IPFS视频存储的在线视频网站
  17. 浅谈游戏辅助程序的制作 【经典】
  18. ASP.NET C#药店管理信息系统(含论文)毕业设计【演示视频】
  19. 软件项目管理---项目范围管理
  20. Linux入门第三天——linux命令(二)

热门文章

  1. xxx不在 sudoers 文件中,此事将被报告
  2. 和风天气API调用结果乱码
  3. 用迁移学习创造的通用语言模型ULMFiT,达到了文本分类的最佳水平
  4. 去哪儿笔试:座位安排问题
  5. 输入字符串,输出字符串中出现次数最多的字母及其出现次数。如果有多个字母出现次数一样,则按字符从小到大顺序输出字母及其出现次数。
  6. 疲劳驾驶数据集_Lyft开源L5自动驾驶数据集:55000个人工标注的3D注释框架,还有高清空间语义地图...
  7. v18.02 鸿蒙内核源码分析(源码结构) | 内核文件各自含义 | 百篇博客分析HarmonyOS源码
  8. win10打开word时候报错,应用程序无法正常启动:0xc0000142
  9. 笔记本选购指南-2022年初购买笔记本建议
  10. 网络设计部分知识点总结