- 博客(35)
- 问答 (1)
- 收藏
- 关注
原创 P3370 【模板】字符串哈希
题目描述如题,给定 NN 个字符串(第 ii 个字符串长度为 M_iMi,字符串内包含数字、大小写字母,大小写敏感),请求出 NN 个字符串中共有多少个不同的字符串。友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转PJ试炼场:)输入格式第一行包含一个整数 NN,为字符串的个数。接下来 NN 行每行包含一个字符串,为所提供的字符串。输出格式输出包含一行,包含一个整数,为不同的字符串个数。输入输出样例输入 #1复制5abcaaaaabcabcc12345输出 #1
2022-05-10 16:16:26
309
原创 P3368 【模板】树状数组 2
题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数加上 xx;求出某一个数的值。输入格式第一行包含两个整数 NN、MM,分别表示该数列数字的个数和操作的总个数。第二行包含 NN 个用空格分隔的整数,其中第 ii 个数字表示数列第 ii 项的初始值。接下来 MM 行每行包含 22 或 44个整数,表示一个操作,具体如下:操作 11: 格式:1 x y k 含义:将区间 [x,y][x,y] 内每个数加上 kk;操作 22: 格式:2 x 含义:输出第 xx 个数的值。输出
2022-05-10 16:06:02
218
原创 P3374 【模板】树状数组 1
题目描述如题,已知一个数列,你需要进行下面两种操作:将某一个数加上 xx求出某区间每一个数的和输入格式第一行包含两个正整数 n,mn,m,分别表示该数列数字的个数和操作的总个数。第二行包含 nn 个用空格分隔的整数,其中第 ii 个数字表示数列第 ii 项的初始值。接下来 mm 行每行包含 33 个整数,表示一个操作,具体如下:1 x k 含义:将第 xx 个数加上 kk2 x y 含义:输出区间 [x,y][x,y] 内每个数的和输出格式输出包含若干行整数,即为所有操作 22 的结果
2022-05-09 09:23:10
109
原创 P1091 [NOIP2004 提高组] 合唱队形
题目描述nn 位同学站成一排,音乐老师要请其中的 n-kn−k 位同学出列,使得剩下的 kk 位同学排成合唱队形。合唱队形是指这样的一种队形:设 kk 位同学从左到右依次编号为 1,2,1,2, … ,k,k,他们的身高分别为 t_1,t_2,t1,t2, … ,t_k,tk,则他们的身高满足 t_1< \cdots <t_i>t_{i+1}>t1<⋯<titi+1… >t_k(1\le i\le k)>t
2022-05-08 17:56:12
307
原创 P4712 「生物」能量流动
#include <bits/stdc++.h>using namespace std;//贪心算法,对于每个动物,尽量吃编号靠前的以最小化能量流失//满足所有生物需求后,剩下的是我们所能获取的最大能量long long n,t,ans=0;//全局变量默认初始值为0;long long int a[100002],r[100002];int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(
2022-05-07 18:26:00
228
原创 P1102 A-B 数对
题目描述出题是一件痛苦的事情!相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!好吧,题目是这样的:给出一串数以及一个数字 CC,要求计算出所有 A - B = CA−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。输入格式输入共两行。第一行,两个整数 N, CN,C。第二行,NN 个整数,作为要求处理的那串数。输出格式一行,表示该串数中包含的满足 A - B = CA−B=C 的数对的个数。输入输出样例输入 #1复制
2022-05-04 21:42:47
138
原创 P1824 进击的奶牛
题目描述Farmer John 建造了一个有 NN(22 \le≤ NN \le≤ 100000100000) 个隔间的牛棚,这些隔间分布在一条直线上,坐标是 x_1x1,…,x_NxN(0 \le≤ x_ixi\le≤ 10000000001000000000)。他的 CC(22 \le≤ CC \le≤ NN) 头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗,Farmer John 想把这些牛安置在指定的隔间,所有牛中相邻两头的最近距离越
2022-05-04 20:49:36
187
原创 P2678 [NOIP2015 提高组] 跳石头
题目背景一年一度的“跳石头”比赛又要开始了!题目描述这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 NN 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 MM 块岩石(不能移走起点和终点的岩石)。输入格式第一行包含三个整数 L,N,
2022-05-03 17:13:39
106
原创 删数问题。
题目描述有 nn 个人在一个水龙头前排队接水,假如每个人接水的时间为 T_iTi,请编程找出这 nn 个人排队的一种顺序,使得 nn 个人的平均等待时间最小。输入格式第一行为一个整数 nn。第二行 nn 个整数,第 ii 个整数 T_iTi表示第 ii 个人的等待时间 T_iTi。输出格式输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。输入输出样例输入 #1复制1056 12 1 99 100
2022-05-03 16:16:12
143
原创 P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n-1n−1 次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为 11 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费
2022-05-01 17:23:15
335
原创 逆序对..
#include <bits/stdc++.h>using namespace std;//使用暴力枚举法会超时,故本题采用归并排序法,计算共交换了多少次#define Max 1000000long long int num=0;long long int t[Max],h[Max];long long int sort1(long long int a,long long int b){ if(a>=b) return 0; long lo
2022-04-27 10:51:18
99
原创 P3383 【模板】线性筛素数
埃式筛法原理首先将2到n范围内所有的整数写出来,2是最小的素数,将表中所有2的倍数划掉,剩下最小的数字3也是素数,将所有3的倍数也划掉,以此类推…如果表中剩余最小的数是m,那么m是素数,然后将表中所有m的倍数划掉,如此反复操作来枚举n以内所有的素数。其时间复杂度为O(n*log(log n))埃氏筛法具有缺陷,每个合数可能被筛多次,例如30=215=310=5*6,为此我们采用欧拉筛法来解决这种缺陷。欧拉筛法原理:从2开始,每个质数的倍数都被标记为合数,且不重复标记。#include <bi
2022-04-24 16:50:55
171
原创 【深基9.例4】求第 k 小的数
#include <bits/stdc++.h>using namespace std;#define N 5000001//分治算法int n,k;int a[N];int sort1(int l,int r){int mid=a[(l+r)/2];int i=l,j=r;while(i<=j){while(a[j]>mid)j–;while(a[i]<mid)i++;if(i<=j)//注意是小于等于{swap(a[i],a[j])
2022-04-23 22:21:38
110
原创 P1226 【模板】快速幂||取余运算
#include <bits/stdc++.h>using namespace std;//(a*b)%p=(a%p*b%p)%p 快速幂算法long long int work(long long int a,long long int b,long long p){ long long int result=1; while(b) { if(b&1) result=result*a%p; b>>=1
2022-04-23 21:22:18
349
原创 7-2 最长连续递增子序列 (20 分)
7-2 最长连续递增子序列 (20 分)给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。输入格式:输入第1行给出正整数n(≤105);第2行给出n个整数,其间以空格分隔。输出格式:在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。输入样例:151 9 2 5 7 3 4 6 8 0 11 15 17 17 10结尾无空行输出样例:
2021-12-11 10:57:28
431
原创 最短路径问题Floyed算法
#include<bits/stdc++.h>using namespace std;#define Max 1010#define INF 0x3f3f3f3fint mapd[Max][Max];int mapt[Max][Max];int n,m,s,d;int main(){ memset(mapd,INF,sizeof(mapd)); memset(mapt,INF,sizeof(mapt)); cin>>n>>m>
2021-11-22 16:51:52
494
原创 Problem B: 统计元音字母比率
Problem B: 统计元音字母比率Time Limit: 1 Sec Memory Limit: 16 MBSubmit: 5930 Solved: 2138[Submit][Status]Description统计一段英文单词或句子中的各元音字母(a,e,i,o,u)出现的次数,根据它们出现的次数和总字母数,算出元音字母出现的比率。计算元音字母和总字母数时,不区分大小写字母。非英文字母不计算在总字母数之中。Input输入为多行,至EOF结束。每行最多不超过100,000个字符(喔!
2020-12-05 11:05:19
750
原创 编写函数:比较字符串 之二 (Append Code)
Problem D: 编写函数:比较字符串 之二 (Append Code)Time Limit: 1 Sec Memory Limit: 16 MBSubmit: 8660 Solved: 4989[Submit][Status]Description字符、整数和浮点数都可以按照数值来比较大小,字符串应该怎么比较呢?让我们来编写一个程序,可以比较两个字符串的大小。编写函数str_cmp():原型:int str_cmp(char s1[], char s2[]);功能:按照指定的比较
2020-12-03 20:51:53
492
原创 藏头诗
Problem C: 藏头诗Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2652 Solved: 1003[Submit][Status]Description有个小伙暗恋同班的姑娘,但是苦于害羞腼腆不敢直抒胸臆。于是小伙打算写一首英文情诗给她。为了使这首情诗高端霸气上档次,小伙经过三天三夜的精心创作写了一首藏头的情诗。请问你能看出他想要表达的真正内容吗?Input输入有T组(T≤20)。每组数据第一行先输入一个整数N(N<100),
2020-12-03 19:33:40
564
原创 去行首行尾的空白符
Problem G: 去行首行尾的空白符Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 9706 Solved: 5142[Submit][Status]Description在C语言中,将ASCII字符集中的制表符(’\t’)、回车符(’\r’)、换行符(’\n’)、垂直制表符(’\v’)、换页符(’\f’)和空格字符(’ ')称作空白符。你的任务是读入每行字符串,去掉行首和行尾的连续空白符,但是在任意非空白符中间的空白符不要去除。Input输入
2020-12-01 17:23:21
804
原创 判断同构数(I)
Problem F: 判断同构数(I)Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1020 Solved: 364[Submit][Status]Description正整数n若是它平方数的尾部,则称n为同构数。例如:5的平方数是25,且5出现在25的右侧,那么5就是一个同构数。Input一个不超过4位的正整数N。Output如果N是一个同构数,则输出:YES。否则输出NO。Sample Input5Sample OutputYE
2020-11-26 19:42:03
961
1
原创 字符的距离(III)
Problem E: 字符的距离(III)Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1749 Solved: 791[Submit][Status]Description定义两个字母之间的距离是它们之间的字母的个数。将26个英文字母排成一个环,那么两个字母之间的间距既可以按照顺时针计算,也可以按照逆时针计算。如:字母a和c之间,如果按照顺时针,它们的距离就是1;如果按照逆时针计算,距离是23。定义同一个字母的顺时针和逆时针距离均为0。现在读取
2020-11-26 19:26:57
549
原创 数组去重
Problem C: 数组去重Time Limit: 1 Sec Memory Limit: 16 MBSubmit: 17169 Solved: 7879[Submit][Status]Description现有一个非减序(即前面的元素值不会比后面元素的数值大)排列的一维数组,其中有若干元素是重复的。编程将重复元素删除掉若干个,仅保留1个,使数组中没有重复元素。Input输入有多行。第一行M>0,表示之后有M行输入。之后的M行输入是若干个一维数组。每行的第一个数据0<N&l
2020-11-24 20:24:16
163
原创 2020-11-24
Problem B: 分数统计Time Limit: 1 Sec Memory Limit: 16 MBSubmit: 9734 Solved: 4789[Submit][Status]Description输入一些整数,表示学生的考试分数,在0~100之内为合法数据,进行统计。统计出哪个分数出现的次数最多,并按照分数大小从小到大输出。Input输入多行,每行一个整数。输入的成绩总数不超过在1~10000个之间。到EOF结束。Output输出出现次数最多的那些分数,按从小到大顺序输出。
2020-11-24 12:31:43
150
原创 兔子的繁殖问题
Problem A: 兔子的繁殖问题Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 12454 Solved: 7879[Submit][Status]Description假设一对兔子每月能生一对小兔(一雌一雄),每对小兔出生后的下一个月是没有繁殖能力的,至出生后的第三个月开始又可以每月生一对小兔,问从一对刚出生的小兔开始,经过若干个月后一共有多少兔子(假设在此过程中兔子没有死亡)?这个问题是意大利数学家菲波那契(Fibonacci)在他1202年出
2020-11-21 23:13:02
1088
原创 2020-11-21
Problem E: 两两相加和的最大值Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 4420 Solved: 1150[Submit][Status]Description对于输入的N个数a1,a2,a3,…,aN,分别求ai+ai+1(i=1,2,…,N-1)和,输出其中和最大的两个数及其和。Input输入只有一行。第一个整数N>1表示后面有N个整数。之后会有N个整数,他们两两之和均不超出int类型的表示范围。所有输入的整数两两之间用
2020-11-21 22:12:39
164
原创 摄氏——华氏温度转换表
Problem D: 摄氏——华氏温度转换表Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 26065 Solved: 7063[Submit][Status]Description已知华氏温度F,转换为摄氏温度C的公式为C=(F-32)*5/9。输出给定范围(从low到high)和步长(step)的摄氏——华氏温度转换表Input第1行若为“C->F”表示输出:摄氏——华氏温度转换表,若为“F->C”表示输出:华氏——摄氏温度转换表。
2020-11-21 14:51:05
2890
原创 字符串的长度
Problem J: 字符串的长度Time Limit: 1 Sec Memory Limit: 16 MBSubmit: 16458 Solved: 7179[Submit][Status]Description输入一些字符串,输出它们的长度。Input输入为多行。第一行N>0表示有N个测试用例,后面有N行,每行包含一个字符串(不超过1000个字符)。Output输出为多行,每行对应于一个测试用例。每行的格式为:case i:length=j.其中i表示测试用例编号(从1开
2020-11-19 20:39:09
921
原创 数字统计
Problem F: 数字统计Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 10610 Solved: 5030[Submit][Status]Description给出一些数字,统计出现最多的数字的次数。Input输入中第一行包含一个N,0 < N <= 500000。后面N行每行包含一个数字k,0<=k<=200000。Output输出出现次数最多的数字的个数。Sample Input511234
2020-11-19 20:21:12
740
原创 字符串的逆序
Problem H: 字符串的逆序Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 13000 Solved: 7874[Submit][Status]Description将输入的一个字符串s逆序输出。Input输入为一个串s。输入最少为一个字符,最多不会超过100个字符。输入不含各种空白符(’\t’、’\n’、’\r’、’ ')。Output串s的逆序。Sample InputabcdeSample OutputedcbaHINT输
2020-11-19 20:03:27
622
原创 2020-11-19
Problem B: 简单的整数排序Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 17481 Solved: 9408[Submit][Status]Description对给出的若干整数按从小到大排序。Input输入的第一个数为n(n<=1000),后接n个整数。Output按从小到大的顺序输出这些整数,每两个整数之间用一个空格分隔开,最后一个整数后面没有空格。Sample Input10 3 9 1 5 2 8 5 6 7 3S
2020-11-19 19:40:34
169
原创 2020-11-19
十进制整数转二进制Problem A: 十进制整数转二进制Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 11650 Solved: 6607[Submit][Status]Description给出一个十进制的非负整数x,x<=216,把它转换成二进制数输出。Input输入为多行,每行一个整数x,至读入EOF结束。Output每行输出x对应的二进制数值。Sample Input0133365535Sample Output
2020-11-19 17:44:49
122
空空如也
此代码为什么要有个先+'0'再-'0'的操作,意欲何为?
2021-03-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人