A题目
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 50;
int arr[N];
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
while (cin >> n) {
int cnt = 0;
for (int i = 0;i < n;i++) {
cin >> arr[i];
if (arr[i] >= 60) {
cnt++;
}
}
double flag = n * 0.4;
if (cnt < flag) {
for (int i = 0;i < n;i++) {
int ans = sqrt(arr[i]) * 10;
cout << ans<< ':';
}
cout << endl;
}
else {
for (int i = 0;i < n;i++) {
cout << arr[i] << ':';
}
cout << endl;
}
}
return 0;
}
B题目
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 50;
int arr[N];
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
while (cin >> n) {
int six = 0, seven = 0, eight = 0, nine = 0,ten=0;
int cnt = 0;
for (int i = 0;i < n;i++) {
cin >> arr[i];
if (arr[i] >= 60) {
cnt++;
}
}
double flag = n * 0.4;
if (cnt < flag) {
int ans = 0;
for (int i = 0;i < n;i++) {
ans = sqrt(arr[i]) * 10;
if (ans <= 59) {
six++;
}
else if (ans <= 69) {
seven++;
}
else if (ans <= 79) {
eight++;
}
else if (ans <= 89) {
nine++;
}
else ten++;
cout << ans<< ':';
}
cout << endl;
cout << "0-59:" << six << ';' << endl;
cout << "60-69:" << seven << ';' << endl;
cout << "70-79:" << eight << ';' << endl;
cout << "80-89:" << nine << ';' << endl;
cout << "90-100:" << ten << ';' << endl;
}
else {
for (int i = 0;i < n;i++) {
cout << arr[i] << ':';
if (arr[i] <= 59) {
six++;
}
else if (arr[i] <= 69) {
seven++;
}
else if (arr[i] <= 79) {
eight++;
}
else if (arr[i] <= 89) {
nine++;
}
else ten++;
}
cout << endl;
cout << "0-59:" << six << ';' << endl;
cout << "60-69:" << seven << ';' << endl;
cout << "70-79:" << eight << ';' << endl;
cout << "80-89:" << nine << ';' << endl;
cout << "90-100:" << ten << ';' << endl;
}
}
return 0;
}
C题目
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 50;
int arr[N];
int huan[N];
bool cmp(int a, int b) {
return a > b;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
while (cin >> n) {
int six = 0, seven = 0, eight = 0, nine = 0,ten=0;
int cnt = 0;
for (int i = 0;i < n;i++) {
cin >> arr[i];
if (arr[i] >= 60) {
cnt++;
}
}
double flag = n * 0.4;
if (cnt < flag) {
int ans = 0;
for (int i = 0;i < n;i++) {
ans = sqrt(arr[i]) * 10;
if (ans <= 59) {
six++;
}
else if (ans <= 69) {
seven++;
}
else if (ans <= 79) {
eight++;
}
else if (ans <= 89) {
nine++;
}
else ten++;
huan[i] = ans;
}
sort(huan, huan + n, cmp);
for (int i = 0;i < n;i++) {
cout << huan[i] << ':';
}
cout << endl;
cout << "0-59:" << six << ';' << endl;
cout << "60-69:" << seven << ';' << endl;
cout << "70-79:" << eight << ';' << endl;
cout << "80-89:" << nine << ';' << endl;
cout << "90-100:" << ten << ';' << endl;
}
else {
for (int i = 0;i < n;i++) {
huan[i] = arr[i];
if (arr[i] <= 59) {
six++;
}
else if (arr[i] <= 69) {
seven++;
}
else if (arr[i] <= 79) {
eight++;
}
else if (arr[i] <= 89) {
nine++;
}
else ten++;
}
sort(huan, huan + n,cmp);
for (int i = 0;i < n;i++) {
cout << huan[i] << ':';
}
cout << endl;
cout << "0-59:" << six << ';' << endl;
cout << "60-69:" << seven << ';' << endl;
cout << "70-79:" << eight << ';' << endl;
cout << "80-89:" << nine << ';' << endl;
cout << "90-100:" << ten << ';' << endl;
}
}
return 0;
}
D题目
#include <bits/stdc++.h> #define endl '\n' #define int long long using namespace std; const int N = 1000010; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string s1, s2; while (cin >> s1 >> s2) { int ans = 0; int len = s1.size(); int len2 = s2.size(); int pos = s1.find(s2);//开始查找,有的话则不为-1; while (pos != -1) { ans++; pos = s1.find(s2, pos + len2); } cout << s1 << ':' << s2 << ':' << ans << endl; s1.clear();s2.clear(); } return 0; }
E题目
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 100;
double arr[N];
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int tt;
cin >> tt;
while (tt--) {
int n;
cin >> n;
double sum = 0;
for (int i = 0;i < n;i++) {
cin >> arr[i];
sum += arr[i];
}
sum /= n;
double sum2 = 0;
for (int i = 0;i < n;i++) {
sum2 += (arr[i] - sum) * (arr[i] - sum);
}
double ans = 1.0 / n * sum2;
cout << ans << endl;
}
}
F题
#include<iostream>
#include<algorithm>
using namespace std;
void Sort(int a[], int n) {
sort(a, a + n);
}
void Print(int a[], int n) {
for (int i = 0;i < n;i++) {
if (i != 0) {
cout << ' ';
}
cout << a[i];
}
cout << endl;
}
int main() {
int m, n, i;
int a[100];
cin >> m;
while (m--) {
cin >> n;
for (i = 0;i < n;i++) {
cin >> a[i];
}
Sort(a, n);
Print(a, n);
}
return 0;
}
G题目
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 100010;
char arr[N];
vector<char>a;
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int tt;
cin >> tt;
while (tt--) {
cin >> arr;
int len = strlen(arr);
for (int i = 0;i < len;i++) {
a.push_back(arr[i]);
}
char target;
cin >> target;
for (auto it = a.begin();it != a.end();)
{
if (*it == target) {
a.erase(remove(a.begin(), a.end(), target), a.end());
}
else it++;
}
for (auto it : a) {
cout << it;
}
cout << endl;
a.clear();
}
return 0;
}
H题
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 100010;
int arr[N];
int tt;
int find(int x) {
int low = 0, high = tt - 1;
while (low <= high) {
int mid = low + high >> 1;
if (arr[mid] > x) high = mid - 1;
else if (arr[mid] < x) low = mid + 1;
else return mid;//返回的位置的起始点是0;
}
return -1;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
while (cin >> tt) {
memset(arr, '\0', sizeof(arr));
for (int i = 0;i < tt;i++) {
cin >> arr[i];
}
int target;
cin >> target;
int ans = find(target);
if (ans!=-1) {
cout << ans<<endl;
}
else cout << "No this number in the list." << endl;
}
return 0;
}
I题
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 110;
struct student {
string name;
string gender;
int age;
int score;
string addr;
};
student arr[N];
bool f1, f2, f3, f4;
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
int ans1 = 0, ans2 = 0,ans3=0,ans4=0;
string s2;
int AGE;
int SCORE;
string ADDR;
cin >> n;
for (int i = 0;i < n;i++) {
cin >> arr[i].name >> arr[i].gender;
cin >> arr[i].age >> arr[i].score;
cin >> arr[i].addr;
}
int num;
cin >> num;
for (int i = 0;i < num;i++) {
string s1;
cin >> s1;
if (s1 == "gender") {
f1 = true;
cin >> s2;
for (int i = 0;i < n;i++) {
if (arr[i].gender == s2) {
ans1++;
}
}
}
else if (s1 == "age") {
f2 = true;
cin >> AGE;
for (int i = 0;i < n;i++) {
if (arr[i].age == AGE) {
ans2++;
}
}
}
else if (s1 == "score") {
f3 = true;
cin >> SCORE;
for (int i = 0;i < n;i++) {
if (arr[i].score == SCORE) {
ans3++;
}
}
}
else {
f4 = true;
cin >> ADDR;
for (int i = 0;i < n;i++) {
if (arr[i].addr==ADDR) {
ans4++;
}
}
}
}//读入统计;
if (f1) {
cout << "gender:" << s2 << ':' << ans1 << endl;
}
if (f2) {
cout << "age:" << AGE <<':' << ans2 << endl;
}
if (f3) {
cout << "score:" << SCORE << ':' << ans3 << endl;
}
if (f4) {
cout << "addr:" << ADDR << ':' << ans4 << endl;
}
return 0;
}
J题
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 100;
struct people {
int id;
string name;
string emo;
double money;
double num;
};
people arr[N];
bool cmp(people a, people b) {
return a.money*a.num >b.money*b.num;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int tt;
cin >> tt;
for (int i = 0;i < tt;i++) {
cin >> arr[i].id >> arr[i].name >> arr[i].emo >> arr[i].money >> arr[i].num;
}
sort(arr, arr + tt, cmp);
cout << arr[0].id << ':' << arr[0].name << ':' << arr[0].emo << ':' << arr[0].money* arr[0].num << endl;
return 0;
}
K题
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 30;
struct people {
string name;
string gender;
double money;
};
people arr[N];
bool vis[N];
int num;
bool cmp(people a, people b) {
return abs(a.money - num) < abs(b.money - num);
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int tt;
cin >> tt;
cin >> num;
//int MIN = -1;
for (int i = 0;i < tt;i++) {
cin >> arr[i].name >> arr[i].gender >> arr[i].money;
//if (abs(arr[i].money - num) < MIN) {
// MIN = abs(arr[i].money - num);
//}
}
sort(arr, arr + tt, cmp);
cout << arr[0].name <<' ' << arr[0].gender << ' ' << arr[0].money << endl;
int flag = 1;
while (abs(arr[flag].money - num) == abs(arr[0].money - num)) {
cout << arr[flag].name << ' ' << arr[flag].gender << ' ' << arr[flag].money << endl;
flag++;
}
return 0;
}
耗时2小时6分钟,
在D题卡了半个小时(离谱!)因为当时迷糊了,想要去用KMP算法解决;发现自己对KMP算法并不熟悉;后面选择使用find函数解决;
G题wa的原因是因为多组数据输入没有清空容器;
J题超内存的空间是给结构体数组开太大空间了,要按照题目要求开空间;
动态开空间VS实现不了,所以没有这样做;