分析
a[i]表示第i只蚂蚁是否相碰。
1.因为横纵坐标为-1000~1000,就枚举步数2000次就好了,因为他可能在某个带小数的坐标相碰,所以每一步走0.5而不能走1,这样的话步数就是4000次0.5而不是2000次1.
2.每一次把相碰的蚂蚁全部找出来,并且标记,在找的过程中用另外的数组b标记,因为正在找的过程是参照上一次经过排除后的蚂蚁来找的,这一次标记不能用上去。
3.做完以后把b数组更新后的值赋给a。

程序:

var
a,b:array[0..51]of boolean;
x,y:array[0..51]of real;
t:array[0..51,1..2]of real;
i,j,k,n,ans:longint;
s:string;
beginassign(input,'ant.in');reset(input);assign(output,'ant.out');rewrite(output);readln(n);readln(s);for i:=1 to n dobeginreadln(x[i],y[i]);a[i]:=true;b[i]:=true;if s[i]='N' then t[i,2]:=0.5 elseif s[i]='E' then t[i,1]:=0.5 elseif s[i]='S' then t[i,2]:=-0.5 elseif s[i]='W' then t[i,1]:=-0.5;end;for i:=1 to 4000 dobeginfor j:=1 to n doif a[j]=true thenbeginx[j]:=x[j]+t[j,1];y[j]:=y[j]+t[j,2];end;for j:=1 to n doif a[j]=true thenbeginfor k:=1 to n doif a[k]=true thenif (j<>k) thenif (x[k]=x[j]) and (y[k]=y[j])thenbeginb[j]:=false;b[k]:=false;a[0]:=false;end;end;a:=b;if a[0]=true then break;end;for i:=1 to n doif a[i]=true then inc(ans);writeln(ans);close(input);close(output);
end.

转载于:https://www.cnblogs.com/YYC-0304/p/9500039.html

2017年10月07日普及组 蚂蚁相关推荐

  1. 2017年10月07日普及组 数列

    分析 1.等差数列因为2个数之间的值是固定值b,若a<=u就可以直接求出a~u之间等差数列的数量(u-a) div b+1. 2.等比数列直接做就好了,因为是逐级乘法,所以速度挺快的,不过要判断 ...

  2. 2017年10月07日普及组 单元格

    程序: const mods:longint=1000000007; var r,c,min,max,i:longint; sum1,sum2:array[0..4001]of int64;funct ...

  3. 2017年10月08日普及组 世界语

    分析 水题一道,提交的时候把文件夹的名字打错了,结果没了100分-- 程序 const a:array[1..10]of string=('unu','du','tri','kvar','kvin', ...

  4. 2017年10月21日普及组 简单单词

    分析 直接依题意枚举,注意:每个单词的前缀长度并不一定相等. 程序: var n,i,j,l,k,bz:longint; a:array[0..100]of string; s:array[0..10 ...

  5. 2017年10月21日普及组 排名

    程序: var n,i,j,x,z,w:longint; a,b,c,d,p,y:array[0..200]of longint; beginassign(input,'sort.in');reset ...

  6. 2017年10月18日普及组 文件名排序

    程序: var l,n,i,j,p:longint; a,b,c,s:array[1..1000]of string; w:string; beginreadln(n);for i:=1 to n d ...

  7. 2017年10月18日普及组 面积最大

    程序: var r,i,j,a,b:longint; ti,tj,best,t:real; beginreadln(r);best:=0;for i:=1 to 2*r-1 dofor j:=1 to ...

  8. 2017年10月08日普及组 蜡烛

    程序: var n,i,j,t,k,sum:longint; a:array[0..10000] of longint; beginassign(input,'lazhu.in');reset(inp ...

  9. 2017年10月05日普及组 比萨

    分析 其实就是求组合 程序: var n,m,i,x,y,j:longint; ans:int64; s:array[0..20] of longint; f:array[0..52] of long ...

最新文章

  1. S-D5舵机拆开看一看
  2. 页面导航的两种方式——声明式导航、编程式导航||vue-router编程式导航||router.push() 方法的参数规则
  3. 用 JOTM 向Servlet中添加事务
  4. java 中文 图片_java之服务器端写图片中文乱码
  5. jQuery / zepto ajax 全局默认设置
  6. 美国计算机协会ACM子刊中国特辑:中国的人工智能初创企业
  7. awk是命令还是编程语言
  8. PyTorch 深度学习:35分钟快速入门——变分自动编码器
  9. 淘宝中间件借阿里云对外 日均调千亿次
  10. GDAL_GRID插值Y轴反向的问题
  11. NYOJ4 - ASCII码排序
  12. 【译】2018 年前端开发回顾
  13. kafka权威指南读书心得
  14. ToStringBuilder介绍
  15. GoLang之iface 和 eface 的区别是什么(3)
  16. 蜀门锻造费用统计(武器/坐骑锻造)
  17. MS08_067复现+远程控制
  18. 【Linux】 设置支持中文 | 全局
  19. 真实操作Robotstudio解决机器人系统创建失败(更改用户名),不需要重装系统,修改注册表复杂操作
  20. 计网 | OSI模型中各层单位

热门文章

  1. 云炬Android开发报错处理教程 完美解决Android Studio maven { url ‘https://jitpack.io‘ } 无法下载问题
  2. java 协议栈_深入浅出讲解低功耗蓝牙(BLE)协议栈
  3. OpenGL编程指南4:双缓冲实现运行
  4. C++/CLI Winform中调用DLL的三种方法
  5. ASP.NET开发要抛弃ASP旧习和破烂
  6. Java小游戏 —— 德州扑克
  7. 进入保护模式(三)——《x86汇编语言:从实模式到保护模式》读书笔记17
  8. 「 每日一练,快乐水题 」917. 仅仅反转字母
  9. C/C++多线程编程之一】VC6.0安装pthread
  10. 一、把握 Netty 整体架构脉络