- 博客(126)
- 收藏
- 关注
原创 SDUT---OJ《数据结构与算法》实践能力专题训练7 排序
A - 数据结构实验之排序一:一趟快排Description给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。Input连续输入多组数据,每组输入数据第一行给出正整数N(N < = 10^5),随后给出N个长整型范围内的整数,数字间以空格分隔。Output输出一趟快速排序后的结果,数字间以一个空格间隔,行末不得有多余空格。SampleInput849 38 65 97 76 13 27 49Output..
2021-03-23 17:14:38 175
原创 SDUT---OJ《数据结构与算法》实践能力专题训练7 查找
A - 数据结构实验之查找一:二叉排序树Description对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。Input输入包含若干组测试数据。每组数据的第1行给出两个正整数N (n < = 10)和L,分别是输入序列的元素个数和需要比较的序列个数。第2行给出N个以空格分隔的
2020-12-15 10:28:34 393
原创 SDUT--OJ《数据结构与算法》实践能力专题训练6 图论
A - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历Description给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)Input输入第一行为整数n(0< n <100),表示数据的组数。对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点,t为遍历的起始顶点。下面的m行,每行是空格隔开的两个整
2020-11-19 19:39:56 908
原创 SDUT---OJ《数据结构与算法》实践能力专题训练4 串
A - 数据结构实验之串一:KMP简单应用Description给定两个字符串string1和string2,判断string2是否为string1的子串。Input输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2(长度小于1000000),string1和string2中保证不出现空格。Output对于每组输入数据,若string2是string1的子串,则输出string2在string1中的位置,若不是,输..
2020-11-14 19:40:38 416
原创 SDUT---OJ《数据结构与算法》实践能力专题训练3 栈与队列
A - 数据结构实验之栈与队列一:进制转换Description输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。Input第一行输入需要转换的十进制非负整数;第二行输入 R。Output输出转换所得的 R 进制数。SampleInput12798Output2377#include <iostream>#include <bits/stdc++.h>using na..
2020-11-13 19:41:38 471
原创 SDUT---OJ《数据结构与算法》实践能力专题训练2 链表
A - 数据结构实验之链表一:顺序建立链表Description输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。Input第一行输入整数的个数N;第二行依次输入每个整数。Output输出这组整数。SampleInput812 56 4 6 55 15 33 62Output12 56 4 6 55 15 33 62Hint不得使用数组!#include<stdio.h>#include<..
2020-11-11 21:29:03 325
原创 SDUT---OJ《数据结构与算法》实践能力专题训练1 顺序表
A - 顺序表应用1:多余元素删除之移位算法Description一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中可能有多个)变成一个“纯表”(值相同的元素在表中只保留第一个)。要求:1、必须先定义线性表的结构与操作函数,在主函数中借助该定义与操作函数调用实现问题功能;2、本题的目标是熟悉顺序表的移位算法,因此题目必须要用元素的移位实现删除;Input
2020-11-11 21:18:23 1520 1
原创 SDUT---OJ《程序设计基础(B)II》实验6--动态规划
A - 递归的函数Description给定一个函数 f(a, b, c):如果 a ≤ 0 或 b ≤ 0 或 c ≤ 0 返回值为 1;如果 a > 20 或 b > 20 或 c > 20 返回值为 f(20, 20, 20);如果 a < b 并且 b < c 返回f(a, b, c−1) + f(a, b−1, c−1) − f(a, b−1, c);其它情况返回 f(a−1, b, c) + f(a−1, b−1, c) + f(a−1, .
2020-11-06 20:29:46 1104
原创 SDUT---OJ程序设计基础(B)II》实验5--贪心
A - 删数问题Description键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。Input输入两个数字,分别为原始数n,要去掉的数字数s (s < n)。Output输出去掉s个数后最小的数SampleInput178543 4Output13#include<stdio.h>#includ...
2020-11-06 20:24:11 1353 1
原创 SDUT---OJ《程序设计基础(B)II》实验4--递归
A - 计算组合数Description计算组合数。C(n,m),表示从n个数中选择m个的组合数。计算公式如下:若:m=0,C(n,m)=1否则,若 n=1,C(n,m)=1 否则,若m=n,C(n,m)=1 否则C(n,m) = C(n-1,m-1) + C(n-1,m).Input第一行是正整数N,表示有N组要求的组合数。接下来N行,每行两个整数n,m (0 <= m <= n ...
2020-11-06 20:18:09 1399
原创 SDUT---OJ《程序设计基础(B)II》实验3--递推
A - 养兔子Description一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第N天以后,他将会得到多少对兔子。Input输入为一个整数n(1 ≤ n ≤ 90)。Output对应输出第n天有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。SampleInput2Output2Hint数据类型可以用64位整数:long l..
2020-11-06 20:13:02 704
原创 SDUT---OJ《程序设计基础(B)II》实验2--链表
A - 数据结构实验之链表一:顺序建立链表Description输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。Input第一行输入整数的个数N;第二行依次输入每个整数。Output输出这组整数。SampleInput812 56 4 6 55 15 33 62Output12 56 4 6 55 15 33 62#include<stdio.h>#include<stdlib.h>st..
2020-11-06 20:06:22 1736
原创 SDUT--OJ《程序设计基础(B)II》实验1--结构体、共用体和枚举
A - 检查宿舍卫生Description不知道是从哪个学校开始兴起的还是哪个领导的决定,学校里每周都要检查宿舍卫生!大家发现没有,检查宿舍卫生是件很奇葩的事情,它剥削了每件物品的意义:垃圾桶里不能有垃圾,挂钩上不能挂东西,桌子上不能放东西,床上不能躺人!!假设检查卫生分为五项成绩:垃圾桶得分、挂钩得分、桌子得分、床铺得分和窗台得分。每项满分20分,总分满分为100分。按照计算机学院奇葩的规定,宿舍成绩在85分以下就要算作不合格。某天,宿管阿姨给了你一个检查完宿舍的打分表,让你帮忙统计下有多少个宿舍
2020-11-06 20:01:23 1706 1
原创 Monopoly(CCPC网络赛)
题意:给你n个点,每个点有自己的权值,你每次走一步,从1到n循环走,走到这个点上,你的总和加上这个权值。代码:#include <bits/stdc++.h>using namespace std;const int N=5e5+100;typedef long long LL;map<LL,LL>vis,name;vector<LL>dis[N];LL sum[N];int main(){ int t; scanf("
2021-10-11 19:42:49 393
原创 2021“MINIEYE杯”中国大学生算法设计超级联赛(9)
Boring data structure problem题意:给出四种操作,L,R,Q,G,L是在队列左边插入一个数,R是在队列右边插入一个数,Q是询问队列中的中位数((m+1)/2),G是给出一个数x,删除数值为X的数:插入的数是从1到n进行插入,无重复思路:用数组模拟链表功能,用结构体分别把每个节点的左节点和右节点存储,然后再开一个数组来记录插入数值的位置,结构体空间不能开双倍(会爆内存),所以要增加偏移量。代码:#include <bits/stdc++.h
2021-08-18 09:34:49 282
原创 2021“MINIEYE杯”中国大学生算法设计超级联赛(8)
Singing Superstar题意:给一长度 < 1e5 的字符串s,q < 1e5次询问,每次问一个长 < 30 的串 t 在s中出现的次数,且t不可重叠。例 : “abababa“中“aba“不相交的出现的次数为2。思路:一道简单的字符串题,对母串中所有长度小于等于30的串做字符串哈希,对相同哈希值的串暴力统计答案,每个询问直接查询对应哈希值的答案。也可以使用Trie/AC自动机来通过本题,数据范围放的很松,理论复杂度稍劣也能通过。代码:字符串h
2021-08-13 17:09:03 253
原创 2021“MINIEYE杯”中国大学生算法设计超级联赛(3)
Forgiving Matching(FFT+字符串匹配)题意:给你两个串a,b长度分别为n,m;a中长度为m的子串与b进行匹配,其中∗代表通配符,即与任何其他字符相同;当小Q可以原谅字串b有0,1,2,……T个位置可以是不匹配的,分别输出有a中有多少子串是完全匹配的。思路:假如没有通配符,对于每个字符 c ,如果s[i]=t[j]=c,那么f[i+m-j]就应该加1 ( 以子串右边界单独标记一个子串 ),而这里若是对字符串 t 翻转一下,m-j就对应j,那么i+m-j就变成了
2021-07-30 15:12:13 186
原创 莫队(普通莫队,带修莫队,回滚莫队)
莫队定义:莫队算法 = 离线 + 暴力 + 分块。(优雅的暴力)(莫队:2010年信息学国家集训队队员莫涛) “离线”和“在线”的概念。在线是交互式的,一问一答;如果前面的答案用于后面的提问,称为“强制在线”。离线是非交互的,一次性读取所有问题,然后一起回答,"记录所有步,回头再做”。 基础的莫队算法是一种离线算法,它通常用于不修改只查询的一类区间问题,复杂度O(),没有在线算法线段树或树状数组好,但是编码很简单。莫队处理的两类问题: 一是莫队维护区间答案 二是...
2021-07-28 19:41:25 740
原创 2021“MINIEYE杯”中国大学生算法设计超级联赛(1)
Xor sum题意给定n,k; 下方给出n个数的序列,求出长度最短且序列最左边序号最小的序列,子序列的异或和要大于k;思路:01字典树可以解决异或和问题。可以将给定序列,可以求出前缀异或和。然后问题就变成了两个异或前缀和(区间的序列异或和)>k。我们在建立字典树的时候,后来的数的序号要覆盖前面的。用mr[]数组存取。边建树边询问。void 询问(int x){ int res(序号)=0; int flag(标记)=1; for(int.
2021-07-24 21:21:37 157
原创 2021“MINIEYE杯”中国大学生算法设计超级联赛(2)
I love counting题意:有n个考试科目,现在有m套复习资料,每套复习资料需要花费wi天使用,用完提升ci的分数,现在还有t天复习时间,挂科数目不能超过p,问所有达到的最大分数思路:首先01背包求出每门课花费k天可以最多得到多少分,然后dp[i][k][l]前i门课程,复习了k天,挂了l门课程的最大分数。 dp[i][k][l]=max(dp[i-1][k-j][l-x]+f[j],dp[i][k][l]);#include<bits/stdc++..
2021-07-22 20:19:17 157
原创 2020-2021 ICPC Southeastern European Regional Programming Contest (SEERC 2020)
B - Reverse GameGym - 103102B、博弈#include<bits/stdc++.h>using namespace std;typedef unsigned long long ull;typedef long long LL;typedef pair<int,int> PII;const int mod=998244353;const int inf=0x3f3f3f3f;const double PI = acos...
2021-06-26 21:47:27 1461
原创 2021-06-23
#include <iostream>#include <bits/stdc++.h>using namespace std;const int inf=0x3f3f3f3f;const int N=11111;struct node//结构体建边{ int u; int v; int w;} p[N];int vis[N];bool cmp(node x,node y){ return x.w<y.w;}void ini
2021-06-23 23:14:40 87
原创 Codeforces Round #723 (Div. 2)
A. Mean Inequalitytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an arrayaaof2n2ndistinctintegers. You want to arrange the elements of the array in a circle such tha...
2021-05-31 19:33:35 96
原创 SDUT 2021 Spring Team Contest--- 21
Your best friend Adam has recently bought a Raspberry Pi and some equipment, including a wireless temperature sensor and a 433MHz receiver to receive the signals the sensors sends. Adam plans to use the Raspberry Pi as an in-door display for his weather se
2021-05-31 19:16:43 327
原创 J - uvenile Galant Gym - 103061J
题解:状态机 分成三种状态 0为刀口为平的时候,1为刀口为刀尖向上的,2为刀口刀尖向下的#include <bits/stdc++.h>using namespace std;long long int dp[1010100][3];int mod=998244353;int main(){ int n; scanf("%d",&n); dp[0][0]=1; for(int i=2;i<=n;i++)...
2021-04-28 21:16:19 379 2
原创 L2-039 清点代码库 (25 分)
L2-039 清点代码库 (25 分)上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂了。。。”这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在int范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任..
2021-04-28 16:29:13 1875 11
原创 R7-9 搜索树判断 (25 分)
#include <iostream>#include <bits/stdc++.h>using namespace std;typedef struct node{ int data; node *left,*right;} tree;tree*create(tree*root,int x){ if(!root) { root=new node; root->data=x; r...
2021-04-21 17:44:50 132
原创 R7-7 是否同一棵二叉搜索树 (25 分)
R7-7 是否同一棵二叉搜索树 (25 分)给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N(≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列.
2021-04-21 17:41:09 147
原创 R7-6 社交集群 (30 分)
R7-6 社交集群 (30 分)当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友。一个“社交集群”是指部分兴趣爱好相同的人的集合。你需要找出所有的社交集群。输入格式:输入在第一行给出一个正整数 N(≤1000),为社交网络平台注册的所有用户的人数。于是这些人从 1 到 N 编号。随后 N 行,每行按以下格式给出一个人的兴趣爱好列表:Ki:hi[1]hi[2]...hi[Ki]其中Ki(>0...
2021-04-21 17:37:56 254
原创 L2-4 秀恩爱分得快 (25 分)
L2-4 秀恩爱分得快 (25 分)古人云:秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友?输入格式:输入在第一行给出 2 个正整数:N(不超过1000,为总人数——简单起见,我们把所有人从 0
2021-04-08 09:43:14 708 3
原创 L2-2 小字辈 (25 分)
L2-2 小字辈 (25 分)本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首先输出最小的辈分(老祖宗的辈分为 1,以下逐级递增)。然后在第二行按递增顺序输出辈分最小的成员的编号。编号间以一个空
2021-04-08 09:33:53 181
原创 L2-012 关于堆的判断 (25 分)
L2-012 关于堆的判断 (25 分)将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:x is the root:x是根结点; x and y are siblings:x和y是兄弟结点; x is the parent of y:x是y的父结点; x is a child of y:x是y的一个子结点。输入格式:每组测试第1行包含2个正整数N(≤1000)和M(≤20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间..
2021-03-26 17:55:14 191
原创 L2-005 集合相似度 (25 分)
给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式:输入第一行给出一个正整数N(≤50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(≤104),是集合中元素的个数;然后跟M个[0,109]区间内的整数。之后一行给出一个正整数K(≤2000),随后K行,每行对应一对需要计算相似度的集合的...
2021-03-23 18:25:09 93
原创 L2-004 这是二叉搜索树吗? (25 分)
一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点,其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。输入格式:输入的第一行给出正整数N(≤1000)。随后一行给出N个整数键值,其间以空格分隔。输出格式:如果输入序列是对一棵二叉搜...
2021-03-23 17:02:59 359
原创 2018-2019 ICPC Southwestern European Regional Programming Contest (SWERC 2018)
A - City of LightsGym - 102465AParis has been called "ville lumière" (city of lights) since the 17th century. It earned this nickname in part because of the many city lights illuminating famous sites such as monuments, statues, churches, or founta...
2021-01-18 17:03:39 625
原创 2020-12-25
E - 数据结构实验之排序五:归并求逆序数Description对于数列a1,a2,a3…中的任意两个数ai,aj (i< j),如果ai > aj,那么我们就说这两个数构成了一个逆序对;在一个数列中逆序对的总数称之为逆序数,如数列 1 6 3 7 2 4 9中,(6,4)是一个逆序对,同样还有(3,2),(7,4),(6,2),(6,3)等等,你的任务是对给定的数列求出数列的逆序数。Input输入数据N(N <= 100000)表示数列中元素的个数,随后输入N个正整数,.
2020-12-25 17:36:26 119
原创 A - Wrestling Match HDU - 5971
Nowadays, at least one wrestling match is held every year in our country. There are a lot of people in the game is "good player”, the rest is "bad player”. Now, Xiao Ming is referee of the wrestling match and he has a list of the matches in his hand. At th
2020-12-09 11:19:26 139
原创 H - To begin or not to begin HDU - 5978
A box contains black balls and a single red ball. Alice and Bob draw balls from this box without replacement, alternating after each draws until the red ball is drawn. The game is won by the player who happens to draw the single red ball. Bob is a gentlema
2020-12-09 11:18:19 85
原创 I - Convex HDU - 5979
We have a special convex that all points have the same distance to origin point.As you know we can get N segments after linking the origin point and the points on the convex. We can also get N angles between each pair of the neighbor segments.Now give yo
2020-12-09 11:16:27 136
原创 Find Small A HDU - 5980
As is known to all,the ASCII of character 'a' is 97. Now,find out how many character 'a' in a group of given numbers. Please note that the numbers here are given by 32 bits’ integers in the computer.That means,1digit represents 4 characters(one character i
2020-12-09 11:12:52 53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人