- 题解
【题解】2025新学期选拔赛
- @ 2025-2-22 13:58:35
T1 王老师的新水杯
个人认为题目并不难,只要把 两个水量相减后×天数的绝对值输出就行,但不开long long见祖宗
代码:
#include<bits/stdc++.h>
using namespace std;
long long n,x,y;
int main(){
cin >> n>>x>>y;
long long u=abs(n*(x-y));
cout << u;
return 0;
}
T2 王老师骑行健身
这道题就是每次输入后用截至当天的总里程做一个判断就行了
计数变量开long long(嘟囔)
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
long long num,k;
bool flag=0;
int main(){
cin >> n;
for(int i=1;i<=n;i++){
int r;
cin >> r;
num+=r;
if(num>=100 & flag==0){
k=i;
flag=1;
}
}
cout << k;
return 0;
}
T3 数数放了几天假
直接判断就行了
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
long double num;
int main(){
cin >> n;
string x;
cin >> x;
for(int i=0;i<n;i++){
if(x[i]=='o') num++;
if(x[i]=='~') num+=0.5;
}
cout << num;
return 0;
}
T4 再整理一次水杯
和上上次的比赛一样,用当前最小值判断,如果大于最小值,就将计数变量加上当前杯子的水量,否则(小于等于最小值)就把前边的所有水杯都倒成和现在这个杯子一样,再更换最小值就行了
注意:最小值的初始值要为INT_MAX
代码:
#include<bits/stdc++.h>
using namespace std;
int n,a,b=INT_MAX;
int main(){
cin >> n;
for(int i=0;i<n;i++){
int x;
cin >> x;
if(x<b & i!=0) a+=i*(b-x);
else if(i==0) goto loop;
else a+=x-b;
loop : b=min(b,x);
}
cout << a;
}