自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 键盘控制鼠标移动

使用键盘控制鼠标的脚本,mac用hammerspoon ,windows用autohotkeys。

2023-07-14 09:15:15 1886

原创 蓝桥杯 第几个幸运数字

解题思路: 模拟题(一道似乎是数学题的模拟题,淦!)题目本身不难,难就难在这题一看就像是模拟会超时或越界的数学题!!!然而不是!!!主要考查循环和数据去重。#include <iostream>#include<set>#include<math.h>using namespace std;int main(){ // 请在此输入您的代码 long long num, goal=59084709587505; set&l...

2022-01-23 11:35:13 450

原创 算法题纲索引

求尾数0个数蓝桥杯 乘积尾零_Simon博的博客-CSDN博客

2022-01-23 10:32:05 278

原创 蓝桥杯 乘积尾零

5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 1486 5722 3135 1170 4014 5510 5120 729 2880 9019 2049 698 4582 4346 4427 646 9742 7340 1230 7683 5693 7015...

2022-01-23 10:29:20 535

原创 蓝桥杯 星期一

主要考点:常识!世纪闰年/普通闰年,还有1901年1月1日是星期二!deam it!突然发现,1901.1.1是周二的话就不用管整除7的问题了,直接用总天数/7就可以得到答案,因为如果把周二当成每个周的开端,则周一则是每周的最后一天,只要这周不够7天就没周一,所以不用管。坑爹玩意!#include <iostream>#include<math.h>using namespace std;bool isRunNian(int year){ if(year %..

2022-01-21 16:08:41 543

原创 蓝桥杯 分数

主要考点是模拟分数加法以及最大公约数约分。#include <iostream>using namespace std;long long GetGCD(long long a, long long b){ //辗转相除法求最大公约数 return b == 0 ? a : GetGCD(b, a%b);}int main(){ // 请在此输入您的代码 long long e = 2; long long sum_a = 1, sum_b = 1..

2022-01-21 15:59:43 390

原创 蓝桥杯-迷宫

题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。X 星球的一处迷宫游乐场建在某个小山坡上。它是由10 \times 1010×10相互连通的小房间组成的。房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则:LL表示走到左边的房间, RR表示走到右边的房间, UU表示走到上坡方向的房间, DD表示走到下坡方向的房间。X 星球的居民有点懒,不愿意费力思考。他们更喜欢玩运气类的游戏。这个游戏也是如此!开始的时候,直升机把...

2022-01-18 14:27:00 137

原创 KY210 排序

这题考察对algorithm里面sort的应用。#include<iostream>#include<algorithm>#include<vector>using namespace std;int main(){ int n; while(scanf("%d", &n) != EOF){ vector<int> line(n); for(int i=0; i<n; i++){

2022-01-18 12:22:38 282

原创 KY89 坠落的蚂蚁

这个题目用暴力模拟死路一条。。。Theramenes大佬的思路真是牛b!(坠落的蚂蚁__牛客网 (nowcoder.com)) 简单提炼一下就是:设整条木棍上共有N只蚂蚁,有n只向左,1只不会动的蚂蚁,m只向右,根据设定,蚂蚁相遇会换速度(矢量),即每一次相遇,都有两只蚂蚁交换阵营(三只相遇可视为两次相遇)。但因速度大小一致,即使改变了方向,两者的左右相对位置仍不会发生改变,这就是蚂蚁的相对位置永远不变的含义。不难看出,相遇发生的改变并不会影响 “整条木棍上共有N只蚂蚁,有n只向...

2022-01-14 23:48:55 290

原创 044:编程填空:数据库内的学生信息

题目:OpenJudge - 044:编程填空:数据库内的学生信息分析:这道题虽然是MyMultimap,但主要是考察继承类和multimap,一开始是想到了用multimap去套,但没想到要用继承,自己写了半天的函数,时间不说还报错(哭晕在厕所。。。)后来参考一些博主的题解才发现直接用继承关系= =。还有一点是要清楚map或者multimap里面每一个元素是一个pair<class a,class b>,这样在print的时候就知道形参是pair<class a,cla.

2021-05-11 09:39:04 1267

原创 043:冷血格斗场

题目:OpenJudge - 043:冷血格斗场分析:multimap的应用,挺折腾的,不论是map还是multimap,内容一多就会崩,就像这一题,如果不进行选择性录入信息的话直接是 Time Limit Exceeded。这一次比042:热血格斗场_Simon博的博客-CSDN博客的条件增加了一个,就是实力值可以相同,而且绝对差一样的话就选择id值小的那个。根据这个条件,不要把所有的会员信息都录入multiset中,只录入相同实力值 id最小的那一个。参考代码:#includ.

2021-05-08 17:01:50 333

原创 042:热血格斗场

题目:OpenJudge - 042:热血格斗场分析:本题是map的应用,只需将实力设为关键字,id设为值,便可在每插入一个会员信息后(map按关键字自动从小到大排序)通过比较前后元素的关键字(frist)来判断比赛对手。参考代码:#include<iostream>using namespace std;#include<map>int main(){ int n; cin >> n; map<int,int&

2021-05-08 10:11:40 605

原创 041:Set

题目:OpenJudge - 041:Set分析:这题就是按部就班的实现题目的要求。因为题目要求可重复,那么用到multiset。 add x 把x加入集合( insert( ) ),输出操作后集合中x的个数( count( ) ); del x 把集合中所有与x相等的元素删除(这里我用的是循环检测x( find(x) ),其实也可以利用删除后指针往后移的特性),输出操作前集合中x的个数( count( ) ); ask x 对集合中元素x的情况询问,ask 先输出0或1表示x是否曾.

2021-05-08 09:00:05 198

原创 040:List

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/040/分析:list的应用,可参考老师上课课件里面的示例。有几个点是:list<int>::iterator 前面要加typename,视频里也讲了这个问题。参考代码:#include<iostream>#include<list>#include<string>using namespace std;void print

2021-04-28 11:52:48 151

原创 039:我自己的 ostream_iterator

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/039/分析:这题很郭炜哈哈。下面一一分析:myostream_iteraotr<int> output(cout,",");可以看到我们需要定义一个模版类,构造函数参数是一个ostream对象和string对象(这里主要是下面还有传入“--”的,用char不好处理,而且头文件也给出了string,不用白不用)。Copy( lst.begin(),lst.end(),

2021-04-28 09:18:09 678 3

原创 038:白给的list排序

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/038/分析:嗯。。。这道题,如果你认识就白给,不认识的话也就白给greater<> ()greater<double> ()这里面填的比较函数,在本地<>里缺省也能过,但是openjudge上就会编译出错,后来看了下其他博主的题解才发现里面还需要确定一个类型double(要排序的类型)。参考代码:#include <cstdio&

2021-04-27 13:57:00 509

原创 037:函数对象的过滤器

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/037/分析:这道题首先是判断要写什么。从以下代码段中可知vector<int>::iterator p = Filter(ia.begin(),ia.end(),ib.begin(),FilterClass<int>(m,n));T2 Filter( T1 s,T1 e, T2 s2, T3 op)if( op(*s))要写的是一个作用是接收一个类型.

2021-04-27 11:08:37 317

原创 036:很难蒙混过关的CArray3d三维数组模板类

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/036/分析:说实话这道题知识点都不难,难就难在新,在模版类里面建类(写完之后才发现老师在视频里讲过这种情况,所以,遇到问题应该先翻翻讲义。)思路:本质上是将一个一维数组折叠成一个三维数组,难点主要是在三个 “[ ]” 怎么处理,第一个[ ] 在 CArray3D 类中返回CArray2D类,然后第二个[ ] 再在 CArray2D类 中返回一个数组指针,第三个[ ]则直接根据上一步的指针.

2021-04-27 09:46:59 856 2

原创 035:按距离排序

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/035/分析:这题好像没什么特别的?注意一点是sort()函数中的参数comp,也就是比较函数,返回0的时候表示需要调整位置,返回1的时候表示无需调整(简记:0表示无序,1表示有序)。还有一点:sort(a,a+10,Closer<int ,int (*)(int ,int)> (n,Distance1));//这里面的Closer<int ,int (*)(i

2021-04-27 09:20:42 449

原创 034:goodcopy

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/034/分析:这道题是简单的模版函数,有一个注意的点是GoodCopy<int>()(a,a+m,a+m/2);GoodCopy<string>()(c,c+m,c+m/2);这两条语句相当于将数组原地往后挪m/2个位置,如果顺序复制的话 m/2 - m这段位置的数据会丢失,逆向复制可以解决这个问题。这其中又涉及一个知识点,就是同一数组内两指针相减,得到的

2021-04-23 09:26:43 335

原创 033:排序,又见排序!

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/033/分析:函数模版的基础应用,函数模版参数表中有变量和函数,分清指针和变量就好。参考代码:#include <iostream>using namespace std;bool Greater2(int n1,int n2){ return n1 > n2;}bool Greater1(int n1,int n2){ return n

2021-04-22 11:21:10 270

原创 032:这个模板并不难

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/032/分析:这个模版真的不难,就是写构造函数,模版类和类的写法基本一致。但这题犯了混,本地没事,提交就Runtime Error,检查了好多遍后才发现。。。有兴趣的话分析一下代码哈,看为什么,也算巩固以下。参考代码:#include <iostream>#include <string>#include <cstring>using name

2021-04-22 09:15:20 761 5

原创 031:山寨版istream_iterator

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/031/分析:这道题看到这一条代码的时候就开始懵了CMyistream_iterator<int> inputInt(cin);仔细一看,不过是模版类设置成int类型,然后以cin为初始化参数。然后后面的一些就是运算符的重载。这道题的难点在于要拐过弯来,不用在初始化的时候把全部数据读进来,也不需要存储每一个读进来的数据。(详见参考代码)还有一点是会 Runtim

2021-04-21 10:31:14 931

原创 030:你真的搞清楚为啥 while(cin >> n) 能成立了吗?

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/030/分析:这里面有前面学过的运算符“<<”的重载和强制运算符转换的重载(第七周-1-06:50)(题目所问原因),其作用是将 while( m >> n1 >> n2) 语句中m读取完成后返回的 MyCin类型变量强制转换成bool变量。参考代码:#include <iostream>using namespace std;c

2021-04-20 11:22:04 660

原创 029:简单的Filter

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/029/分析:这一题仍然是对函数模版基本概念的考察,在前两题的基础上再增加了一个参数。参考代码:#include <iostream>#include <string>using namespace std;// 在此处补充你的代码template<class T,class Pred>T * Filter(T * p,T * q,T *

2021-04-20 10:12:34 190

原创 028:简单的foreach

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/028/分析:仍然是函数模版的基本应用,添加了在模版函数的形参表中使用函数的做法。参考代码:#include <iostream>#include <string>using namespace std;// 在此处补充你的代码template <class T, class Pred>T MyForeach(T * p,T * q, Pr

2021-04-20 10:03:46 348

原创 027:简单的SumArray

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/027/分析:这道题考的是函数模版的基本概念,要注意的点是模版函数形参表的类型(指针还是变量,一般来说都是指针,按照main中的调用来写),然后其他的就按函数的写法写即可。参考代码:#include <iostream>#include <string>using namespace std;template <class T>T SumAr

2021-04-20 09:59:51 203

原创 026:编程填空:统计动物数量

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/026/分析:这题考的是静态成员和虚函数以及派生类成员覆盖基类成员的特性。本题的要点是:如果要在类外访问静态成员,则必须把这个静态成员放在public中。 当派生类成员中有覆盖基类成员(同名)时,在派生类中访问成员时要加上类名前缀。 虚拟化析构函数,实现使用基类指针下析构派生类。 静态变量一定要记得初始化!!!在全局中作初始化即可。参考代码:#include <iostr

2021-04-13 10:11:17 481

原创 025:怎么又是Fun和Do

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/025/分析:还是用基类指针指向派生类对象的问题,根据输出,可以看到,当Call()里面是类A对象时全部执行类A的函数,而当Call()里面是类C对象时,执行的是类A的Fun函数,类C的Do函数。纵观三个类的内部函数,可以发现,只有Do函数是虚函数。分析与023:Fun和Do 类似,但要注意的是,基类指针能指向派生类对象,但派生类对象指针是不可以指向基类对象的!参考代码:#includ

2021-04-13 08:56:11 472

原创 024:这是什么鬼delete

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/024/分析:这题没什么好分析的,就是虚函数的应用。pa是类A指针,在new B的时候会调用类A对象的构造函数(类B是类A的派生类),那delete pa的时候,会调用析构函数,根据虚函数的特性,pa指向的是类B对象,故调用类B的析构函数,然后根据先析构派生类后析构基类的准则,再调用类A的析构函数。参考代码:#include <iostream>using namespa

2021-04-11 10:58:30 479

原创 023:Fun和Do

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/023/分析:这里面只填了一个“ B & p” ,但知识点还是有的,根据输出,既访问了类A的成员函数,也访问了类C的成员函数。p.Fun() 输出A::Fun, 从代码可以看到,Fun并不是多态函数,那要访问A的Fun函数有两种方法,一是直接从类A访问,二是从派生类B访问基类的public成员函数。p.Do() 输出C::Do,看到类A中的Do并不是多态,而B中的Do是多态,..

2021-04-11 10:30:58 554 2

原创 022:看上去像多态

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/022/分析:这题还挺有意思的,利用了基类指针能指向派生类成员,但只能访问基类部分数据的这个特点,实际上像题目上用基类指针指向派生类对象但又不是多态的做法是错误的,不过郭炜老师的题中这样的题目比比皆是,利用这种“错误”用法去让我们记住这种用法是不正确的。参考代码://emmm...大家忽略我山寨的英语注释,因为写代码时切换中英输入法挺麻烦的,顺便还能练习一下哈,大伙凑合凑合。#inc

2021-04-11 10:00:46 390

原创 021:魔兽世界之二:装备

题目:http://cxsjsxmooc.openjudge.cn/2021t3springall2/021/分析:本题主要是在 “ 魔兽世界之一 ” 的基础上增加了装备系统,需要新增一个武器类(包括基类和派生类),然后由于需要对每个武士的装备和状态进行输出,所以需要用到多态(virtual)。下面给我写的代码以及郭老师的代码以供参考(我觉得参考他人特别是高手的代码不仅可以学习到其思想,还能学习到他人优秀的编码风格)。完整代码:#include<iostream>us

2021-04-11 09:47:42 1394 2

原创 020:继承自string的MyString

分析:这题主要的点在于构造函数,因为是用MyString类去扩展string类,在构造函数中要考虑到每一个类型的构造函数。然后根据提示对“()”进行重载即可。完整代码:#include <cstdlib>#include <iostream>#include <string>#include <algorithm>using namespace std;class MyString:public string{// 在此处补充你的代

2021-04-11 09:38:49 677

原创 019:全面的MyString

题目:程序填空,输出指定结果#include <cstdlib>#include <iostream>using namespace std;int strlen(const char * s) { int i = 0; for(; s[i]; ++i); return i;}void strcpy(char * d,const char * s){ int i = 0; for( i = 0; s[i]; ++i) d[i] = s[i]; d

2021-04-06 16:01:24 598

原创 018:别叫,这个大整数已经很简化了!

题目:程序填空,输出指定结果#include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> using namespace std;const int MAX = 110; class CHugeInt {// 在此处补充你的代码};int main() { char s[210]; int n; while (cin >&.

2021-04-04 10:52:47 1106

原创 017 二维数组类

这题没有get到点的话还挺麻烦的。关键在于做一个数组指针的指针。分析:1⃣️ Array2 a(3,4); //构造函数,两int型参数,Array2是二维数组形式。2⃣️ a[i][j] = i * 4 + j; //a[i][j] 在C++里相当于:a,operator[](i).operator[](j) 但是用上面说的数组指针的指针则不用这么麻烦,只需重载 “ [ ] ” 即可,详见code。3⃣️ cout << a(i,j) << ",...

2021-04-03 16:00:49 2671 11

原创 016 惊呆!Point竟然能这样输入输出

流插入运算符和流提取运算符的重载的简单例子。分析:1. cin >> p //需重载">>"2. cout << p << endl; //需重载"<<"以下是完整代码:#include <iostream>using namespace std;class Point {private: int x; int y;public: Point() { };// 在此处补充你的...

2021-04-03 09:18:42 268

原创 015:看上去好坑的运算符重载

确实坑。分析:1. MyInt objInt(n); //构造函数,已定义2. objInt-2-1-3; //需重载"-",补。3. cout << Inc(objInt); //已定义Inc函数, 坑:1.将Inc定义为友元(错)。2.需要重载"()"(错)。3.重载Inc函数(yes。。。)以下是完整代码:#include <iostream>using namespace std;class MyInt { int nVal;publ.

2021-04-03 08:57:25 278

原创 014:MyString

这题其实是缺什么补什么。MyString s1(w1); //需要构造函数,已给出。MyString s2 = s1; //需要复制构造函数,补。MyString s3(NULL); //需要构造函数,已给出。s3.Copy(w1); //需要一个.copy函数,补。cout << s1 << “,” << s2 << “,” << s3 << endl; //cout不能输出类,需重载“<<”,补。s2 =

2021-04-02 09:35:55 174

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除