- 博客(52)
- 问答 (2)
- 收藏
- 关注
原创 欧拉函数(模板)
欧拉函数–模板int main() { ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); int n; cin>>n; int res=n; for(int i=2;i*i<=n;++i) { if(n%i==0) { res=res/i*(i-1); } while(n%i==0) n/=i; } if(
2022-03-07 19:02:54 189 1
原创 快速幂(模板)
快速幂(模板)时间复杂度O(logn);空间复杂度O(1);double myPow(double x, int n) { if(n==0) return 1; double sum=1; long long m=abs(n);//long long 类型防止n=-2^31取正时爆掉int; while(m) { if(m&1) { if(n>0) sum*=x;.
2022-02-13 00:15:53 317
原创 全排列问题
题目描述按照字典序输出自然数 111 到 nnn 所有不重复的排列,即 nnn 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入格式一个整数 nnn。输出格式由 1∼n1 \sim n1∼n 组成的所有不重复的数字序列,每行一个序列。每个数字保留 555 个场宽。输入输出样例输入 #13输出 #1 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3
2022-01-17 01:56:30 499
原创 C语言qsort函数的应用(快排函数)
C语言qsort函数的应用(快排函数)存在于头文件#include <stdlib.h>中qsort ( a , 3 , sizeof(int) , cmp1 );( 数组首地址,排序的数量,排序元素的类型,排序方式)不同的排序方式可以通过修改cmp函数来进行修改1、对数字数组排序#include <stdio.h>#include <stdlib.h>int cmp1(const void *a,const void *b)//从小到大排序;{
2022-01-14 18:45:07 281
原创 切绳子(二分答案)
有 nnn 条绳子,它们的长度分别为 LiL_iLi,如果从它们中切割出 mmm 条长度相同的绳子,这 mmm 条绳子每条最长能有多长?输入格式第一行两个整数 nnn 和 mmm。接下来 nnn 行,每行一个实数,描述了每条绳子的长度 LiL_iLi。数据范围:1≤n≤m≤1041\le n\le m\le 10^41≤n≤m≤104,1≤Li≤1051\le L_i \le 10^51≤Li≤105。输出格式切割后每条绳子的最大长度,保留 666 位小数。Sample Inp
2022-01-14 15:51:49 284
原创 奶牛晒衣服(二分查找)
奶牛晒衣服熊大妈决定给每个牛宝宝都穿上可爱的婴儿装。于是,为牛宝宝洗晒衣服就成了很不爽的事情。熊大妈请你帮助完成这个重任,洗完衣服后,你就要弄干衣服。衣服在自然条件下用 111 的时间可以晒干 AAA 点湿度,抠门的熊大妈买了 111 台烘衣机 。使用烘衣机可以让你用 111 的时间使 111 件衣服除了自然晒干 AAA 点湿度外,还可以烘干 BBB 点湿度,但在 111 的时间内只能对 111 件衣服使用。NNN 件衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的最少时
2022-01-13 23:32:31 496
原创 k倍区间(前缀和)
k倍区间-第八届蓝桥省赛-B组给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式:第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。1≤N,K≤100000 , 1≤Ai≤100000输出格式:输出一个整数,代表 K 倍区间的数目。输入样例:5 212345输出样例:在这里给出相应的输出。例如:
2022-01-12 19:40:46 218
原创 IncDec Sequence(差分)
题目描述给定一个长度为 nnn 的数列 a1,a2,⋯ ,an{a_1,a_2,\cdots,a_n}a1,a2,⋯,an,每次可以选择一个区间[l,r][l,r][l,r],使这个区间内的数都加 111 或者都减 111。请问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。输入格式第一行一个正整数 nnn接下来 nnn 行,每行一个整数,第 i+1i+1 i+1行的整数表示 aia_iai。输出格式第一行输出最少操作次数第二行输出
2022-01-11 18:06:28 532
原创 排列组合——越狱(快速幂)
**排列组合——越狱(快速幂)** 监狱有连续编号为 111 到 nnn 的 nnn 个房间,每个房间关押一个犯人。有 mmm 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱。输入格式输入两个整数 mmm 和 nnn。输出格式可能越狱的状态数,对 100003100003100003 取余。所有可能的 666 种状态为:{0,0,0},{0,0,1},{0,1,1},{1,0,0},{1,1,0},{1,1,1}{0,.
2022-01-08 02:06:29 330
原创 位运算——二个奇数次
输入一个长度为n的数组,考虑所有不同的数字,有且只有2个数字出现了奇数次。比如对于1 2 3 1 2 3 1 2,我们考虑所有不同的数字1 2 3,有且只有1,2出现了奇数次(均为3次)输出这两个出现了奇数次的数字。先输出这两个数字中较小的,再输出较大的。(1 <= n <= 100000,1 <= a[i] <= 10^9)Input第一行一个整数n, 接下来一行n个整数,表示输入的数字。Output一行2个数字,表示出现了奇数次的数字,先输出小的,再输出大的
2022-01-08 01:30:20 634
原创 位运算——一个奇数次
位运算——一个奇数次输入一个长度为n的数组,考虑所有不同的数字,有且只有一个数字出现了奇数次。比如对于1 2 3 1 2 3 1,我们考虑所有不同的数字1 2 3,有且只有1出现了奇数次(3次)输出这个出现了奇数次的数字。1 <= n <= 1000001 <= a[i] <= 10^9第一行一个整数n, 接下来一行n个整数,表示输入的数字。 一行一个数字,表示出现了奇数次的数字。 Sample Input71 2 3 1 2 3 1Samp
2022-01-08 01:23:46 730
原创 a的b次方(快速幂+快速乘)
*求a的b次方,取模mod(1<=a,b,mod<=1e18)*Input多组输入,每组数据一行,3个正整数,分别为a,b,modOutput每组数据输出一行,为答案Sample Input2 10 100000005 100 10 2 37Sample Output102400这道题要用到快速幂和快速乘;1、快速幂是为了快速求出a的b次方(节约时间);2、快速乘是为了防止两数相乘爆掉long long类型变量(及时对mod取模)由于本人尚未完全理解位运算,这两
2022-01-05 17:35:21 1454
原创 A*B问题(高精)
P1303 A*B Problem题目描述求两数的积。输入格式两行,两个整数。输出格式一行一个整数表示乘积。输入输出样例输入 #112输出 #12说明/提示每个数字不超过 10的2000 次方,需用高精。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <limits.h>#include <math.h>#include &l
2022-01-01 15:47:45 543
原创 n边形的对角线交点个数(C语言)
题目描述对于一个 nnn 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。(n>=3且n<=10的5次方)做题思路:对于这种问题,我们都知道四边形有两个对角线构成一个对角线交点,我们只需要找该n边形的n个点可以形成多少个不同的四边形就行了。n边形的n个点可形成的四边形个数有:组合数C(n,4)#include <stdio.h>int main(){ unsigned long long n,a;//用无类型long long
2021-12-26 18:20:42 1075 1
原创 阶乘的位数(转换为任意进制后的位数)
zzulioj 2560: 阶乘的位数时间限制: 1 Sec 内存限制: 128 MB提交: 450 解决: 101[状态] [讨论版] [提交] [命题人:541723030106]题目描述一个数字通过阶乘,可以得到很大的数字。这里不需要算出阶乘后的数字,只需要的得到阶乘后数字的位数。 是不是有点太简单? 这里添加一点复杂的逻辑,请你算出N的阶乘,在B进制下的位数。输入第一行为整数T,代表有T组测试数据。每组测试数据两个整数N和B。数据范围: 0 < T <= 100,
2021-12-24 00:48:48 736
原创 洛谷 :P5461 赦免战俘(题解)
P5461 赦免战俘题目背景借助反作弊系统,一些在月赛有抄袭作弊行为的选手被抓出来了!题目描述现有 2n×2n(n≤10)2^n\times 2^n (n\le10)2n×2n(n≤10) 名作弊者站成一个正方形方阵等候 kkksc03 的发落。kkksc03 决定赦免一些作弊者。他将正方形矩阵均分为 4 个更小的正方形矩阵,每个更小的矩阵的边长是原矩阵的一半。其中左上角那一个矩阵的所有作弊者都将得到赦免,剩下 3 个小矩阵中,每一个矩阵继续分为 4 个更小的矩阵,然后通过同样的方式赦免作弊者……直
2021-12-20 11:31:04 1687 1
原创 zzulioj:1199: 在线判题(字符串)
1199: 在线判题(字符串)时间限制: 1 Sec 内存限制: 128 MB提交: 13951 解决: 7462[状态] [讨论版] [提交] [命题人:外部导入]题目描述LittleTom开发了一个在线判题系统,判题系统需要把用户提交上来的代码编译成可执行文件,然后运行。而用户会提交什么样的代码是无法预知的,所以LittleTom做了充分的准备,比如阻止解题程序访问文件系统、阻止解题程序访问注册表、阻止解题程序修改系统设置、阻止解题程序关闭系统、阻止解题程序超限或非法使用内存、阻止解题程序
2021-12-17 14:54:05 594
原创 zzulioj:1196: 数星星(二)(结构体专题)
1196: 数星星(二)(结构体专题)时间限制: 1 Sec 内存限制: 128 MB提交: 2993 解决: 964[状态] [讨论版] [提交] [命题人:外部导入]题目描述一天,小明坐在院子里数星星,Gardon就出了个难题给他,让他数数天上的星星最多有多少个是在同一条直线上的。天上的星星太多了,小明马上就看花了眼,你能写个程序来帮他计算么?输入首先输入一个整数N(N<=300),接下来的N对数每对表示一个星星的位置(星星的坐标在-10000到10000之间,精确到小数点后1位
2021-12-16 00:13:29 386
原创 zzulioj:1178: 单词数
1178: 单词数时间限制: 1 Sec 内存限制: 128 MB提交: 4599 解决: 1492[状态] [讨论版] [提交] [命题人:admin]题目描述统计一篇文章里不同单词的总数。输入有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由大小写字母和空格组成,没有标点符号,遇到#时表示输入结束。每篇文章的单词数小于1000,每个单词最多由30个字母组成。输出每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。样例输入 Copyyou are my f
2021-12-14 19:52:06 387
原创 zzulioj:1189: 选票统计(二)(结构体专题)
1189: 选票统计(二)(结构体专题)时间限制: 1 Sec 内存限制: 128 MB提交: 2781 解决: 1771[状态] [讨论版] [提交] [命题人:外部导入]题目描述计算机与通信工程学院2012届学生会主席投票选举工作定于1月6日在电教楼前隆重举行。本次投票将采用电脑统计选票的方式,当投票选举正式开始后,同学们将排队一一走到电脑前,投上自己神圣的一票:在电脑前输入一个姓名,然后输入回车表示确认。当所同学投票结束,工作人员只需要输入一个”#”并回车确认,表示投票结束,电脑立即显
2021-12-14 16:58:13 383
原创 zzulioj:1188: 选票统计(一)(结构体专题)
1188: 选票统计(一)(结构体专题)时间限制: 1 Sec 内存限制: 128 MB提交: 2976 解决: 2309[状态] [讨论版] [提交] [命题人:外部导入]题目描述某单位进行选举,有5位候选人:zhang、wang、zhao、liu、miao。编写程序,统计每人所得的票数。要求每人的信息里包括两部分:name和votes,分别描述姓名和所得票数。每个人的信息用一个结构体来表示,5个人的信息使用结构体数组。输入首先输入一个整数n,表示一张选票,接下来n行,每行是一个由小
2021-12-14 16:41:32 402
原创 zzulioj:1187: 棒棒糖(结构体专题)
1187: 棒棒糖(结构体专题)时间限制: 1 Sec 内存限制: 128 MB提交: 2762 解决: 2142[状态] [讨论版] [提交] [命题人:外部导入]题目描述新年快到了,计算机学院新年晚会正在筹备中,今年有一个新创意:来参加晚会的所有学生都有礼物(一根棒棒糖)。老师把买棒棒糖的任务交给小明了,并指定了要买的棒棒糖的品牌和品种。俗话说得好,货比三家不吃亏。小明来到了商店,看了各个店铺里这种棒棒糖的价格,不仅如此,他还记住了每个店铺的存货量。已知小明打算购买n根棒棒糖,问他最少要花
2021-12-14 16:17:20 234
原创 zzulioj:1186: 删除记录(结构体专题)
1186: 删除记录(结构体专题)时间限制: 1 Sec 内存限制: 128 MB提交: 4305 解决: 2676[状态] [讨论版] [提交] [命题人:外部导入]题目描述有一学生成绩表,包括学号、姓名、3门课程成绩。请实现如下删除功能:输入一个学生的学号,删除该学生的所有信息。输入首先输入一个整数n(1<=n<=100),表示学生人数;然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。
2021-12-14 15:26:36 359
原创 zzulioj:1185: 添加记录(结构体专题)
1185: 添加记录(结构体专题)时间限制: 1 Sec 内存限制: 128 MB提交: 5977 解决: 2529[状态] [讨论版] [提交] [命题人:外部导入]题目描述有一学生成绩表,包括学号、姓名、3门课程成绩。已知该成绩表按学号升序排序。请编程实现,添加一个新的学生信息,且使成绩表仍按学号有序;若待添加的学号与已有学号重复,则输出错误信息,拒绝添加。输入首先输入一个整数n(1<=n<=100),表示学生人数;然后输入n行,每行包含一个学生的信息:学号(12位)、姓
2021-12-14 15:17:55 338
原创 zzulioj:1182: 查询记录(结构体专题)
1182: 查询记录(结构体专题)时间限制: 1 Sec 内存限制: 128 MB提交: 6035 解决: 3478[状态] [讨论版] [提交] [命题人:外部导入]题目描述有一学生成绩表,包括学号、姓名、3门课程成绩。请实现如下查找功能:输入一个学生的学号,输出该学生学号、姓名、3门课程成绩输入首先输入一个整数n(1<=n<=100),表示学生人数;然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间
2021-12-14 14:20:48 380
原创 zzulioj:1181: 谁的年龄最小(结构体专题)
1181: 谁的年龄最小(结构体专题)时间限制: 1 Sec 内存限制: 128 MB提交: 7956 解决: 4449[状态] [讨论版] [提交] [命题人:外部导入]题目描述设计一个结构体类型,包含姓名、出生日期。其中出生日期又包含年、月、日三部分信息。输入n个好友的信息,输出年龄最小的好友的姓名和出生日期。输入首先输入一个整数n(1<=n<=10),表示好友人数,然后输入n行,每行包含一个好友的信息:姓名(不超过20位)以及三个整数,分别表示出生日期的年月日。输出输
2021-12-14 12:35:26 359
原创 zzulioj:1177: 按要求排序(指针专题)
1177: 按要求排序(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 3788 解决: 1653[状态] [讨论版] [提交] [命题人:admin]题目描述输入n和n个整数,然后按要求排序,若输入1,请输出升序排序序列;若输入2,请输出降序排序序列,若输入3,请输出按绝对值升序排序序列。要求程序结构如下,请完善程序。void sort(int a[], int n, int (*cmp)());int CmpAsc(int x, int y); /按升序要求判断两元素
2021-12-14 11:45:41 304
原创 1174: 长整数排序(指针专题)
1174: 长整数排序(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 3384 解决: 1638[状态] [讨论版] [提交] [命题人:admin]题目描述长整数排序。输入n 然后输入n个位数不超过100位的大整数,输入的整数可能含有前导0。将这n个长整数排序后输出,输出不含前导0。int greater(char *s1, char *s2){若s1指向的整数大于s2指向的整数,返回一个正整数;若s1指向的整数小于s2指向的整数,返回负整数;若s1指向的整数等
2021-12-13 13:14:52 273
原创 zzulioj:1172: 矩阵边界和(指针专题)
1172: 矩阵边界和(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 3044 解决: 1918[状态] [讨论版] [提交] [命题人:admin]题目描述给定一个m行n列的二维矩阵,求其四周边元素和。1<=m、n<=100000,可能是1行100000列,也可能是10000行50列,但保证矩阵元素不多于500000。你可能不能预定义数组的大小了,你要学会使用动态内存分配哦。你可以动态申请mn个内存单元,然后用一维数组来存储二维数组,二维数组元素a[i][j]
2021-12-12 00:10:24 324
原创 zzulioj:1170: 最长字符串(指针专题)
1170: 最长字符串(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 3685 解决: 2418[状态] [讨论版] [提交] [命题人:admin]题目描述输入多个字符串,输出最长字符串。要求定义并使用函数maxLenStr(),void maxLenStr(char *str[], int n, int *max){从字符串数组str中找出最长的一个字符串,并将其下标存入形参指针max所指内存。}输入输入有多行,每行一个字符串,每个字符串长度不超过80,输入
2021-12-11 19:34:28 466
原创 zzulioj:1168: 账单(指针专题)
1168: 账单(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 4878 解决: 2958[状态] [讨论版] [提交] [命题人:admin]题目描述每到月末,小明就会对这个月的支出账单进行整理和统计。如今电脑已经普及大学校园,所以小明想让电脑帮忙做这件事情。聪明的你就为小明编一个程序来完成这件事情吧。输入多实例测试。首先输入一个整数ncase,表示测试实例的个数。每个测试实例的输入如下:第一行是整数n (n<100)。然后是n行的账单信息,每一行由事物的名字
2021-12-11 14:32:31 515
原创 zzulioj;1163: 亲和串(字符串)
1163: 亲和串(字符串)时间限制: 1 Sec 内存限制: 128 MB提交: 6734 解决: 2984[状态] [讨论版] [提交] [命题人:admin]题目描述判断亲和串。亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。输入本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。输出如果s2是s1的亲和串,则输出"yes",反之,输出"
2021-12-11 00:05:02 396 1
原创 zzulioj:1161: 字符串长度(指针专题)
1161: 字符串长度(指针专题)时间限制: 1 Sec 内存限制: 128 MB提交: 6850 解决: 4970[状态] [讨论版] [提交] [命题人:admin]题目描述编写一函数len,求一个字符串的长度,注意该长度不计空格。要求用字符指针实现。在主函数中输入字符串,调用该len函数后输出其长度。int len(char *sp){//实现sp所指串的长度,不计空格。}输入输入一个字符串,以回车结束,长度不超过100。输出输出一个整数,单独占一行。样例输入 Copy
2021-12-10 21:27:52 252
原创 zzulioj:1157: 连续的n个1
1157: 连续的n个1时间限制: 1 Sec 内存限制: 128 MB提交: 3983 解决: 2692[状态] [讨论版] [提交] [命题人:admin]题目描述计算机数据都是由0和1组成的,看着长长的0101001110101111011,要找出连续n个1的子串有多少个,确实麻烦,请你编程实现吧。输入输入第一行为一个字符串,由0和1组成,长度小于1000;输入第二行为一个正整数n。输出输出一个整数,表示连续n个的1的子串的个数。样例输入 Copy01010011101011
2021-12-10 21:06:31 151
原创 zzulioj:1156: 单数变复数
1156: 单数变复数时间限制: 1 Sec 内存限制: 128 MB提交: 4137 解决: 2630[状态] [讨论版] [提交] [命题人:admin]题目描述输入一个名词英语单词,按照英语语法规则把单数变成复数。规则如下:(1) 以辅音字母y结尾,变y为i,再加es;(2) 以s, x, ch, sh结尾,则加es;(3) 以元音o结尾,则加es;(4) 其他情况加上s。输入输入一个字符串,仅含小写字母,长度不超过20。输出输出其对应的复数形式。样例输入 Copyb
2021-12-10 20:40:25 303
原创 zzulioj:1155: 字符串比较 多实例
1155: 字符串比较 多实例时间限制: 1 Sec 内存限制: 128 MB提交: 5535 解决: 2345[状态] [讨论版] [提交] [命题人:admin]题目描述比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下:A < a < B < b < ………… < Z < z。输入输入数据包含多个测试实例,每个测试实例占两行,每一行有一个字符串(只包含大小写字母, 长度小于10000)。输出如果第一个字符串小于第二个,输出YES,否
2021-12-10 20:24:12 254
原创 zzulioj:1154: 校门外的树
1154: 校门外的树时间限制: 1 Sec 内存限制: 128 MB提交: 5243 解决: 2836[状态] [讨论版] [提交] [命题人:admin]题目描述某校大门外长度为L 的马路上有一排树,每两棵相邻的树之间的间隔都是1 米。我们可以把马路看成一个数轴,马路的一端在数轴0 的位置,另一端在L 的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,
2021-12-10 14:19:44 273 1
原创 zzulioj:1153: 简易版最长序列
1153: 简易版最长序列时间限制: 1 Sec 内存限制: 128 MB提交: 6862 解决: 2684[状态] [讨论版] [提交] [命题人:admin]题目描述给你一组数(未排序),请你设计一个程序:求出里面个数最多的数。并输出这个数的长度。例如:给你的数是: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)),表
2021-12-10 14:00:51 260
原创 zzulioj:指针结构体 题解
1158又是排序(指针专题)题目描述将输入的四个整数按由大到小的顺序输出。请你定义一个四个数排序的函数psort,psort的四个参数为要排序的四个整数变量的地址,请你按照从大到小的顺序把四个数分别放到四个指针所指向的变量里,不要在函数内输入输出任何内容。请务必使用函数实现四个数的排序。void psort( int *pa, int *pb,int *pc,int *pd){//实现四个数的排序,并分别放到四个指针所指向的变量里。}注意:本题如果采用C/C++提交时,至少要编写psort(
2021-12-09 22:14:50 2280
原创 zzulioj:1146: 吃糖果(有注释)
1146: 吃糖果时间限制: 1 Sec 内存限制: 128 MB提交: 7910 解决: 3519[状态] [讨论版] [提交] [命题人:admin]题目描述HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢连续两次吃一样的糖果,喜欢先吃一颗A种类的糖果,下一次换一种口味,吃一颗B种类的糖果,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。输入第一行有一个整数T,接下来T组数据
2021-12-08 20:56:08 618
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人