#include<iostream>usingnamespace std;#include<string>intmain(){int n;int h;
cin >> n;int* arr =newint[n];for(int i =0; i < n; i++){
cin >> arr[i];}
cin >> h;int num =0;for(int i =0; i < n; i++){if(h +30>= arr[i])
num++;}
cout << num << endl;if(num == n)
cout <<"Yes";else
cout <<"No";
cin >> h;return0;}
PROB1011 忠诚的骑士 48.91%
#include<iostream>usingnamespace std;#include<string>intmain(){int n;
cin >> n;int i =1;int sum =0;while(i*(i+1)/2<= n){
sum += i*i;
i++;}// i = 4int left = n - i*(i-1)/2;
sum += left* i;
cout << sum;return0;}
PROB1012 最小质数合数之和问题 20.21%
#include<iostream>usingnamespace std;#include<string>#include<cmath>#include<algorithm>boolis_prime(double n){for(int i =2; i <int(sqrt(n)); i++){if(int(n)% i ==0)returnfalse;}returntrue;}intmain(){int n;
cin >> n;if(n ==1){
cout <<6;return0;}int s1;int s2;int ans;for(int i = n +1;;i++){if(!is_prime(i)){
s1 = i;break;}}for(int i = n +1;;i++){if(is_prime(i)){
s2 = i;break;}}
cout << s1+s2;return0;}
PROB1014 级数求和 35.11%
#include<iostream>usingnamespace std;intmain(){int k =0;
cin >> k;double sum =0;int i =0;while(sum <= k){
i++;
sum +=1.0/i;}
cout << i;return0;}
PROB1015 小明与选择题 22.99%
#include<iostream>usingnamespace std;#include<algorithm>#include<vector>#include<map>#include<set>voidsolve(){int a, b, c, d;
cin >> a >> b >> c >> d;double avg =(a + b +c + d)/4.0;if(a == b && a == c && a == d && b == c && b == d && c==d){
cout <<"B";return;}int Long =0;int Short =0;if(a > avg)
Long++;if(a < avg)
Short++;if(b > avg)
Long++;if(b < avg)
Short++;if(c > avg)
Long++;if(c < avg)
Short++;if(d > avg)
Long++;if(d < avg)
Short++;if(Long ==3){if(a < avg)
cout <<"A";elseif(b < avg)
cout <<"B";elseif(c < avg)
cout <<"C";else
cout <<"D";return;}if(Short ==3){if(a > avg)
cout <<"A";elseif(b > avg)
cout <<"B";elseif(c > avg)
cout <<"C";else
cout <<"D";return;}
cout <<"C";}intmain(){solve();return0;}
PROB1017 小明喝可乐 41.93%
#include<iostream>usingnamespace std;#include<algorithm>#include<vector>#include<map>#include<set>intsolve(){int n;int k;
cin >> n >> k;int empty = n;int sum = n;while(empty >= k){
sum += empty / k;
empty = empty % k + empty / k;}return sum;}intmain(){
cout <<solve();return0;}
PROB1018 华强种瓜 24.21%
#include<iostream>usingnamespace std;#include<algorithm>#include<vector>#include<set>boolis_in_range(int ii,int jj,int i,int j,int r){return(ii-i)*(ii-i)+(jj-j)*(jj-j)<= r*r;}voidsolve(){
set<pair<int,int>> point;
vector<pair<int,int>> water_tool;int n, water_tool_num, r;
cin >> n >> water_tool_num >> r;int x, y;for(int i =0; i < water_tool_num; i++){
cin >> x >> y;
water_tool.push_back(make_pair(x, y));}for(int i =1; i <= n; i++){for(int j =1; j <= n; j++){for(int k =0; k < water_tool_num; k++){if(is_in_range(i, j, water_tool[k].first, water_tool[k].second, r)){
point.insert(make_pair(i, j));}}}}
cout << point.size();}intmain(){solve();return0;}
PROB1019 天子与诸侯 41.98%
#include<iostream>usingnamespace std;#include<algorithm>#include<vector>#include<map>#include<set>// 从大到小boolfunc(int a,int b){return a > b;}voidsolve(){int n;
cin >> n;int* arr =newint[n];for(int i =0; i < n; i++)
cin >> arr[i];sort(arr, arr+n, func);
cout << arr[0]+ arr[1]+ arr[2];}intmain(){solve();return0;}
PROB1020 矩阵变换问题 22.74%
#include<iostream>usingnamespace std;#include<algorithm>#include<vector>#include<map>#include<set>voidsolve(){int m, n;
cin >> m >> n;
vector<int>row(m,0);
vector<int>col(n,0);
vector<vector<int>>arr(m,vector<int>(n,0));for(int i =0; i < m; i++){for(int j =0; j < n; j++){
cin >> arr[i][j];if(arr[i][j]==1){
row[i]=1;
col[j]=1;}}}for(int i =0; i < m; i++){if(row[i]==1){
arr[i]=vector<int>(n,0);}}for(int j =0; j < n; j++){if(col[j]==1){for(int i =0; i < m; i++){
arr[i][j]=0;}}}for(int i =0; i < m; i++){for(int j =0; j < n; j++){
cout << arr[i][j];if(j != n-1)
cout <<" ";else
cout << endl;}}}intmain(){solve();return0;}
PROB1021 小明的记忆游戏 14.46%
#include<iostream>usingnamespace std;#include<algorithm>#include<vector>#include<map>#include<set>voidsolve(){int n;
cin >> n;
set<int> s;int nnn;for(int i =0; i < n; i++){
cin >> nnn;
s.insert(nnn);}int m;
cin >> m;int* ques =newint[m];for(int i =0; i < m; i++){
cin >> ques[i];}for(int i =0; i < m; i++){
nnn = ques[i];if(s.find(nnn)!= s.end())
cout <<"YES\n";else
cout <<"NO\n";}}intmain(){solve();return0;}
PROB1022 小明算树 39.96%
#include<iostream>#include<set>usingnamespace std;intmain(){// 马路长度int L;// 区间数量int m;// 统计要移除所有树(set自动去重)
set<int> s;
cin >> L >> m;// 初始树的数量为 L + 1int num = L +1;int start;int end;for(int i =0; i < m; i++){
cin >> start >> end;for(int j = start; j <= end; j++){
s.insert(j);}}// 结果为 初始树数量 - 要移除的数量
cout << num - s.size();return0;}
PROB1023 小明的抽奖游戏 33.21%
#include<iostream>usingnamespace std;boolis_ok(int num,int* prize,int len){for(int i =0; i < len; i++){if(num % prize[i]==0){returntrue;}}returnfalse;}intmain(){int n;int m;
cin >> n;int* lucky =newint[n];for(int i =0; i < n; i++){
cin >> lucky[i];}
cin >> m;int* prize =newint[m];for(int i =0; i < m; i++){
cin >> prize[i];}int ans =0;for(int i =0; i < n; i++){if(is_ok(lucky[i], prize, m)){
ans++;}}
cout << ans;return0;}
PROB1024 小明算分 31.76%
#include<iostream>usingnamespace std;#include<algorithm>intmain(){int n;int m;double max_score =0;
cin >> n >> m;int* arr =newint[m];for(int i =0; i < n; i++){int sum =0;for(int j =0; j < m; j++){
cin >> arr[j];
sum += arr[j];}sort(arr, arr+m);// 减去最值
sum = sum - arr[0]- arr[m-1];double score =double(sum)/(m -2);if(score > max_score){
max_score = score;}}printf("%.2f", max_score);return0;}
PROB1025 开普勒星球历法 40.23%
#include<iostream>#include<string>usingnamespace std;//int arr_normal[]int month_normal[14]={31,59,90,120,151,181,212,243,273,304,334,365,395,426};int month_odd[14]={31,60,91,121,152,182,213,244,274,305,335,366,396,427};boolyear(int n){if(n %100==0&& n%400!=0){returnfalse;}if(n%4==0){returntrue;}returnfalse;}intmain(){int n;int y;
cin >> y >> n;bool ans =year(y);// 闰年int month, day ;//int month_odd[14] = {//31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365, 395, 426if(!ans){// 1if(n >=1&& n <=31){
month =1;
day = n;}// 2elseif(n >=32&& n <=59){
month =2;
day = n-31;}// 3elseif(n >=60&& n <=90){
month =3;
day = n-59;}// 4elseif(n >=91&& n <=120){
month =4;
day = n-90;}// 5elseif(n >=121&& n <=151){
month =5;
day = n-120;}elseif(n >=152&& n <=181){
month =6;
day = n-151;}elseif(n >=182&& n <=212){
month =7;
day = n-181;}elseif(n >=213&& n <=243){
month =8;
day = n-212;}elseif(n >=244&& n <=273){
month =9;
day = n-243;}elseif(n >=274&& n <=304){
month =10;
day = n-273;}elseif(n >=305&& n <=334){
month =11;
day = n-304;}elseif(n >=335&& n <=365){
month =12;
day = n-334;}elseif(n >=366&& n <=395){
month =13;
day = n-365;}elseif(n >=396&& n <=426){
month =14;
day = n-395;}}else{// 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366, 396, 427if(n >=1&& n <=31){
month =1;
day = n;}// 2elseif(n >=32&& n <=60){
month =2;
day = n-31;}// 3elseif(n >=60&& n <=91){
month =3;
day = n-59;}// 4elseif(n >=92&& n <=121){
month =4;
day = n-91;}// 5elseif(n >=122&& n <=151+1){
month =5;
day = n-120-1;}elseif(n >=152+1&& n <=181+1){
month =6;
day = n-151-1;}elseif(n >=182+1&& n <=212+1){
month =7;
day = n-181-1;}elseif(n >=213+1&& n <=243+1){
month =8;
day = n-212-1;}elseif(n >=244+1&& n <=273+1){
month =9;
day = n-243-1;}elseif(n >=274+1&& n <=304+1){
month =10;
day = n-273-1;}elseif(n >=305+1&& n <=334+1){
month =11;
day = n-304-1;}elseif(n >=335+1&& n <=365+1){
month =12;
day = n-334-1;}elseif(n >=366+1&& n <=395+1){
month =13;
day = n-365-1;}elseif(n >=396+1&& n <=426+1){
month =14;
day = n-395-1;}}
cout << month <<" "<< day;return0;}
#include<iostream>usingnamespace std;#include<algorithm>#include<vector>#include<map>#include<set>voidsolve(){int n, m, a;
cin >> n >> m >> a;
cout <<((n+a-1)/a)*((m+a-1)/a);}intmain(){solve();return0;}
PROB1028 最长连续上升子序列 42.66%
#include<iostream>usingnamespace std;#include<algorithm>#include<vector>#include<map>#include<set>voidsolve(){int n;
cin >> n;
vector<int>arr(n,0);for(int i =0; i < n; i++){
cin >> arr[i];}int ans =1;int temp =1;for(int i =0; i < n; i++){
temp =1;for(int j = i+1; j < n; j++){if(arr[j]> arr[j-1])
temp++;elsebreak;}if(temp > ans)
ans = temp;}
cout << ans;}intmain(){solve();return0;}