本文共 910 字,大约阅读时间需要 3 分钟。
#include#include #include using namespace std;const int nt_max = 50 + 5;int n, t, cnt;char Queue[nt_max];int main(){ while(~scanf("%d %d", & n, & t)) { scanf("%s", Queue); while(t --) { for(int i = 0; i < n; ) { if(Queue[i] == 'B') { if(Queue[i + 1] == 'G') { Queue[i] = 'G'; Queue[i + 1] = 'B'; i += 2; } else i ++; } else i ++; } } printf("%s\n", Queue); } return 0;}
:
就是在学校 男女生排队。男生比较傻比,一定要给女生排在前面。输入n 表示 总人数, 输入 t 表示 移动的时间。问t分钟后 队列最后的排列。(每个人一分钟交换一次位置)
题解:
2个月前 误会了这道题的意思,今天拿出来做,还是弄错了意思。一分钟交换一个位置,如果在当前时间BBG,过一分钟只会 BGB,不会GBB(只交换一次)。模拟过程即可。
转载地址:http://zjtpi.baihongyu.com/