A:
解题思路:
题目的意思是小辰实力大于集训队员的实力,成就感就加上该集训队员的实力值。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int n,x,arr[100],num = 0;
cin >> n >> x;
for(int i = 0;i < n;i++){
cin >> arr[i];
if(x > arr[i]){
num += arr[i];
}
}
cout << num;
return 0;
}
B:
解题思路:
我的解法很笨,就是暴力遍历,先判断n + m不是质数,再判断m是质数,但是在八哥的点通下,发现了O(1)的时间复杂度,得到一个结论
下面是本人c++代码:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,m,result = 0,num;
cin >> n;
num = n;
num++;//先加1是避免判断1的情况
while(1){
num++;
int index = 1;
for(int i = 2;i <= sqrt(num);i++){
if(num % i == 0){
for(int j = 2;j <= sqrt(num - n);j++){
if((num - n) % j == 0){
index = 0;
break;
}
}
if(index == 1){
cout << num - n;
return 0;
}
}
}
}
return 0;
}
这个代码就像早上起来上厕所,真是又臭又长。。。。。
下面是八哥的c++代码:
清新脱俗
C:
解题思路:
这题只要判断m - 1天就行,因为最后一天只到中午,判断每天的树的高度,要是大于k,高度就剪成b,否则就加a,最后一一输出每棵树的高度就行,数量级很小,随便暴力,我宣布,暴力算法是最好的算法。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int t,n,a,k,b,m;
cin >> t;
while(t != 0){
cin >> n;
int arr[1000];
for(int i = 0;i < n;i++){
cin >> arr[i];
}
cin >> a >> k >> b;
cin >> m;
for(int j = 0;j < m - 1;j++){
for(int l = 0;l < n;l++){
arr[l] += a;
if(arr[l] > k){
arr[l] = b;
}
}
}
for(int j = 0;j < n;j++){
cout << arr[j] << " ";
}
cout << endl;
t--;
}
return 0;
}
D:
解题思路:
嗯。。。。直接输出n和2n
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int n,t;
cin >> t;
while(t != 0){
cin >> n;
cout << n << " " << 2 * n << endl;
t--;
}
return 0;
}
E:
解题思路:
题意就是判断x能否被2,3,5,7其中的一个或多个数整除,可以就输出YES,结束程序,否则输出NO。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int x,arr[4] = {2,3,5,7};
cin >> x;
for(int i = 0;i < 4;i++){
if(x % arr[i] == 0){
cout << "YES";
return 0;
}
}
cout << "NO";
return 0;
}