日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2017年10月07日普及组 蚂蚁

發(fā)布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2017年10月07日普及组 蚂蚁 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


分析
a[i]表示第i只螞蟻是否相碰。
1.因為橫縱坐標(biāo)為-1000~1000,就枚舉步數(shù)2000次就好了,因為他可能在某個帶小數(shù)的坐標(biāo)相碰,所以每一步走0.5而不能走1,這樣的話步數(shù)就是4000次0.5而不是2000次1.
2.每一次把相碰的螞蟻全部找出來,并且標(biāo)記,在找的過程中用另外的數(shù)組b標(biāo)記,因為正在找的過程是參照上一次經(jīng)過排除后的螞蟻來找的,這一次標(biāo)記不能用上去。
3.做完以后把b數(shù)組更新后的值賦給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.

轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9500039.html

總結(jié)

以上是生活随笔為你收集整理的2017年10月07日普及组 蚂蚁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。