- 博客(109)
- 资源 (1)
- 收藏
- 关注
原创 ZZULIOJ 1176: 查找最大字符串(指针专题)
1176: 查找最大字符串(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 3116 解决: 2068[状态] [讨论版] [提交] [命题人:admin]题目描述从键盘上输入多个字符串(每个串不超过5个字符且没有空格),用”*****”作为串输入结束的标记。从所输入的若干字符串中,找出一个最大的串,并输出该串。要求最大串的查找通过调用编写的函数实现void find(char *name[], int n, int *p){//在包含n个字符串的二维字符数组name中
2022-02-16 09:42:42 357
原创 HENAU 递推专题
A - 上台阶2B - 数字三角形C - 矩阵取数问题D - 背包问题E - 完全背包F - 背包问题 V2G - 最长上升子序列H - 最长公共子序列I - 石子合并J - 循环数组最大子段和K - 没有上司的舞会L - 滑雪A - 上台阶2思路:基础动态规划,加法原理代码:#include<bits/stdc++.h>using namespace std;int a[1000000];int main(){ int n,t; a[1]=1; a[
2022-02-09 16:38:28 838 3
原创 ZZULIOJ 1175: 矩阵转置(指针专题)
1175: 矩阵转置(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 4003 解决: 1978[状态] [讨论版] [提交] [命题人:admin]题目描述给定一个m行n列的二维矩阵,输出其转置矩阵。1<=m、n<=100000,可能是1行100000列,也可能是10000行50列。你可能不能预定义数组的大小了,你要学会使用动态内存分配哦。输入输入第一行是m和n,然后是一个m行n列的矩阵。输出输出转置后的矩阵样例输入 Copy3 41 2 3 4
2022-01-29 11:14:07 1113
原创 ZZULIOJ 1173: 密码解密(指针专题)
1173: 密码解密(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 2908 解决: 2227[状态] [讨论版] [提交] [命题人:admin]题目描述有加密当然也有解密啦。那我们来解密吧。已知明文中只有数字和字母,且加密的规则如下:将每个字符的ascii码的值减去24作为每个字符加密过后的密文,例如’a’的ascii码的值为97,那么加密后就变成了73。"73"就是’a’的密文。所以,若密文是“757392”,则解密后的原文是“cat”。现在请你编写程序,将一段密文解
2022-01-23 10:14:06 175
原创 ZZULIOJ 1172: 矩阵边界和(指针专题)
1172: 矩阵边界和(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 3324 解决: 2101[状态] [讨论版] [提交] [命题人:admin]题目描述给定一个m行n列的二维矩阵,求其四周边元素和。1<=m、n<=100000,可能是1行100000列,也可能是10000行50列,但保证矩阵元素不多于500000。你可能不能预定义数组的大小了,你要学会使用动态内存分配哦。你可以动态申请mn个内存单元,然后用一维数组来存储二维数组,二维数组元素a[i][j]
2022-01-22 09:47:20 97
原创 ZZULIOJ 1171: 加密(指针专题)
1171: 加密(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 3339 解决: 2348[状态] [讨论版] [提交] [命题人:admin]题目描述将一段明文加密。加密的规则如下:将每个字符的ascii码的值减去24作为每个字符加密后的值,例如’a’的ascii码的值为97,那么加密后就变成了73。“73"就是’a’的密文,例如,字符串"abc”,在加密之后变为"737475",最后,整个密文再进行翻转,得到最终的密文"574737"。现在请你编写程序,对一段文字加密。
2022-01-21 17:31:09 128
原创 ZZULIOJ 1170: 最长字符串(指针专题)
1170: 最长字符串(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 3976 解决: 2606[状态] [讨论版] [提交] [命题人:admin]题目描述输入多个字符串,输出最长字符串。要求定义并使用函数maxLenStr(),void maxLenStr(char *str[], int n, int *max){从字符串数组str中找出最长的一个字符串,并将其下标存入形参指针max所指内存。}输入输入有多行,每行一个字符串,每个字符串长度不超过80,输入
2022-01-21 16:49:11 174
原创 ZZULIOJ 1169: 大整数(指针专题)
1169: 大整数(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 4734 解决: 2616[状态] [讨论版] [提交] [命题人:admin]题目描述输入3个非负大整数,位数不超过100位,按从小到大的顺序输出这三个整数。要求定义并使用如下函数比较两个大整数的大小。int cmp(char *a,char *b){//若大整数a大于b,返回1;//若a小于b,返回-1;// 若a与b相等,返回0}输入输入有3行,每行输入一个大整数,位数不超过100位,输
2022-01-21 11:37:16 212
原创 ZZULIOJ 1168: 账单(指针专题)
1168: 账单(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 5154 解决: 3170[状态] [讨论版] [提交] [命题人:admin]题目描述每到月末,小明就会对这个月的支出账单进行整理和统计。如今电脑已经普及大学校园,所以小明想让电脑帮忙做这件事情。聪明的你就为小明编一个程序来完成这件事情吧。输入多实例测试。首先输入一个整数ncase,表示测试实例的个数。每个测试实例的输入如下:第一行是整数n (n<100)。然后是n行的账单信息,每一行由事物的名字
2022-01-21 10:53:47 143
原创 ZZULIOJ 1167: 逆转数(指针专题)
1167: 逆转数(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 4867 解决: 3060[状态] [讨论版] [提交] [命题人:admin]题目描述任意给你一个整数,这个数可能很大(最长不超过100位),你能求出它的逆转数吗?逆转数定义如下:1.一个末尾没有0的整数,它的逆转数就是各位数字逆序输出;2.一个负数的逆转数仍是负数;3.一个末尾有0的整数,它的逆转数如同下例:reverse (1200) = 2100reverse (-56) = -65要求
2022-01-21 09:58:20 181
原创 ZZULIOJ:1166: 实数取整(指针专题)
1166: 实数取整(指针专题)题目描述读入一个实数,输出实数的整数部分。注意该实数的位数不超过100位。输入的整数部分可能含有不必要的前导0,输出时应去掉,当然,若整数部分为0,则该0不能去掉。如输入0023.56732,输出应为23,而不是0023;0.123对应的输出应为0。当然输入也可能不含小数部分。要求定义并使用rounding()函数,原型如下:char *rounding(char *p){//将字符串p表示的实数取整后生成新的字符串,并由函数返回}输入输入一个实数.输出
2022-01-20 11:12:55 254
原创 HENAU 数学专题
A - A^B Mod CB - 逆元C - 判决素数个数D - 矩阵乘法E - Bash游戏F - 取石子游戏G - Matches GameH - 互质数的个数(一)I - SumdivJ - The LotteryK - 组合数问题L - 同余方程A - A^B Mod C思路:直接用取余函数会超限,数据范围太大了1000000000^1000000000太大了,所以本题采用循环,每次平方都保存一下然后取余,这样可以控制数据范围。代码:#include<bits/s
2022-01-18 16:29:55 2154
原创 HENAU 搜索专题(我是菜b 学不会)
bfs题目A - 棋盘问题B - PerketC - 全排列D - 自然数拆分E - Prime Ring ProblemF - Red and BlackH - Oil DepositsI - Lake CountingJ - 二叉树先序遍历K - 迷宫(一)L - 马走日M - 八皇后问题N - 选数bfs题目G - Knight MovesO - 打开灯泡 Switch the Lamp Ondfs题目A - 棋盘问题代码:#include<bits/st
2022-01-14 17:35:37 203
原创 ZZULIOJ 1165: 实数的小数部分(指针专题)
1165: 实数的小数部分(指针专题)题目描述读入一个实数,输出该实数的小数部分,小数部分若多余的末尾0,请去掉。如输入111111.12345678912345678900则输出0.123456789123456789。若去掉末尾0之后小数部分为0,则输出“No decimal part”。注意该实数的位数不超过100位。请定义并使用如下函数。char *decimal(char *p){将字符串p表示的实数的自小数点开始的小数部分存入一个字符串,并由函数返回,若p为“123.456”,则返
2022-01-10 10:02:42 129
原创 ZZULIOJ 1164: 字符串加密
1164: 字符串加密题目描述输入一串字符(长度不超过100)和一个正整数k,将其中的英文字母加密并输出加密后的字符串,非英文字母不变。加密思想:将每个字母c加一个序数k,即用它后面的第k个字母代替,变换公式:c=c+k。如果字母为z,则后一个字母是a,也就是字母字符形成一个圆。输入输入第一行是若干字符,以回车结束。输入第二行是一个整数k,k是int范围内的正整数;输出输出加密后的字符串。样例输入 Copy12kjsdZjk280样例输出 Copy12edmxTde提示注意,即使通
2022-01-09 17:00:08 128
原创 ZZULIOJ 1163: 亲和串(字符串)
1163: 亲和串(字符串)题目描述判断亲和串。亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。输入本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。输出如果s2是s1的亲和串,则输出"yes",反之,输出"no"。每组测试的输出占一行。样例输入 CopyAABCDCDAAASDASDFababa样例输出 Copyyesnono
2022-01-09 16:58:08 111
原创 ZZULIOJ1162: 循环移动(指针专题)
题目描述有n个整数,使前面各数顺序向后移动k个位置,移出的数再从开头移入。输出移动后的数组元素。题目没有告诉你n的范围,希望你读入n之后用malloc()函数动态申请内存空间,不要提前定义数组的大小。不要偷懒哦。另外要求定义并使用函数ringShift()void ringShift(int *a, int n, int k){//循环移动后的数值仍然存入数组a中}输入输入分3行,第一行是一个整数n,第二行是n个整数,用空格隔开。第三行是一个整数k。输出输出n个整数,由空格隔开。输出占
2022-01-09 16:03:00 153
原创 ZZULIOJ 1161: 字符串长度(指针专题)
题目描述编写一函数len,求一个字符串的长度,注意该长度不计空格。要求用字符指针实现。在主函数中输入字符串,调用该len函数后输出其长度。int len(char *sp){//实现sp所指串的长度,不计空格。}输入输入一个字符串,以回车结束,长度不超过100。输出输出一个整数,单独占一行。样例输入 CopyWhat day is today?样例输出 Copy15#include<bits/stdc++.h>using namespace std;int len
2022-01-09 15:22:31 98
原创 ZZULIOJ1160: 矩阵的最大值(指针专题)
找出一个2×3的整数矩阵中的最大值及其行下标和列下标,要求调用函数FindMax(int p[][3], int m, int n, int *pRow, int *pCol)实现,行下标和列下标在形参中以指针的形式返回。void FindMax(int p[][3], int m, int n, int *pRow, int pCol){//在mn矩阵p中查找最大值,将其行下标存入pRow所指内存单元,将其列下标存入pCol所指内存单元}输入输入2行3列整数,共6个。输出输出3个整数,矩阵中
2022-01-09 15:01:55 117
原创 ZZULIOJ1159: 最大的两个数(指针专题)
求n个整数中的最大的两个元素。要求定义一个函数LargestTow(),求数组a的最大的两个元素,分别存入形参指针pfirst和psecond所指存储单元,函数原型如下:void LargestTow(int a[],int n,int *pfirst,int *psecond){/*数组a有n个元素,将数组中的最大值存入形参指针pfirst所指内存单元,将数组中第二大的值存入形参指针psecond所指内存单元。 */}输入输入有两行,输入第一行是一个整数n,1<n<=1000;第二
2022-01-09 15:00:21 111
原创 ZZULIOJ 1158: 又是排序(指针专题)
题目描述将输入的四个整数按由大到小的顺序输出。请你定义一个四个数排序的函数psort,psort的四个参数为要排序的四个整数变量的地址,请你按照从大到小的顺序把四个数分别放到四个指针所指向的变量里,不要在函数内输入输出任何内容。请务必使用函数实现四个数的排序。void psort( int *pa, int *pb,int *pc,int *pd){//实现四个数的排序,并分别放到四个指针所指向的变量里。}注意:本题如果采用C/C++提交时,至少要编写psort()函数和main()函数两个函
2021-09-04 10:25:44 293
原创 ZZULIOJ 1157: 连续的n个1
题目描述计算机数据都是由0和1组成的,看着长长的0101001110101111011,要找出连续n个1的子串有多少个,确实麻烦,请你编程实现吧。输入输入第一行为一个字符串,由0和1组成,长度小于1000;输入第二行为一个正整数n。输出输出一个整数,表示连续n个的1的子串的个数。样例输入 Copy01010011101011110112样例输出 Copy6#include<stdio.h>int main(){ int i,j,n,count,sum=0; char
2021-09-04 10:11:24 69
原创 ZZULIOJ 1156: 单数变复数
题目描述输入一个名词英语单词,按照英语语法规则把单数变成复数。规则如下:(1) 以辅音字母y结尾,变y为i,再加es;(2) 以s, x, ch, sh结尾,则加es;(3) 以元音o结尾,则加es;(4) 其他情况加上s。输入输入一个字符串,仅含小写字母,长度不超过20。输出输出其对应的复数形式。样例输入 Copybutterfly样例输出 Copybutterflies#include<stdio.h>#include<string.h>int m
2021-09-03 09:50:05 318
转载 ZZULIOJ 1155: 字符串比较 多实例
题目描述比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下:A < a < B < b < ………… < Z < z。输入输入数据包含多个测试实例,每个测试实例占两行,每一行有一个字符串(只包含大小写字母, 长度小于10000)。输出如果第一个字符串小于第二个,输出YES,否则,输出NO。注意:A < a < B < b < ………… < Z < z。样例输入 CopyabcBbcAbaABcefA
2021-08-31 12:23:30 69
转载 ZZULIOJ 1154: 校门外的树
题目描述某校大门外长度为L 的马路上有一排树,每两棵相邻的树之间的间隔都是1 米。我们可以把马路看成一个数轴,马路的一端在数轴0 的位置,另一端在L 的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。输入输入第一行是一个整数N,表示有
2021-08-31 11:47:57 93
原创 ZZULIOJ 1153: 简易版最长序列
题目描述给你一组数(未排序),请你设计一个程序:求出里面个数最多的数。并输出这个数的长度。例如:给你的数是:1、 2、 3、 3、 4、 4、 5、 5、 5 、6, 其中只有6组数:1, 2, 3-3, 4-4, 5-5-5 and 6.最长的是5那组,长度为3。所以输出3。输入第一行为整数t((1 ≤ t ≤ 10)),表示有n组测试数据。每组测试数据包括两行,第一行为数组的长度n (1 ≤ n ≤ 10000)。第二行为n个整数,所有整数Mi的范围都是(1 ≤ Mi < 2^32)
2021-08-26 17:10:33 447
转载 ZZULIOJ 1152: 二分搜索
题目描述在有序序列中查找某一元素x。输入首先输入一个正整数n(n<=100000),表示该序列有n个整数,然后按从小到大的顺序输入n个整数;接着是一个正整数m,表示有m次查找;最后是m个整数,表示m个要查找的整数x。输出对于每一次查找,有一行输出。若序列中存在要查找的元素x,则输出元素x在序列中的序号(序号从0开始);若序列中不存在要查找的元素x,则输出"Not found!"。样例输入 Copy51 3 5 7 911-112345678910样例输出
2021-08-26 12:24:58 109
原创 ZZULIOJ 1151: 大整数加法
题目描述比利经常会碰到超大整数的加法运算,而普通的计算器上无法进行。因此他想你帮他写一个程序来计算结果。输入输入数据有多组。首先输入一个整数T,表示有T组输入。每组输入两个大整数,并用空格隔开。每个整数最多1000位。没有负数输入。输出对于每组输入,输出两个整数的和,单独占一行。样例输入 Copy21 2112233445566778899 998877665544332211样例输出 Copy31111111111111111110#include<stdio.h>
2021-08-26 11:30:30 181
原创 ZZULIOJ 1150: 数数多少个整数
题目描述小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。输入输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。输出输出整数个数(不是数字字符个数哦)。样例输入 Copy365grh 27ha578样例输出 Copy3提示注意:010是两个数字,0和10#include<stdio.h>int main(){ int sum=0,i,flag=0; char s[1000]; gets(s); for(i=0;s
2021-08-26 11:01:02 206
原创 ZZULIOJ 1149: 组合三位数之二
题目描述把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。输入无输出输出所有满足条件的三位数组合,按第一个数的升序顺序输出。样例输出 Copy192 384 576…#include<stdio.h>#include<math.h>int fun(int a,int b,int c)//判断三个数是否重复
2021-08-25 18:26:12 211
原创 ZZULIOJ 1148: 组合三位数之一
题目描述把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数。按从小到大的顺序输出这三个三位数。输入无输出按从小到大的顺序输出这三个三位数,由空格隔开。输出占一行。方法一;#include<stdio.h>int main(){ printf("361 "); printf("529 "); printf("784"); } 方法二;#include<stdio.h>#include<math.h
2021-08-25 18:11:40 322 1
原创 ZZULIOJ 1147: 查找子数组
题目描述给定两个整型数组,数组a有n个元素, 数组b有m个元素,1<=m<=n<100,请检验数组b是否是数组a的子数组。若从数组a的某个元素a[i]开始,有b[0]=a[i],b[1]=a[i+1],…,b[m]=a[i+m],则称数组b是数组a的子数组。输入输入第一行为两个整数n和m;第二行为数组a的n个整数;第三行为数组b的m个整数,各数据之间用空格隔开。输出输出占一行。若b是a的子数组,则输出子数组所在位置i,注意下标从0开始;否则输出“No Answer”。样例输入
2021-08-25 12:17:33 406
转载 ZZULIOJ 1146: 吃糖果
题目描述HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢连续两次吃一样的糖果,喜欢先吃一颗A种类的糖果,下一次换一种口味,吃一颗B种类的糖果,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。输入第一行有一个整数T,接下来T组数据,每组数据占2行,第一行是一个整数N(0 < N <= 1000000),表示糖果的种类。第二行是N个数,表示每种糖果的数目Mi(0 < Mi &l
2021-08-25 11:42:35 60
原创 ZZULIOJ 1145: 有问题的里程表(2)
题目描述某辆汽车有一个里程表,该里程表可以显示一个整数,为该车走过的公里数。然而这个里程表有个毛病:它总是从3变到5,而跳过数字4,里程表所有位(个位、 十位、百位等)上的数字都是如此。例如,如果里程表显示15339,汽车走过1公里之后,该里程表显示15350。输入输入一个整数num,表示里程表显示的数值,长度不超过9位,且一定不含整数4。输出输出一个整数,表示实际行驶的里程。样例输入 Copy150样例输出 Copy117#include<stdio.h>#include
2021-08-24 11:50:51 289
原创 ZZULIOJ 1144: 多种进制
题目描述输入一个十进制整数n,转换成2、3、7、8进制输出要求程序定义一个dToK()函数,功能是将十进制数转化为k进制整数,其余功能在main()函数中实现。void dToK(int n, int k, char str[]){//将n转化为k进制数,存入str}输入输入一个int范围内的正整数n输出输出为4行,分别是n对应的2、3、7、8进制数样例输入 Copy13样例输出 Copy11011111615#include<stdio.h>void dT
2021-08-24 11:31:47 265
原创 ZZULIOJ 1143: 最大值—多种进制
题目描述输入n个数,每个数的进制由其后面的数字k指定,k>=2且k<=10, 输出最大的数对应的十进制数。要求程序定义一个KToD()函数和一个main()函数,KToD() 函数的功能是将k进制数转化为十进制整数,其余功能在main()函数中实现。int KToD(char str[], int k){//函数返回k进制数str对应十进制整数}输入首先输入整数n,然后是n行,每行包含一个字符串和一个整数k,用空格隔开,该字符串表示一个k进制数。所有输入均为非负数。输出输出最
2021-08-24 10:35:14 183
原创 ZZULIOJ 1142: 二进制数的大小
题目描述输入三个2 进制的数,要求将这三个二进制数对应的十进制整数按从小到大的顺序输。要求程序定义一个bToD()函数和一个main()函数,bToD() 函数的功能是将二进制数转化为十进制整数,其余功能在main()函数中实现。int bToD(char str[]){//函数返回二进制数str对应十进制整数}输入输入三个2 进制的数,用空格隔开。所有数据均为非负数,二进制数长度不超过30。输出将对应的十进制整数按从小到大的顺序输出样例输入 Copy1101 110 1011
2021-08-24 10:14:38 142
原创 ZZULIOJ 1141: 进制转换
题目描述将十进制整数n转换成二进制,并保存在字符数组中,最后输出。要求定义并调用convert()函数, 将十进制整数n对应的二进制数存入字符数组str中。void convert(int n, char str[]);输入输入一个非负整数n,n<2^31。输出输出一个01字符串,即n对应的二进制数,不含前导0。输出占一行。样例输入 Copy13样例输出 Copy1101#include<stdio.h>#include<string.h>void c
2021-08-23 18:28:48 573 1
原创 ZZULIOJ 1140: 小数点后第n位 多实例
题目描述给你一个小数x,让你算出小数点后第n位是什么,1 <= n <= 6。输入首先输入一个t,表示有t组数据,跟着t行:每行输入一个小数(输入数据保证一定是a.b的形式,总长度不超过100。为了简单化问题,没有循环小数的情况),然后跟一个n,表示小数点后第几位。输出输出一个整数,表示小数点后第n位的数。样例输入 Copy31.234 12.345 23.456 4样例输出 Copy240#include<stdio.h>#include<s
2021-08-23 18:08:16 229
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人