题意:给定一个时间点t与n种车,每种车首班车时间给定,间隔时间不变,问从t点开始能最先坐上哪一辆车。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

基础的模拟,不多赘述。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cmath>
 4 #include<vector>
 5 #include<string>
 6 #include<queue>
 7 #include<stack>
 8 using namespace std;  9 int n,t,s,d,ans=2147483640,ansp; 10 int main(){ 11     ios::sync_with_stdio(false); 12     cin>>n>>t; 13     for (int i=1; i<=n; i++) { 14         cin>>s>>d; 15         int now=s; 16         while (now<t) now+=d; 17         if (now-t<ans) ans=now-t,ansp=i; 18         //ans=min(now-t,ans);
19  } 20     cout<<ansp<<endl; 21     return 0; 22 }

B

题意:

有一堆积木,可以用一个二维平面,每个单元有一个高度数值来表示。现给出从积木前方、左方、上方看的形状,需构造一种方案,满足所有情况。

因为有多种情况,只需给出一种即可,所以就先考虑从上往下看的情况。当从上往下看有积木时,此单元的高度设成此点横竖两条看去的高度的较小值即可。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cmath>
 4 #include<vector>
 5 #include<string>
 6 #include<queue>
 7 #include<stack>
 8 using namespace std;  9 int n,m,h; 10 int a[107],b[107],c[107][107],ans[107][107]; 11 int main(){ 12     ios::sync_with_stdio(false); 13     cin>>n>>m>>h; 14     for (int i=1; i<=m; i++) cin>>a[i]; 15     for (int i=1; i<=n; i++) cin>>b[i]; 16     for (int i=1; i<=n; i++) 17         for (int j=1; j<=m; j++) 18             cin>>c[i][j]; 19     for (int i=1; i<=n; i++) 20         for (int j=1; j<=m; j++) if (c[i][j]==1){ 21             ans[i][j]=min(b[i],a[j]); 22  } 23     for (int i=1; i<=n; i++) { 24         for (int j=1; j<=m; j++) cout<<ans[i][j]<<" "; 25         cout<<endl; 26  } 27     return 0; 28 }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄