欢乐赛#54题解(非非非官方)
2025-08-25 18:26:31
发布于:广东
第一题太简单了根据题意即可
//T1
#include<bits/stdc++.h>
using namespace std;
int main(){
float n;
cin>>n;
cout<<ceil(50*n/30);
return 0;
}
第二题太简单了根据题意即可
//T2
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
int sum=0;
map<int,int>mp;
for(int i=0;i<4;i++){
cin>>a;
mp[a]++;
if(a>=3&&a<=13) sum+=a;
else if(a==1) sum+=15;
else if(a==2) sum+=16;
else if(a==14) sum+=20;
else sum+=25;
}
if(mp.size()==1){
cout<<sum*5;
}
else if(mp[14]==1&&mp[15]==1) cout<<sum+160;
else cout<<sum;
return 0;
}
第三题太简单了根据题意即可
//T3
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, x, y;
cin >> n >> x >> y;
long long m = 0;
const int b = 10000; // 基础伤害
for (int i = 0; i < n; ++i) {
int a, c;
cin >> a >> c;
int t = x + a;
int d = max(0, t - 100);
int r = min(t, 100);
int f = y + c + 3 * d;
long long g = b * (r * (100 + f) + (100 - r) * 100) / 10000;
if (g > m) m = g;
}
cout << m << endl;
return 0;
}
第四题太简单了根据题意即可
//T4
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<string>all;
vector<string>name;
vector<int>num;
string x;
while(x!="0"){
cin>>x;
all.push_back(x);
bool flag=true;
for(int i=0;i<name.size();i++){
if(name[i]==x){
flag=false;
break;
}
}
if(flag) name.push_back(x);
}
for(int i=0;i<name.size();i++){
int sum=0;
for(int j=0;j<all.size();j++){
if(all[j]==name[i]){
sum++;
}
}
num.push_back(sum);
}
for(int i=0;i<name.size();i++){
cout<<name[i]<<" "<<num[i]<<endl;
}
return 0;
}
第五题太简单了根据题意即可
//T5
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int a[105][105];
for(int i=0; i<n; i++)for(int j=0; j<m; j++)cin >> a[i][j];
for(int j=0; j<m; j++) {
vector<int> h;
for(int i=0; i<n; i++) if(a[i][j] != 0)h.push_back(a[i][j]);
sort(h.begin(), h.end());
int k=0;
for(int i=0; i<n; i++)if(a[i][j] != 0)a[i][j] = h[k++];
}
for(int i=0; i<n; i++) {for(int j=0; j<m; j++)cout << setw(4) << a[i][j];cout << endl;}
return 0;
}
第六题太简单了根据题意即可
//T6
#include<bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
int n = s.size();
unsigned long long m = ULLONG_MAX;
for (int i = 0; i < n; ++i) {
if (s[i] == '1') {
string t = s;
t[i] = '0';
unsigned long long p = 1;
int c = 0;
for (char ch : t) {
if (ch == '0') c++;
else {
if (c > 0) {
p *= c;
c = 0;
}
}
}
if (c > 0) p *= c;
if (p < m) m = p;
}
}
cout << m << endl;
return 0;
}
全部评论 4
太简单了根据题意即可
1周前 来自 广东
0太简单了根据题意即可
1周前 来自 广东
0太简单了根据题意即可
1周前 来自 广东
0太简单了根据题意即可
1周前 来自 广东
0%%%
1周前 来自 广东
0
有帮助,赞一个