第五题 地铁停靠(洛谷B4315)
题目描述
一路地铁依次经过 n 个站点,编号依次为 1∼n。地铁从第 i 个站点到第 i+1 个站点需要用 ti 秒,而地铁到第 i 站时会停 si 秒。
小 M 想从第 x 站坐地铁到第 y 站。那么他在地铁上的最长时间是多少?
注:最长时间,即地铁刚到第 x 站就上地铁,地铁即将离开第 y 站才下地铁的情况下,小 M 在地铁上的时间。单位为秒。
输入格式
第一行有一个正整数 n,表示经过的站点数目。
第二行有 n−1 个正整数 t1,t2,…,tn−1,表示地铁在相邻两站之间的用时。
第三行有 n 个正整数 s1,s2,…,sn,表示地铁在每一站的停靠时间。
最后一行有两个正整数 x,y,表示小 M 想从第 x 站坐到第 y 站。
输出格式
输出一行一个正整数,表示小 M 在地铁上的最长时间,单位为秒。
输入输出样例
输入 #1
4 150 180 170 35 32 33 34 2 4
输出 #1
449
输入 #2
5 300 300 300 300 40 40 40 40 40 2 4
输出 #2
720
输入 #3
4 150 180 170 35 32 33 34 1 4
输出 #3复制
634
说明/提示
【样例 1 解释】
小 M 在地铁刚到第 2 站就上了地铁,接下来地铁经过如下流程:
- 先在第 2 站停靠 32 秒。
- 然后用 180 秒开到第 3 站。
- 在第 3 站停靠 33 秒。
- 然后用 170 秒开到第 4 站。
- 最后在第 4 站停靠 34 秒。
然后小 M 下车。在地铁上的总时间是 32+180+33+170+34=449 秒。
【数据范围】
对于全部数据,保证 1≤x<y≤n≤50,1≤si,ti≤500。
本题共有 10 个测试点,部分测试点有特殊性质,具体地:
测试点 1,2 保证 si 一定是 40,ti 一定是 300。
测试点 3∼5 保证 x=1,y=n。
本题直接用一维数组就行了。
小明从第x站上车,第y站下车,时间其实等于
……
再加上
……
不贴代码
第六题 整除判断(洛谷B4316)
题目描述
小 A 认为如果一个整数的各个数位和是 m 的倍数,那么这个整数自身是 m 的倍数。
小 B 觉得这句话不太对,于是找了 n 个正整数。请挑出这些正整数当中,本身不是 m 的倍数,但各个数位和是 m 的倍数的那些数,并按输入顺序输出。
输入格式
输入的第一行有两个正整数 m,n,题意同题目描述。
之后 n 行,每行有一个正整数,表示小 B 找的正整数。
输出格式
输出若干行,表示小 B 找的正整数中,本身不是 m 的倍数,但各个数位和是 m 的倍数的那些数。按照输入顺序输出。
特别地,如果没有符合题意的正整数,输出 None
。
输入输出样例
输入 #1复制
6 5 12 24 33 165 8
输出 #1复制
33 165
输入 #2复制
8 2 15 9
输出 #2复制
None
输入 #3复制
7 5 142 106 7777 1000006 25
输出 #3复制
142 106 25
说明/提示
【样例 1 解释】
m=6。对小 B 找到的 5 个正整数的分析如下表:
正整数 | 是 6 的倍数吗 | 各个数位和 | 数位和是 6 的倍数吗 |
---|---|---|---|
12 | 是 | 3 | 不是 |
24 | 是 | 6 | 是 |
33 | 不是 | 6 | 是 |
165 | 不是 | 12 | 是 |
8 | 不是 | 8 | 不是 |
【样例 3 解释】
该样例满足前四个测试点所满足的性质。
【数据范围】
本题共 10 个数据。
对于全部数据,保证 1≤m≤100,1≤n≤10^5,小 B 找的正整数不超过 10^9。
特别地,前 4 个测试点还保证小 B 找的正整数数位和都是 m 的倍数。
(注:10^5 是十万,10^9 是十亿。)
本题就是让你分离每个数位上的数,一般实现如下
int y=x; //x是要被分解的数,y是分身。
int sum=0; //计算总和
while(y!=0){
int tmp=y%10;
sum+=tmp;
y/=10;
}
剩下的按题意模拟即可