要交CG的兄弟们别抄啊,撞上了严nan谁都不会放过的
好久没写博客了,这次是老师布置的作业,做出来一种,觉得写得很不好,第一种方法把情况都写死在代码里了。
上代码
#include
#include
using namespace std;
int main(){
mapmp1;
mapmp2;
while(true){
cout<
char destinatios,source;
int inport1,inport2;
cin>>source>>destinatios>>inport1>>inport2;
mp1[source]=inport1;
mp2[source]=inport2;
if(mp1[destinatios]==0&&mp2[destinatios]==0){
cout<
continue;
}
if(inport1==mp1[destinatios]){
cout<
continue;
mp1[source]=inport1;
}else cout<
if(inport2==mp2[destinatios]){
cout<
mp2[source]=inport2;
continue;
}else cout<
}
return 0;
}
第二种就较友好点,我把网桥的数量可以自定义,我认为这样才是真正的实现了学习的需求
上代码
#include
#include
#include
using namespace std;
int main(){
int n;
cout<
cout<
cout<
cin>>n;//桥数
vector >v(n);
while(true){
char destinatios,source;
int start1,start2;
cin>>start1>>start2>>source>>destinatios;
int f=0;
if(v[start1][destinatios]==0&&v[start2][destinatios]==0){
cout<
for(int i=0;i<=start1;i++)
v[i][source]=2;
for(int i=start2;i
v[i][source]=1;
continue;
}
if(v[start1][destinatios]==2){
cout<
f=1;
}
if(v[start2][destinatios]==1){
cout<
if(f==1){
cout<
continue;
}
}
if(v[start1][destinatios]==1){
while(v[start1][destinatios]==1){
cout<
v[start1][source]=2;
start1--;
}
continue;
}
if(v[start2][destinatios]==1){
while(v[start2][destinatios]==1){
cout<
v[start2][source]=1;
start2--;
}
continue;
}
}
}
接下来做的是要加上时间戳,我对时间函数的调用不是很熟悉,就只是实现了这个功能,没有追求精确无误,功能没有问题,但是不是严格得按照打印输出一样显示超过五秒就删除
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int n;
vector >v(100);
vector >shijian(100);
void ff(){
for(int k=0;k
for(map::iterator it=shijian[k].begin();it!=shijian[k].end();it++){
clock_t start;
start = clock();
char sou=it->first;
if(start-it->second-shijian[k][sou]>5*60){
v[k][sou]=0;
cout<
}
}
}
}
int main(){
cin>>n;
while(true){
clock_t start;
char des,sou;
int start1,start2;
cin>>start1>>start2>>sou>>des;
int f=0;
if(v[start1][des]==0&&v[start2][des]==0){
cout<
for(int i=0;i<=start1;i++){
v[i][sou]=2;
start = clock();
shijian[i][sou]=start;
cout<
}
for(int j=start2;j
v[j][sou]=1;
start = clock();
shijian[j][sou]=start;
cout<
}
ff();
continue;
}
if(v[start1][des]==2){
cout<
f=1;
}
if(v[start2][des]==1){
cout<
if(f==1){
cout<
ff();
continue;
}
}
if(v[start1][des]==1){
while(v[start1][des]==1){
cout<
v[start1][sou]=2;
start = clock();
shijian[start1][sou]=start;
cout<
start1--;
}
ff();
continue;
}
if(v[start2][des]==1){
while(v[start2][des]==1){
cout<
v[start2][sou]=1;
start = clock();
shijian[start2][sou]=start;
cout<
start2--;
}
ff();
continue;
}
ff();
}
}