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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[AT2369] [agc013_c] Ants on a Circle

發(fā)布時(shí)間:2025/7/25 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [AT2369] [agc013_c] Ants on a Circle 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接

AtCoder:https://agc013.contest.atcoder.jp/tasks/agc013_c

洛谷:https://www.luogu.org/problemnew/show/AT2369

Solution

首先可以注意到他們的相對(duì)位置是不變的。

然后兩只螞蟻相遇可以看作是他們穿過了彼此然后交換編號(hào)。

那么我們就可以得到最后的位置了,只需要確定編號(hào)就好了。

注意到如果有一只螞蟻穿過了\(l-1\sim 0\)之間,所有編號(hào)都會(huì)左移(右移)一格。

那么我們只需要處理出他們編號(hào)是怎么移的就好了。

#include<bits/stdc++.h> using namespace std;#define int long long void read(int &x) {x=0;int f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-f;for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';x*=f; }void print(int x) {if(x<0) putchar('-'),x=-x;if(!x) return ;print(x/10),putchar(x%10+48); } void write(int x) {if(!x) putchar('0');else print(x);putchar('\n');}#define lf double #define ll long long const int maxn = 1e5+10; const int inf = 1e9; const lf eps = 1e-8;int p[maxn],n,c,l,t;signed main() {read(n),read(l),read(t);for(int i=1,x;i<=n;i++) {read(p[i]),read(x);x=x==2?-1:x;p[i]+=x*t;if(p[i]>0) c+=p[i]/l;else if(p[i]<0) c+=(p[i]+1)/l-1;p[i]=(p[i]%l+l)%l;}sort(p+1,p+n+1);c=(c%n+n)%n;for(int i=c+1;i<=n;i++) write(p[i]);for(int i=1;i<=c;i++) write(p[i]);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/hbyer/p/10717599.html

總結(jié)

以上是生活随笔為你收集整理的[AT2369] [agc013_c] Ants on a Circle的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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