网站有些什么内容,专业建站分销商城,wordpress简介,网页搜索快捷键是ctrl加什么01 扫雷
题目描述 在一个n行列的方格图上有一些位置有地雷#xff0c;另外一些位置为空。 请为每个空位置标一个整数#xff0c;表示周围八个相邻的方格中有多少个地雷。 输入描述 输入的第一行包含两个整数n#xff0c;m。 第2行到第n1行每行包含m个整数#xff0c;相邻整…
01 扫雷
题目描述 在一个n行列的方格图上有一些位置有地雷另外一些位置为空。 请为每个空位置标一个整数表示周围八个相邻的方格中有多少个地雷。 输入描述 输入的第一行包含两个整数nm。 第2行到第n1行每行包含m个整数相邻整数之间用一个空格分隔。如果对应的整数为0表示这一格没有地雷。如果对应的整数为1表示这一格有地雷。 其中1≤nm≤100分钟后还是在当天。 输出描述 输出n行每行m个整数相邻整数之间用空格分隔。 对于没有地雷的方格输出这格周围的地雷数量。对于有地雷的方格输出9。 输入输出样例 示例1 输入
3 4
0 1 0 0
1 0 1 0
0 0 1 0输出
2 9 2 1
9 4 9 2
1 3 9 2#include iostream
using namespace std;
int main()
{int n,m;cinnm;int a[n][m];int c[n][m];for(int i0;in;i){for(int j0;jm;j){c[i][j]0;cina[i][j];}}for(int i0;in;i){for(int j0;jm;j){if(a[i][j]1){c[i][j]9;for(int bi-1;bi1;b){for(int dj-1;dj1;d){if(a[b][d]0b0d0){c[b][d];}}}}}
} for(int i0;in;i){for(int j0;jm;j){coutc[i][j] ;}cout\n;}return 0;
}02 单词分析
题目描述 小蓝正在学习一门神奇的语言这门语言中的单词都是由小写英文字母组成有些单词很长远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词他准备不再完全记忆这些单词而是根据单词中哪个字母出现得最多来分辨单词。现在请你帮助小蓝给了一个单词后帮助他找到出现最多的字母和这个字母出现的次数。 输入描述 输入一行包含一个单词单词只由小写英文字母组成。 对于所有的评测用例输入的单词长度不超过1000。 输出描述 输出两行第一行包含一个英文字母表示单词中出现得最多的字母是哪个。如果有多个字母出现的次数相等输出字典序最小的那个。 第二行包含一个整数表示出现得最多的那个字母在单词中出现的次数。 输入输出样例 示例1 输入
Lanqiao输出
a
2示例2 输入
longlonglongistoolong输出
o
6解题思路
简单模拟题。
开一个数组存储每个字母出现的次数然后根据题意简单判断一下即可。
或者先求出最大出现次数再求出出现频率最大出现次数的最小字符。
#includebits/stdc.h
using namespace std;
int ch , ma , cnt[30];
signed main()
{string s;cin s;for(auto i : s) cnt[i - a] ;for(int j 0 ; j 26 ; j ) if(ma cnt[j]) ma cnt[j] , ch j;cout (char)(ch a) \n;cout ma \n;return 0;
}法二
#include stdio.h
#include string.h
//先遍历所有字母记录字母的格式然后进行最大值判断。
int main()
{char a[1000];int b[26]{0};int lenth;scanf(%s,a);lenthstrlen(a);int i0;int max 0;int j0;int max_index 0; for (i0;ilenth;i){switch(a[i]){case a: b[0] 1; break;case b: b[1] 1; break;case c: b[2] 1; break;case d: b[3] 1; break;case e: b[4] 1; break;case f: b[5] 1; break;case g: b[6] 1; break;case h: b[7] 1; break;case i: b[8] 1; break;case j: b[9] 1; break;case k: b[10] 1; break;case l: b[11] 1; break;case m: b[12] 1; break;case n: b[13] 1; break;case o: b[14] 1; break;case p: b[15] 1; break;case q: b[16] 1; break;case r: b[17] 1; break;case s: b[18] 1; break;case t: b[19] 1; break;case u: b[20] 1; break;case v: b[21] 1; break;case w: b[22] 1; break;case x: b[23] 1; break;case y: b[24] 1; break;case z: b[25] 1; break;}}for (j0;j26;j){if(b[j] max){max b[j];max_index j;}else if (b[j] max ){if(jmax_index){max_index j;max b[j];} else {max max;max_index max_index;}}} //for(i0;i26;i){// printf(%d\n,b[i]);//}//printf(%s\n%d%d,a,max,max_index);printf(%c\n%d\n,amax_index,max);return 0;
}03 超级质数
问题描述 如果一个质数P的每位数字都是质数而且每两个相邻的数字组成的两位数是质数而且每三位相邻的数字组成的三位数是质数依次类推如果每相邻的K位数字组成的k位数都是质数则P称为超级质数。如果把超级质数P看成一个字符串则这个超级质数的每个子串都是质数。 例如53是一个超级质数。 请问最大的超级质数是多少 解析 这题其实是质数排列组合问题由一位数扩展到更多位一位数是质数的2357扩展到两位数两两组合剩下2337,5373然后再扩展到三位数就已经得出结论了373
#include iostream
using namespace std;
int main()
{1.10以内的质数有2357
2.根据超级质数的组成规则可以组成2337535773这样的相邻质数组合,
满足要求的有23375373
3.根据这些组合可以组成237373573737这样的数字组合满足要求的只有373
4.根据组成规则已经不能在373的基础之上进行组合即为最大超级质数 int PANDUAN(int n) {int i;for(i2;in/2;i) {if(n%i0) break;}if(in/2) return 1;else return 0;
}
int main() {int n;while(1) {scanf(%d,n);if(n0) break;int tempPANDUAN(n);printf(temp %d \n,temp);}return 0;
}cout373;return 0;
}04 合法日期
合法日期 题目描述 小蓝正在上小学老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。没想到日记很快就被老师发现了问题原来小蓝记完8月31日的日记竟又记了8月32日和8月33日的日记。这显然是有问题的因为根本没有8月32日和8月33日。 给定一个月份和一个日期请问2021年有没有这一天。 输入描述 输入的第一行包含一个整数m表示月份。 第二行包含一个整数d表示日期。 其中1≤m≤20,1≤d≤40。 输出描述 如果2021年有m月d日输入yes否则输出no。
#include iostream
using namespace std;
int main()
{int month[31]{0,31,28,31,30,31,30,31,31,30,31,30,31};int m,d;cinmd;if(month[m]d)coutno;else coutyes;return 0;
}05 纯质数
题目描述 本题为填空题只需要算出结果后在代码中使用输出语句将所填结果输出即可。如果一个正整数只有1和它本身两个约数则称为一个质数又称素数。前几个质数是2,3,5,7,11,13,17,19,23,29,31,37,…。如果一个质数的所有十进制数位都是质数我们称它为纯质数。例如2,3,5,7,23,37都是纯质数而11,13,17,19,29,31不是纯质数。当然1,4,35也不是纯质数。请问在1到20210605中有多少个纯质数
#include stdio.h
#include math.h
int prime(int n)
{int i;for(i2;isqrt(n);i){if(n%i0)return 0;}return 1;
}
int chunprime(int n)
{int mn;while(m){if(m%102||m%103||m%105||m%107){mm/10;}else return 0;}return 1;
}
int main(int argc, char *argv[])
{int i,ans0;for(i2;i20210605;i){if(chunprime(i)prime(i))ans;}printf(%d,ans);// 请在此输入您的代码return 0;
}06 方格分割
题目描述 本题为填空题只需要算出结果后在代码中使用输出语句将所填结果输出即可。 6x6的方格沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。 如下就是三种可行的分割法。 试计算包括这3种分法在内一共有多少种不同的分割方法。注意旋转对称的属于同一种分割法。
#includeiostream
using namespace std;
int dx[4]{1,0,-1,0},dy[4]{0,1,0,-1};
int ans0;
int map[7][7]{0};//初始化
void DFS(int x,int y)
{if(x0||x6||y0||y6){ans;return;} for(int i0;i4;i)//四个方向{int newxxdx[i];int newyydy[i];if(map[newx][newy]0){map[newx][newy]1;map[6-newx][6-newy]1;DFS(newx,newy);map[newx][newy]0;map[6-newx][6-newy]0;} }
}
int main()
{map[3][3]1;//从中心开始3,3表示中心的点DFS(3,3);coutans/4endl;//注意结果除以4return 0;
}07 旋转
题目描述 图片旋转是对图片最简单的处理方式之一在本题中你需要对图片顺时针旋转90度。 我们用一个nxm的二维数组来表示一个图片例如下面给出一个3×4的图片的例子
1 3 5 7
9 8 7 6
3 5 9 7这个图片顺时针旋转90度后的图片如下
3 9 1
5 8 3
9 7 5
7 6 7给定初始图片请计算旋转后的图片。 输入描述 输入的第一行包含两个整数nm分别表示行数和列数。接下来n行每行m个整数表示给定的图片。图片中的每个元素像素为一个值为0至255之间的整数包含0和255。 输出描述 输出m行n列表示旋转后的图片。 输入输出样例 示例 输入
3 4
1 3 5 7
9 8 7 6
3 5 9 7输出
3 9 1
5 8 3
9 7 5
7 6 7#includestdio.hint main()
{int num[255][255];int n, m;scanf(%d %d, n, m);for (int i 0; i n; i){for (int j 0; j m; j){scanf(%d,num[i][j]);}}for (int i 0; i m ; i){for (int j n-1; j 0; j--){printf(%d , num[j][i]);}printf(\n);}return 0;
}08 本质上升序列
题目描述 本题为填空题只需要算出结果后在代码中使用输出语句将所填结果输出即可。 小蓝特别喜欢单调递增的事物。在一个字符串中如果取出若干个字符将这些字符按照在字符串中的顺序排列后是单调递增的则成为这个字符串中的一个单调递增子序列。 例如在字符串lanqiao中如果取出字符n和q则nq组成一个单调递增子序列。类似的单调递增子序列还有lng、i、ano等等。小蓝发现有些子序列虽然位置不同但是字符序列是一样的例如取第二个字符和最后一个字符可以取到ao取最后两个字符也可以取到ao。小蓝认为他们并没有本质不同。 对于一个字符串小蓝想知道本质不同的递增子序列有多少个例 如对于字符串lanqiao本质不同的递增子序列有21个。它们分别 是l、a、n、q、i、o、ln、an、lq、aq、nq、ai、lo、ao、no、io、 Inq、anq、Ino、ano、aio。 请问对于以下字符串共200个小写英文字母分四行显示
tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhf
iadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqij
gihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmad
vrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl#include bits/stdc.h
using namespace std;
int f[210];
int main()
{// 请在此输入您的代码string s tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhfiadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqijgihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmadvrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl;for (int i 0; i s.size(); i) f[i] 1;for (int i 0; i s.size(); i){for (int j 0; j i; j){if (s[i] s[j]) f[i] f[j];if (s[i] s[j]) f[i] 0;}}int ans 0;for (int i 0; i s.size(); i)ans f[i];cout ans endl;return 0;
}09 英文字母
问题描述 输入一个正整数n输出第n个大写英文字母。 输入格式 输入一行包含一个正整数n。 输出格式 输出一行包含一个字母。 样例输入1
12样例输出1
L样例输入2
17样例输出2
Q评测用例规模与约定 对于所有评测用例1≤n≤26。
#include stdio.h
#include stdlib.h
int main()
{int n;scanf(%d,n);printf(%c,n64);return 0;
}10 平行四边形面积
题目描述 给定一个平行四边形的底边长度l和高度h求平行四边形的面积。 输入描述 输入的第一行包含一个整数l表示平行四边形的底边长度。第二行包含一个整数 h表示平行四边形的高。 其中1≤l,h≤100 输出描述 输出一个数表示平行四边形的面积。如果面积为整数请直接输出这个整数不带小数点。如果面积不是整数请四舍五入保留正好一位小数。 输入输出样例 示例1 输入
5
6输出
30#include stdio.h
#include stdlib.h
int main()
{float l,h;float s;int i;scanf(%f%f,l,h);sl*h;i(int)s;if(is){printf(%d,i);}else{printf(.1f,s);}return 0;
}