自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pioneer1

热爱、深究有趣的算法。

  • 博客(172)
  • 收藏
  • 关注

原创 1473. A + B 格式

这是acwingPAT甲级辅导课讲的第一题,很简单,之所以写出来,是因为看到y总在解题过程中的步骤和方法很好、很有条理、非常清晰,我觉得学会这种方法,比多学一些算法更有用。使用模拟的方法来解决第四步,我们需要重新定义一个字符串,将旧的字符串通过遍历加到新的字符串中,同时在该加逗号的位置加上逗号。个人觉得做每一道算法题,都要有这样的清晰的条理、思路,该按步骤按步骤,该模拟模拟,这样才能真正的有进步,做的题才有用。第三步直接用to_string函数,第四步复杂点。④在字符串中添加逗号;③把和转化为字符串;

2023-03-13 15:01:04 123

原创 to_string函数的用法

to_string函数:将数字常量转化为字符串,返回值为转化完毕的字符串。(这个数字常量不仅仅包括整型)

2023-03-13 09:46:00 481

原创 c语言编译和解释的区别

两个事情都是将源代码转化为目标代码,只不过编译是将源代码全部转化为目标代码后执行,解释是转换一句代码执行一句代码。类似于给你一张英文任务表,编译是全文翻译后,你把所有任务都知道了再开始做任务,解释是同声传译,翻译一个任务,你做一个任务。语言本身本无编译解释之分,不过是常用的执行方式不同。c语言常用的是编译执行,python常用解释执行。②解释:将源代码逐条转化为目标代码同时逐条运行的过程。①编译:将源代码一次性转化为目标代码的过程。执行编译过程的叫编译器。执行解释过程的叫解释器。

2023-02-24 11:43:07 364

原创 最大连续子列和

最大子列和的四种解法

2023-02-16 09:19:39 292

原创 c++实现文本输入输出

C++文本输入

2023-02-14 11:36:29 3221

原创 二叉树的三种遍历方式

数据结构中的二叉树遍历

2023-02-13 18:21:03 852

原创 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa6 in position 9737: illegal multibyte sequence

运行django项目时出现错误网上有很多关于这个错误的解读,但是经过调试后我发现是代码中前后变量名称不一致导致了错误。而且在html页面出现A server error occurred. Please contact the administrator.这个错误。因此知道,pycharm或者python代码要求很严格,如果细节不注意的话会出现很多莫名错误,需要花费很多时间去修改,错误出现时,不妨先自行调试一下,查看一下代码和变量是否正确。...

2022-05-06 11:31:23 901

原创 Pycharm UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd5

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5每次我运行Django项目总是出现这个问题,Pycharm和python安装一遍又一遍,依然找不到错误。在室友的帮助下,找到其他博客中的解决方法。修改c盘下的用户名,把用户名由中文改成英文。当时我以为自己的用户名是英文的,简单查询了一番也是英文的。但是在经过一系列繁琐操作,修改了用户名之后,发现我的用户名真的是中文的,报错真的是这个原因。用户名之所以是中文,是因为我在寝室的wifi管理网站

2022-05-01 10:42:30 841

原创 pycharm新建和删除虚拟环境

目录一、虚拟环境的作用二、虚拟环境的创建、查看以及删除1.虚拟环境的创建2.虚拟环境的查看3.虚拟环境的激活​4.虚拟环境的删除一、虚拟环境的作用每个虚拟环境中安装的第三方模块不会与其它环境中同名的第三方模块发生版本冲突,每个虚拟环境之间互不影响。通过为每个项目创建单独的虚拟环境,来避免第三方模块发生版本冲突的现象。比如你做一个django项目使用的是python3.6版本,但是你另一个项目需要使用python3.7版本,为了避免冲突,你就可以新建一个独立的pytho

2022-04-30 10:54:23 21077 5

原创 java:3: 错误: 编码 GBK 的不可映射字符 (0x8E)

1、错误实例2、java代码public class Welcome { public static void main(String[] args) { System.out.println("我是中国人"); } }3、解决方法一:运行dos命令javac -encoding UTF-8 文件名.java,即将dos命令的编码方式改成UTF-8解决方法二:用记事本打开该java文件,另存为ANSI文件,之后运行dos命令java 文件名即可

2022-01-08 14:55:07 1083

原创 模式识别课程educoder平台实训

NumPy基础及取值操作第1关:ndarray对象import numpy as npdef print_ndarray(input_data): ''' 实例化ndarray对象并打印 :param input_data: 测试用例,类型为字典类型 :return: None ''' #********* Begin *********# a=np.array(input_data.get('data')) print(a)

2021-05-26 22:01:22 2654 2

原创 C++打开文件夹中的多个文件并计算文件中数据的平均值

两百多个文件,计算平均值,手动3小时,程序运行2分钟。。可不能犯蠢手动算了。#include <iostream>#include <sys/types.h>#include <dirent.h>#include <fstream>#include <cstring>#include <sstream>#include <vector>using namespace std;void getFil.

2021-04-01 19:10:08 428 1

原创 快速排序

快速排序用到了分治的思想。原理:1、确定分界点x,左端点q[l],右端点q[r],中间点a[(l+r)/2],随机点都可以。2、调整区间。每次把小于等于x的数放在x的左边,大于等于x的数放在右边。3、递归处理左右两边。注:在调整区间步骤时,我们使用的方法是,使用指针i指向左端点,指针j指向右端点,在i<=j的情况下,如果q[i]<x,指针i向右移,直到q[i]>=x为止,接着看指针j,如果q[j]>x,指针j向左移,直到q[j]<=x为止。这时候我们交换指针

2020-12-11 16:15:39 97

原创 图形学第一次实验 educoder

第1关:OpenGL初识-点的绘制void myDisplay(void){ glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT);//将背景设置为黑色 glPointSize(3.0);//指定栅格化点的直径,这个函数不能再glbegin和glend之间使用,因为glbegin和glend之间只能使用特定函数 glBegin(GL_POINTS); glColor3f(1.0f, 0.0f, 0.0f);//每次新

2020-12-04 10:26:49 603

原创 编译原理实验一 词法分析 C++

实验内容:识别无符号数实验步骤:1、画出识别无符号数的自动机若初始输入不是d(d表示数字),则肯定不是无符号数。我画的还有缺陷,比如0开头的情况没考虑。2、设计识别无符号数的算法要求:输入一个字符串,输出判定结果(是无符号数,不是无符号数)例如:2,23,23.38, 23.34e9, 23.34e789, 23e-9,3e-10 都是无符号数2e, 35e-,35e*不是无符号数3、选择一种语言实现算法思路:无符号数和有符号数,就在于前面是否有符号,如果你.

2020-12-04 10:00:03 356 1

原创 试题 算法训练 猴子吃包子

试题 算法训练 猴子吃包子资源限制时间限制:1.0s 内存限制:256.0MB问题描述  从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同;肉包每秒钟吃x个;韭菜包每秒钟吃y个;没有馅的包子每秒钟吃z个;现在有x1个肉包,y1个韭菜包,z1个没有馅的包子;问:猴子吃完这些包子要多久?结果保留p位小数。输入格式  输入1行,包含7个整数,分别表示吃不同包子的速度和不同包子的个数和保留的位数。输出格式  输出一行,包含1个实数,表示吃完所有包.

2020-11-08 17:34:49 177

原创 二分简述

算法思想来源:Acwing简介:如果我们有一个性质,能将一个区间划分成两部分,二分能将这个性质的边界求出来。如图,两个箭头指向的两个点就是二分的两个边界点。性质: 能二分的区间不一定具有单调性,但是具有单调性的区间一定能二分。过程:例如我们要从一组从大到小排列的一组数中找出数x,那么我们先让这个数与区间的中间点的值作比较,如果中间值大于x,那么我们就去中间点的值左边的区间找,继续选中间点的值与x比较继续找,反之,如果中间点的值小于x,那么我们就去中间点的值的右边去找,继续选中间点的值与x

2020-11-06 17:03:14 439

原创 Problem I. Magic Potion

题意:有n个英雄,m个怪物,k瓶药水,每个英雄只能选择杀死自己能杀的怪物集合里的怪物,一个英雄能杀死一个怪物,但是如果一个英雄喝了一瓶药水之后,他能多杀一个怪物,一个英雄最多喝一瓶药水。问你这n个英雄最多能杀死多少只怪物。思路:二分图的经典题,可以利用匈牙利算法解决。因为题目多了可以使用药水的条件,因此我们可以使用两次匈牙利算法来解决这道题,第一次匈牙利算法可以找出每个英雄在不使用药水的情况下最多杀死多少怪物(sum1),第二次匈牙利算法假设每个英雄都有使用一次药水的机会,看看他们又能杀死多少只怪物..

2020-11-03 19:48:12 238

原创 匈牙利算法简述

匈牙利算法可以解决二分图匹配的问题。给你一个二分图,左右两边的点互相可能有若干条边相连,问你这些点的最大匹配数量是多少。(每个点最多连一条边)举一个栗子来说明其原理。有若干个男生和若干个女生想谈恋爱,假设男生具有主动权,每个男生可能对几个女生有好感,现在让你匹配最多的情侣数。如图,我们看到,1号男生对2、3、4女生有意思,2号男生对2号女生有意思,3号男生对3号男生有意思,4号男生对1号女生有意思。我们从1号男生开始匹配,先让他匹配2号女生,然后2号男生先考虑2号女生,发现2号女生已经被选择

2020-11-03 16:42:28 253

原创 L1-009 N个数求和 (20分)

传送门这道题不难,不过有坑点。第一个坑,输入的时候要注意一下。第二个坑,题目中要求长整型,要高亮。第三个坑,题目中只说如果整数部分为0,则输出分数部分,但是它没有说,当整数和分数部分都是0的时候,要输出0,这个需要自己仔细思考出各种特殊情况,不能慌。#include <iostream>#include <algorithm>using namespace std;typedef long long ll;struct node{ ll zi;/.

2020-11-02 15:32:35 247

原创 邻接表存储

邻接表用来存储有向图十分方便,邻接表的本质是一种链表。邻接表有四种操作:初始化、将数字插入到头结点、将数字插入到第k个输入的数字后面的结点、删除第k个输入的数字后面的结点。例题:#include <bits/stdc++.h>#include <iostream>#include <algorithm>using namespace std;const int maxn=1e5+10; int idx,ne[maxn],e[maxn],hea

2020-11-02 08:47:24 840

原创 涛涛和策策的游戏

传送门博弈论的简单应用,每次操作只能选择一个大于1的数字x,选择x的一个大于1的因数y,让x变为x/y,等价于可以从一堆石子中拿出任意个,我们只要把x的所有质因子求出来,即是涛涛和策策对于这堆石子最多能拿的个数。博弈论的原理可以看我的这篇博客。#include <iostream>#include <algorithm>using namespace std;int solve(int n)//求质因子的个数{ int sum=0; for(int

2020-11-01 17:39:21 135

原创 博弈论原理

简介:公平组合游戏ICG若一个游戏满足:由两名玩家交替行动; 在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关; 不能行动的玩家判负;则称该游戏为一个公平组合游戏,即博弈游戏。NIM博弈属于公平组合游戏,但城建的棋类游戏,比如围棋,就不是公平组合游戏。因为围棋交战双方分别只能落黑子和白子,胜负判定也比较复杂,不满足提前判断两者胜负的条件。...

2020-11-01 16:48:09 1294 2

原创 每日咕咚

传送门这道题是道简单思维题,做出来的人少真亏,认真思考下其实很简单。每个人在队中不同的排名下有不同的追赶速度,而他需要超过前面的n-1个同学,然后再跑x距离。他首先需要用第n位的速度追赶第n-1位,然后用第n-1位的速度追赶第n-2位,然后用第n-2位的速度追赶第n-3位。。。直到他用第1位的速度再跑x距离,他就完成自己的任务。那么,一个人从第i位跑到第i-1位所用的时间为x/(Vi-1 - V平均),利用循环把从i=n到i=1的时间加起来就是这个人所用的时间。每个人都是如此,那么可以推断出..

2020-10-27 21:45:54 117

原创 F 学长的白日梦

直接上快速幂就好了。只不过中间竟然有值爆long long了,余数p的范围是9999999967,那么在快速幂中就有可能有两个小于p的值相乘,达到接近10^20这么大。而long long的最小值为-9223372036854775808,最大值为9223372036854775808,接近10^19,显然不够。unsigned long long是无符号的,最大值为18446744073709551615,接近2*10^19,显然也不够(额,一想想,无符号果然是有符号的整型的两倍啊,怪不得unsign..

2020-10-27 21:17:59 126

原创 快速幂

简介:快速幂算法可以将a^k%p以O(log k)的时间复杂度算出来。原理:我们先求出来a^(2^0)

2020-10-27 20:58:53 127

原创 J Prime Game(极简)

做这道题边玩边做,做了两天,最后将要大功告成的时候,竟然是vector定义成long long类型导致超时?感觉狗血,自当警戒。由于花费时间太长,题意、原理就不多说了(可在网上搜索其他人的),只简单说一下思路。这道题用到贡献度思想,可参考我的这篇文章。思路:先分别求出每个数包含的质因子,用vector存储。遍历每一个数的同时,遍历这个数的所有质因子,从而求出这个质因子对于答案的贡献度,累加即可。#include <bits/stdc++.h>using namespace st..

2020-10-14 21:25:17 239

原创 机器视觉第二次试验 MATLAB实现

分段线性变换I = imread('C:\Users\qq260\Desktop\灰度图片.jpg');figure(1)imshow(I);%输出原图,可以与变化后的图片相比I=double(I);[M,N]=size(I);%进行线性灰度变换for i=1:M for j=1:N if I(i,j)<=30 I(i,j)=60/50*I(i,j); elseif I(i,j)<=150 ...

2020-10-14 17:18:35 319

原创 分解质因数

传送门#include <iostream>#include <algorithm>#include <cstring>using namespace std;int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); for(int i=2;i<=n/i;i++)//从小到大枚举所有数,由于n的两个质因子的乘积一定.

2020-10-13 16:35:51 144

原创 Beauty of Array(贡献度思想)

传送门题意:给你n个数,求所有连续子序列的和,并且每个连续子序列中相同的数只保留一个。思路:这是贡献度的经典简单题。贡献度思想是什么,贡献度思想就是把对答案有贡献的区间都列出来,把对答案没贡献的区间都舍去。为什么会有对答案没贡献的区间呢,因为在这个区间里,这个数字前面有和它相同的数字,我们只需要保留前面那个区间就行。对没有重复数字的样例1来说序号 1 2 3 4 5 ai 1 2 3 4 5 ①a1=1对答案的贡献度..

2020-10-12 15:37:19 301

原创 Adrien and Austin

A题解:题意:给你n个石子,从1到n编号,A(Adrien)和B(Austin)都能选择连续的k个石子拿走,谁最后没石子可拿谁就输。A和B都足够聪明,能够选择最优的策略。思路:两个人都足够聪明,能够选择最优策略。那么我们可以运用极限思维,谁都会选择最优的策略,谁都能知道咋赢,那么自然就是谁先手谁赢了。我全部选择A能够赢,但是wa了。于是问了队友B什么时候赢,最后发现当k等于1且n为偶数的时候B会赢,然后当n等于0的时候,B一定赢。把B赢的特殊情况排除了以后就全部是A赢了。#inclu.

2020-10-11 18:19:16 319 1

原创 机器视觉实验一(matlab实现)

I=imread('C:\Users\Administrator\Desktop\a.jpg');[r,c]=size(I);I(3,5)I(3:5,10:15)I(3,5)=200;% I(3,5)figure,imshow(I)I=imread('C:\Users\Administrator\Desktop\b.jpg');size(I)H = rgb2gray(I);figure,imshow(H)% H(1:10,1:5)% I(8,2)=95;% I(1...

2020-10-08 12:35:21 3668

原创 AcWing1229. 日期问题

传送门题解:这道题是道模拟题,思路也不是很难,就是太麻烦了。由题意知,给你三个数a1,a2,a3,有可能是年月日、月日年、日月年三种情况,假如a1,a2,a3符合年月日的条件的话,那么对应的输出就应该是a1a2a3,a3a1a2,a3a2a1.年月日的条件比较好写,如果年份后两位大于60,那就是19年的,否则就是20年的。月份的话是大于0小于13,日子在所在月份的范围内就行。题目要求日期从早到晚排列,那我就把a1,a2,a3比大小的每种情况都列出来,然后看看在每种情况下,对应日期的.

2020-09-30 22:05:37 136

原创 C. Completing the Square

传送门题解:题意:给你正方形的三个点,让你求第四个点。解题思路:首先你需要确定这三个点所在的位置,即哪一个点是位于这三个点组成的两条边的顶点,可以使用两点间距离公式分别求出两点之间的距离,相同的两个距离所共有的那个点自然是顶点。如图,已知(x,y)是直角点,(x1,y1),(x2,y2)是其余两点,(x3,y3)是要求的点。因为正方形相对的两条边互相平行且长度相等,所以x-x1==x2-x3,y-y1==y2-y3,整理得x3==x1+x2-x,y3==y1+y2-y。...

2020-09-06 20:46:45 562

原创 466. 回文日期

传送门题解:当我们看一个题的时候,首先要看它是否满足时间复杂度,其次是空间复杂度,最后是代码复杂度(即在满足前两个条件的情况下,找到最好写的一种方法)。根据题意,年份的范围是1000~9999,如果我们枚举每一天,一年有365天,复杂度就是3.65*(10^6),但是枚举每一天我们要建立一个日历,显然很麻烦。我们可以枚举每一个回文数,然后判断是否在题目所给的日期范围内,最后判断日期是否合法。其中有一个点就是闰年的判断,如果一个年份能被400整除或者不能被100整除而能被4整除,那么这个年份就..

2020-09-03 17:40:51 103

原创 1236. 递增三元组

传送门题解:这道题是用模拟,如果使用暴力的话,显然需要3重循环,然后再写一个判断条件。那么我们就要从这三重循环下手进行优化,根据数据范围可以知道总的时间复杂度大概是O(n)或者O(nlogn),那三重循环我们只能保留一重循环,观察发现保留A数组的循环和保留C数组的循环本质是一样的,但是如果保留A数组的循环的话,B数组和C数组是有关联的,写程序就比较麻烦,可以发现当保留B数组的时候,只需要找到A数组中比它小的,C数组中比它大的就行,A和C本身并无关联。我们保留了B数组的循环,接下来可以用前缀和的方

2020-09-02 21:20:05 146

原创 1210. 连号区间数

传送门题解:这道题是一道模拟题,首先我们应该会想到暴力做法,暴力的话,应该是两层for循环,加一个sort排序判断是否是连号区间,sort排序的时间复杂度是O(nlogn),总的时间复杂度就是O(n^3logn),显然会超时。我们想想怎么能优化它,两层for循环找区间不好进行优化,那么我们来想想在判断是否是连号区间这个地方优化一下程序,经过观察可以发现连号区间的一个性质,在区间[a,b]里,如果这个区间满足,区间的最大值-区间的最小值=b-a,那么这个区间就是连号区间。优化之后,只剩下O(n^2

2020-09-02 09:30:45 119

原创 第十一届蓝桥杯——整数拼接

传送门题解:如果是暴力做法的话,肯定是两个循环遍历一下就行,时间复杂度是O(n^2),但是就这道题而言肯定会超时。要想计算出有多少种拼法满足两个整数拼出的整数是k的倍数,必须遍历到每一个数,即外层循环必不可少,那如何将内层循环O(n)降下来呢。先将表达式写出来,假如找到两个数Ai和Aj,那么拼出来的数就是Ai*(10^(len(Aj))+Aj,例如12和345拼起来就是12*(10^3)+345,它的余数(Ai*(10^(len(Aj))+Aj)%k就等于((Ai%k*(10^len(.

2020-09-01 20:06:15 2646 3

原创 1009 Divisibility

Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2613Accepted Submission(s): 843Problem DescriptionYou are given two10-based integersbandx, and you are required to determine the followin...

2020-08-09 16:06:51 106

原创 Alter Altar

Time Limit: 2 sec / Memory Limit: 1024 MBScore :400400pointsProblem StatementAn altar enshrinesNNstones arranged in a row from left to right. The color of theii-th stone from the left(1≤i≤N)(1≤i≤N)is given to you as a charactercici;Rstands ...

2020-08-03 17:56:22 185

空空如也

空空如也

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

TA关注的人

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