
C++
Epiphany1234
这个作者很懒,什么都没留下…
展开
-
【HNU暑假集训】相等的多项式
问题描述小明现在在学习多项式的展开:就是把一个形如(x+a1) (x+a2) … (x+an)展开成如下形式:xn + b1xn-1 + b2xn-2 + … + bn-1x + bn比如 (x+1)(x+2)=x2 + 3x + 2 (x+1)3 = x3 +3x2 +3x + 1小明做了很多练习,但是不知道对错,现在请求你的帮助,判断小明的展开式是否正确。输入格式有多组测试数据。每组测试数据有三行,第一行是一个正整数N,表示多项式最高指数。N=0表示输入结束,并且不需要处理。第原创 2021-09-14 19:53:25 · 234 阅读 · 0 评论 -
【HNU】暑假集训-魔咒词典
【问题描述】哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?”【输入形式】首先列出词典中不超过100000条不同的魔咒词条,每条格式为:[魔咒] 对应功能其中“魔咒”和“对应原创 2021-09-09 22:03:56 · 124 阅读 · 0 评论 -
【暑假集训】电话号码
【问题描述】Vasya有几本电话簿,记录了他的朋友们的电话号码,每一个朋友都可以有一或几个电话号码。Vasya决定整理关于朋友电话号码的信息。给定n个字符串,来自于Vasya的电话簿中的条目。每一条都以朋友的姓名开头,然后跟着当前条目中的电话号码个数,然后是本人的电话号码。有可能几个相同的电话被记录在同一个记录中。Vasya还认为,如果电话号码a是电话号码b的后缀(也就是说,号码b以a结尾),这两个号码被当作同一个电话号码,那么a被认为是无城市代码,它不应该被考虑。输出整理后Vasya朋友的电话号码原创 2021-07-15 10:58:58 · 205 阅读 · 0 评论 -
【暑假集训】 新型冠状病毒(COVID19)传播
【问题描述】在一个风景秀丽的小镇,一天早上,有 N 名晨跑爱好者(编号 1 ~ N )沿着优雅的江边景观道朝同一方向进行晨跑,第 i 名跑者从位置 Si 处起跑, 且其速度为 Vi。换句话说,对所有的实数 t ≥ 0,在时刻 t 时第 i 名跑者的位置为 Si + Vi ·t。 很不幸的是,其中一名跑者在 t = 0 的时刻感染了病毒,且是无症状感染者,这种病毒只会在同一时刻处在同一位置的跑者之间传播,新感染了病毒的跑者也会感染其他人,很显然,等待足够长的时间,那么病毒会感染 一些特定的跑者。原创 2021-07-15 09:28:37 · 1366 阅读 · 0 评论 -
【暑假集训】engine-字符串
【问题描述】 给定一个由n个小写字母组成的字符串s,需要使用最少数量的钱币来压缩它。 压缩该字符串,必须将s表示为多个相互连接的非空字符串: s=t1t2...tk,其中第 i 个字符串按照下列两种方法之一编码:如果|ti|=1,也就是说 ti为单个字符组成的字符串,编码时需要支付a个钱币如果ti是t1t2…ti-1的子串,编码时需要支付b个钱币 你的任务是计算压缩给定的字符串需要花费的最小钱币数。【输入形式】 输入的第一行包含3个用空格分隔的正整数:n、a和b(1≤n、a原创 2021-07-14 08:59:56 · 262 阅读 · 0 评论 -
【暑假集训】拼写检查
【问题描述】 作为一个新的拼写检查程序开发团队的成员,您将编写一个模块,用已知的所有形式正确的词典来检查给定单词的正确性。 如果字典中没有这个词,那么可以用下列操作中的一个来替换正确的单词(从字典中): 1. 从单词中删除一个字母; 2. 用一个任意字母替换单词中的一个字母; 3. 在单词中插入一个任意字母。 你的任务是编写一个程序,为每个给定的单词找到字典中所有可能的替换。#include<iostream>#include<algorithm&原创 2021-07-13 22:09:41 · 158 阅读 · 0 评论 -
【暑假集训】数圈
【问题描述】以1为中心,用2,3,4, …, n, …, n*n的数字围绕着中心输出数圈, 如若n=4,则7 8 9 106 1 2 115 4 3 1216 15 14 13【输入形式】一个整数n(1<=n<=10)【输出形式】数圈矩阵#include<iostream>#include<vector>const int MAX = 1000;// const int CENTER_X = 200;// const int CENTER_Y原创 2021-07-13 22:07:08 · 110 阅读 · 0 评论 -
【暑假集训】内存分配
内存管理//alloc n —— 分配n个字节内存,返回已分配块的正整数标识符x(x初始值为0,每//次分配增长1)//erase x —— 删除标识符x所在的块//defragment —— 整理空余内存碎片,将所有块尽量靠近内存的开始位置,//并保持各自的顺序#include<iostream>#include<string>#include<vector>#include<unordered_map>const int ORIG原创 2021-07-09 13:31:47 · 137 阅读 · 0 评论 -
【暑假集训】二叉树遍历,从前序、中序到后序
【问题描述】二叉树是一种非常重要的数据结构,非常多其他数据结构都是基于二叉树的基础演变而来的。对于二叉树,深度遍历有前序、中序以及后序三种遍历方法。三种基本的遍历思想为:前序遍历:根结点 —> 左子树 —> 右子树中序遍历:左子树—> 根结点 —> 右子树后序遍历:左子树 —> 右子树 —> 根结点比如,求以下二叉树的各种遍历hhh.png前序遍历:1 2 4 5 7 8 3 6中序遍历:4 2 7 5 8 1 3 6后序遍原创 2021-07-08 22:35:30 · 202 阅读 · 2 评论 -
【暑假集训】计算校验码
问题描述】传送一个B(B≤16)进制的数值N时,最后加上一个一位(B进制的)校验码,使得N加上校验位后能被B-1整除。比如十进制的数值12310,其校验码就是3,因为十进制数值123310能被9整除。16进制的数7816,其校验码为0,因为16进制的78016是15的倍数。超过十进制后,用字母a表示10,字母b表示11,字母c表示12,字母d表示13,字母e表示14,字母f表示15。告诉你进制B,以及一个B进制的正整数N,要求你计算正整数N在B进制下的校验码。【输入形式】输入第一行正整数t (10原创 2021-07-08 22:33:48 · 257 阅读 · 0 评论 -
【暑假集训】F1方程式冠军
【问题描述】一级方程式F1锦标赛由一系列称为大奖赛的分站赛组成。每一场比赛的车手都根据他们的最后位置获得积分。只有前10名车手按以下顺序获得分数:25、18、15、12、10、8、6、4、2、1。在锦标赛结束时,得分最多的车手是冠军。如果有平分,则冠军是赢的最多的人(即排位第一)。如果还是平分,则选择得到排位第二最多的人,依此类推,直到没有更多的排位进行比较。后来又提出了另一个得分制度,其中冠军是赢的最多的。如果有平手,冠军是得分最多的。如果仍然存在平手,则按原来的得分制度进行,即比较第二、第三、第四、原创 2021-07-08 22:32:36 · 335 阅读 · 0 评论 -
【暑假集训】世界杯来了
【问题描述】 欧洲冠军联赛常被誉为全世界最具影响力的俱乐部级赛事。在比赛的小组赛阶段,欧洲的各个足球俱乐部被分为八个小组,每个小组中四支球队。每个小组中的球队按照如下规则排序:球队会根据比赛结果获得积分。一场比赛的双方被称为主队和客队。如果其中一方进球数多于另一方,那么进球较多的一方获得3 分,另一方获得0 分。如果双方打成平手,则各得1分。球队的净胜球数是其进球数减去失球数(不考虑该球队在比赛中作为主队还是客队)。积分较高的球队排名更加靠前。如果两支球队积分相同,那么净胜球数较多的球队排名原创 2021-07-08 22:28:47 · 127 阅读 · 0 评论 -
【暑假集训】拳王阿里
【问题描述】 阿里是上个世纪美国最著名的拳击手,阿里在20年的时间里多次获得重量级拳王称号。不过不幸的是,他在之后患上了帕金森氏病。他参加了许多比赛,多到连自己都数不清了。有这么一段时间,他总是参加各种不同的比赛,以至于他自己也不知道从第一场比赛开始到最后一场比赛结束到底用了多长时间。他只记得比赛的第一天是星期几(S),最后一场比赛的最后一天是星期几(E)。他还记得比赛的总天数(包括第一和最后一天)不少于L天,也不多于R天。给定S和E,能否唯一确定参加比赛总天数(包含该段时间内比赛间的间隔天数)?原创 2021-07-08 22:26:38 · 169 阅读 · 0 评论 -
【暑假集训】众数
【问题描述】一组数据中出现最多的数,称为众数。比如1 2 3 3众数为3。一组数据中也可能有多个众数,以最先出现的作为众数。比如2 2 3 3众数为2。问题是一组按升序排好的数据,指出它的众数。【输入形式】有多组测试数据(不超过100组测试数据)。每组测试数据占两行,第一行是正整数N:表示这组测试数据中数据项数。第二行是N个用空格隔开的正整数,表示这组测试数据的数据元素。每个数据元素都不大于10000。N=0,表示输入结束,并且不需要处理。40%的测试数据N 1 ≤N≤ 10;30原创 2021-07-08 22:19:05 · 291 阅读 · 0 评论 -
红黑树的实现
很多红黑树的原理,但是依据原理把数据结构敲出来还是不容易这里给出红黑树实现代码,参考了《算法导论》,读者可以参考一下红黑树实现代码#ifndef _RBTREE_#define _RBTREE_#include<iostream>#include<queue>using namespace std;//RBTree implementationenum RBTColor {RED,BLACK};template<typename E>class RB原创 2021-07-03 15:24:17 · 159 阅读 · 3 评论 -
AVL的代码实现C++‘
AVL树的代码实现这里先粘贴代码给大家的忠告,一定要及时去实现,不然之后再实现要花跟多的时间/* *平衡二叉树应该有些功能 *插入 删除 查找 *前序遍历 中序遍历 后序遍历 层次遍历 *统计结点数目 */ //代码已经调,写了很久才写出来 //#ifndef _AVLTREE_#define _AVLTREE_#include<iostream>#include<vector>#include<queue>#include<ma原创 2021-06-01 15:43:14 · 230 阅读 · 5 评论 -
KMP算法
#ifdef _GETNEXT_#define _GETNEXT_#include<cstring>using namespace std;int* getNext(char s[] , int len){ int j = -1; int* next = new int [len]; next[0] = -1; for(int i = 1 ;i < len ; i ++) { while(j != -1 &&原创 2021-03-30 20:17:30 · 75 阅读 · 0 评论 -
平衡二叉树代码实现
class Link#ifndef _DFLIST_#define _DFLIST_template<typename E>class Link{ private: static Link<E>* freelist; public: E element; E height; Link<E>* lchild; Link<E>* rchild;原创 2021-03-23 20:43:58 · 128 阅读 · 0 评论 -
快速排序(C++)
调了一个多小时才调好不说了,上源代码/* *Quick sort is a kind of algorithm which can sort quickly *Time complexity is O(n*log n) *The algorithm is based on divide and conquer to decrease duplicate computation *First : We choose a pivot which usually is the first elemen原创 2021-03-14 17:09:44 · 102 阅读 · 0 评论 -
归并排序的实现
终于调通归并了/* *本算法核心思想为 divide and conquer *本头文件用于实现归并排序,该排序的算法复杂度为O(n*logn) * 而且算法稳定,不会退化为O(n*n) */ #ifndef _MERGESORT_INCLUDE_#define _MERGESORT_INCLUDE_/* *origin 是原数组(存放最开始的元素) *low 是区间的最小下标, high是最大下标 ( [low, high)) *target 是目的数组,也是存放排序好的数组原创 2021-03-13 13:00:45 · 112 阅读 · 0 评论 -
大数据的加减乘除实现(用的vector)
```cpp/* *该头文件用于实现大数据计算,用于实现python的大数,因为之后可能会用到大数据计算 *ADT *我没有写两个大数据的乘法,因为它相当于许多个小乘法的组合 *我不会写两个大数据的除法(呜呜呜~~.我太菜了) * 该文件的接口为BigData类模板,有加减乘除和比较的实现 */ #ifndef _BIGDATA_INCLUDED_#define _BIGDATA_INCLUDED_#include<vector>#include<string&.原创 2021-03-12 17:20:56 · 437 阅读 · 0 评论 -
数据结构与学习算法
关于数据结构与算法“数据结构 + 算法 = 程序”我们程序员写程序在解决大量问题后发现很多问题都有相似的解决方法和简便方法,就把它抽象出来为算法,与之对应的设计思想就是数据结构,有了这两个利器,我们写程序解决实际问题就有规可循,有了好的推导和实现方式第一章数据存储的几种方式顺序存储 (类似于数组)链式存储 (指针,地址)索引方法 (高效查询)散列方法 (散列表 开很大的空间 哈希)抽象数据类型(ADT)与数据结构数据抽象与过程抽象抽象数据类型| data | data e原创 2021-03-05 00:03:05 · 138 阅读 · 3 评论 -
最大公因数与最小公倍数
题目描述题目来自洛谷P1029输入两个正整数 x0,y0x_0, y_0x0,y0,求出满足下列条件的 P,QP, QP,Q 的个数:P,QP,QP,Q 是正整数。要求 P,QP, QP,Q 以 x0x_0x0 为最大公约数,以 y0y_0y0 为最小公倍数。试求:满足条件的所有可能的 P,QP, QP,Q 的个数。输入格式一行两个正整数 x0,y0x_0, y_0x0,y0。输出格式一行一个数,表示求出满足条件的 P,QP, QP,Q 的个数。输入输出样例输入 #1原创 2020-12-24 10:33:28 · 341 阅读 · 1 评论 -
面向对象程序设计笔记
面向对象程序设计思想想法就拿五子棋来举例子把构成问题食物分解为各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述各个实物在解决整个解决问题的步骤中的行为五子棋黑白双方:两方行为是一模一样的棋盘系统:负责绘制画面规则系统:负责判定诸如犯规`输赢等把题目改为写一个围棋就只用改规则系统,而不用重写,可以提高代码编译效率去食堂打饭分为拿卡打饭吃饭面向对象好处把一个复杂的实物拆解开来,分为各个对象,化整为零,逐个击破注意先.原创 2020-11-26 20:51:58 · 312 阅读 · 0 评论 -
输出正方形图案
题目描述输入一个数n,要求输出对应的格式例如 输入3输出#include <iostream>#include<cmath> //用比较最小值得函数 using namespace std;int main(){ int n =0,x=0; //n用来控制正方形行列数 x用来控制正方形内数字输出 cin>>n; n=2*n-1; //用找到的规律2*n-1 for(int i=1;i<原创 2020-11-16 20:52:34 · 1682 阅读 · 1 评论 -
小女孩与楼梯
#include <iostream>//----------------------------using namespace std;int main() { int n = 0,flight = 0,ladder = 0; //flight为攀爬楼梯个数 ladder为楼梯数 cin>>n; int _ladder[2020]; //考虑到不会有很多组数据,就定义定数组 int store [n]; //存储输入的梯子数 for(int .原创 2020-11-12 23:23:59 · 188 阅读 · 0 评论 -
小希与火车
#include <iostream>using namespace std;int see (long ,long ,long,long); //判断看见灯笼的次数int main(){ long T ,L,v,l,r; //T为输入数据组数 L为路程 l r 为停车的起终点 cin>>T; long store [T]; //用来存储看的次数,便于输出 for(int i =0;i<T;i++){ cin>>L>>.原创 2020-11-12 21:45:17 · 588 阅读 · 0 评论 -
快速公交
#include <iostream>using namespace std;int main(){ int n = 0,g = 0,r = 0,q = 0; cin>>n>>g>>r; int arr_dt [n+1]; //输入每个路段时间 for(int i = 0;i<n+1;i++){ cin>>arr_dt[i]; } cin>>q; int arr[q]; .原创 2020-11-12 00:02:05 · 228 阅读 · 0 评论 -
大象找朋友问题
#include <iostream>using namespace std;int main(){ int m = 0,x=0,step =0 ; cin>>x>>m; if(x<0){ x=-x; } if(x==2*m-1){ //如果是奇数步就直接走完 cout<<"1"; } else if(x<2*m-1){ if(x%2==0){ cout<<"2"; .原创 2020-11-11 20:11:42 · 468 阅读 · 0 评论 -
阿迪玩游戏
```cpp#include <iostream>using namespace std;int main (){ int M=0,N=0; cin>>N>>M; int arr[M]; int sum =0; int mid =0; if(N==1){ cout<<1; } else{ for(int i=0;i<M;i++){ //将所有步数放到一个变量里 cin>>arr[i]; ..原创 2020-11-11 20:07:09 · 1386 阅读 · 2 评论 -
爬虫问题
#include <iostream>////爬虫问题 ,虫子每次爬u米,休息一分钟下落d米,井深n米 ,爬总高度为husing namespace std;int _time (int n,int u,int d);int main() { int n1,u1,d1; //输入输出 int n2,u2,d2; int n3,u3,d3; cin>>n1>>u1>>d1; cin>>n2>>u2&.原创 2020-11-11 20:02:35 · 199 阅读 · 0 评论 -
今夕何夕
#include <iostream>using namespace std;bool judge (int x);bool JUDGE (int);int pro(int,int,int);int main() { int n = 0; cin>>n; char c = '0'; int year[n],month[n],day[n]; for(int i = 0; i<n; i++) { cin>>year[i]>>c>.原创 2020-11-11 19:56:33 · 93 阅读 · 0 评论 -
国王给骑士金币
#include <iostream>using namespace std;int main(){ int k=0,coin=0,day =0; //k为输入的天数 coin为获得的金币数 day为获得金币的天数 cin>>k; //输入获得金币的天数 for(int i=1;;i++){ //第一个循环用来计算每轮获得的金币数 for(int j =1;j<=i;j++){ //.原创 2020-11-11 19:52:09 · 632 阅读 · 0 评论 -
找12
#include <iostream>using namespace std;bool check (long);int main (){long n =0; cin>>n; for (int i =1;i<=n;i++){ if(i%12==0||check(i)){ //判断是否是12的倍数或者含有12 cout<<i<<" "; } } return 0;}bool check (long i.原创 2020-11-11 19:45:50 · 136 阅读 · 0 评论 -
松雅旅馆自动门
#include <iostream>//松雅旅店 #include <cmath>using namespace std;int main(){ int n=0,m=0,a=0,d=0,door=0; cin>>n>>m>>a>>d; int arr[m]; for(int i=0;i<m;i++){ cin>>arr[i]; //输入客人进入的时间 } int ti.原创 2020-11-11 19:39:10 · 281 阅读 · 0 评论 -
小数位的精确计算
#include <iostream>using namespace std;int main(){ int A=0,B=0,N=0; //A是被除数 B是除数 N是控制输出的小数位 cin>>A>>B>>N; cout<<A/B<<"."; for(int i =0 ;i<N;i++){ A=(A%B)*10; //循环用来实现取小数 .原创 2020-11-11 19:26:43 · 623 阅读 · 0 评论 -
学生成绩等级判断
#include <iostream>/*输入学生成绩,输出他的等级*/using namespace std;int main(){ int grade; cin>>grade; switch(grade/10){ case 10: case 9 :cout<<"A"; break; case 8 :cout<<"B"; break; case 7 :cout<<"C"; break; case 6原创 2020-11-05 14:28:56 · 632 阅读 · 0 评论 -
输入年月输出这个月的天数
#include <iostream>/*输入年月 输出这个月的天数注意闰年2月有29天*/using namespace std;bool leap_year(int n); //是否闰年判断int main(){ int month,year=0; int determine =0; cin>>year>>month; determine=leap_year(year); if(month<=12&&month>原创 2020-11-05 14:28:34 · 1933 阅读 · 0 评论 -
放后排序
//将四个数进行降序排序//一直换位using namespace std; int main(){ long t=0,a=0,b=0,c=0,d=0; cin>>a>>b>>c>>d; if(a>b){ t=a; a=b; b=t; } if(a>c){ t=a; a=c; c=t; } if(a>d){ t=a; a=d; d=t; } if(b>c){ t=b;原创 2020-11-05 14:27:59 · 91 阅读 · 0 评论 -
选择bool判断
#include <iostream>//程序用来判断一个人对工作的选择要求//如果工资大于5000,有带薪休假,离家小于2000公里为分别加一分//该工作大于两分就可以选择using namespace std;int main (){ int a,c,n = 0; char b = '0'; cin>>a>>b>>c; n= (a>=5000)+(b=='y')+(c<=2000); if(n<=1){ cout&原创 2020-11-05 14:27:43 · 438 阅读 · 0 评论