当前位置: 代码迷 >> 综合 >> Traffic HDU 6573
  详细解决方案

Traffic HDU 6573

热度:60   发布时间:2024-02-24 08:53:33.0

**

Traffic HDU 6573

**

题意 :

在十字路口,东西方向上有一堆车要进,给出了他们的到达时间,南北方向上也有一堆车要进,同样给出了到达时间,不过,东西优先,因此,南北需要集体等待最少多长时间才能不会与东西冲突。

思路:

正如很多大佬所言,这就是一个模拟的问题,用cnt来计数等待时间,分别遍历南北方向的每一辆车,让他们的到达时间+cnt来查询是否与东西冲突,是,则cnt++,否,则接着遍历。

代码:

#include<iostream>
#include <algorithm>
#include <cstring>
using namespace std;const int maxn=1000+5;
int eas[maxn],nor[maxn];
bool vis[maxn*3];//标记数组
int main(){
    int n,m;ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);while(cin>>n>>m){
    for(int i=0;i<n;i++){
    cin>>eas[i];vis[eas[i]]=1;}for(int i=0;i<m;i++)cin>>nor[i];int cnt=0;while(1){
    bool flag=0;for(int j=0;j<m;j++){
    if(vis[nor[j]+cnt]){
    cnt++;flag=1;break;}}if(!flag)break;}cout<<cnt<<endl;memset(vis,0,sizeof(vis));}return 0;
}
  相关解决方案