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;
}