
C++学习
文章平均质量分 69
轩Scott
这个作者很懒,什么都没留下…
展开
-
本周学习总结22.6.6-6.19:比赛、背包、DP
Problem - A - Codeforces 题意是构建一个基座,平台1高于平台2,平台2高于平台3,三者两两不能同高,并且还要让平台1尽可能的低(但不低于平台2),给出高度的总和,求平台2,1,3的高度(必须是整数),这个我本来是直接用暴力枚举,用三个循环来筛结果,就是当a+b+c=n并且a>b&&b>c&&a>c时分别输出b,a,c,由于它给出的数最大为10^5,三个for就会超时,第一次便Time limit exceeded on test 1了,然后和同学讨论了一下问题 - B - 代码原创 2022-06-19 15:00:53 · 254 阅读 · 1 评论 -
本周学习总结22.5.30-6.5:贪心、动态规划DP
[USACO07DEC]Bookshelf B - 洛谷这个题的题意是在一串数中取最少的数,并且使取的数和大于等于给定数,是一个贪心入门题,先选最大的数,然后就一定能使取的数的数目最小,其实用sort函数就可以了。弹珠游戏 - 洛谷这个题是给出一个二维数组,数组中有若干个敌人,其中没有敌人的地方可以容身,此时求在哪个没有敌人的地方容身时,此坐标的同一行与同一列的敌人最多,经典的枚举加贪心,我是直接枚举寻找最大值,但是超时(可能是因为我套了三个for),题解中有个好方法,是直接不用存储在二维数组中,而是.原创 2022-06-02 23:39:55 · 133 阅读 · 0 评论 -
本周学习总结22.5.23-5.29:DP(背包)
虽然本周我不用考2学分的线性代数,但是要考3学分的大学日语和2学分的创业概论。P1507 NASA的食物计划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)一个找最优解的题,题意是给出了最大存储空间和最大存储质量,以及需要载的物品,求在不超过最大储存空间的最大存储质量的前提下存储最大卡路里,这个找最优解的题应该是最简单的一道题之一,开一个二维数组存储,然后直接就可以套用01背包中f[j]=max{f[j],f[j-a[i]]+c[i],然后因为有两个关键变量所以设一个二维数组f[.原创 2022-05-29 22:02:41 · 113 阅读 · 0 评论 -
本周学习总结22.5.16-5.22:拓扑排序、最小生成树
本周去医院复查了,没在学校,最近几天在家休养,因为只能吃流食,同时,这不妨碍学习。本周主要还是看博客为主,一个是Dijkstra算法,还有bellman算法,bellman算法是我在P1339 [USACO09OCT]Heat Wave G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)的题解中遇到的,就是无向图求最短路的好方法,主要思想是:首先用结构体存储起点终点和路程(此时要存储两个的,也就是去程和返程,将起点终点调换),之后开始遍历,如果顶点数为n,那么执行n-1次循环,每次遍历所有原创 2022-05-22 22:09:55 · 179 阅读 · 0 评论 -
本周学习总结22.5.9-5.15:拓扑排序、比赛、最小生成树
由于本周六请假返乡就医(暂缓返校),学习时间会减少,返校日期定不下来,这次博客是在泰安站候车时与在火车上写的。选修acm程序设计基础也已经两个多月了,虽然由于精力和时间问题导致学习时间很少,但是我也渐渐养成了看博客、翻资料的习惯,其实我也把其他事情全放掉,一心学习acm,但是我的外语语种几乎断了我继续学acm的路,我的外语是日语,英语一窍不通,现在打codeforces题目是完全看不懂的,翻译软件在翻译的时候也总会有各种各样的翻译错误,导致我每次读题时间比别人多好几倍,如果以后正式打比赛更没有翻译软件了原创 2022-05-15 23:03:30 · 185 阅读 · 1 评论 -
本周学习总结22.4.25-5.8:二叉树、并查集、和拓扑排序
5月5日晚的Codeforces Round #787 (Div. 3)打的不好,B题是挺简单的题,但一直卡在测试点2过不去。A. Food for Animalshttps://codeforces.com/contest/1675/problem/A这个签到题挺简单,对我这种日语语种的都能一下子读懂题意。意思是有a袋狗粮,b袋猫粮,c袋都能吃的粮食,一共x只狗,y只猫。问每只小动物能否都吃到粮食,我直接用“穷举法”14个if把每个条件都列举了一遍,几分钟就提交上ac了。#include<原创 2022-05-06 23:27:53 · 525 阅读 · 0 评论 -
本周学习总结22.4.18-4.24:二叉树、搜索和排序
本周由于有两场面试、补三周共12课时的大物实验、智慧农业实验室二面程序开发,占用了特别多的学习时间,导致我敲代码的时间都集中在晚上十一点之后,并且由于早上还有早自习需要早起,所以真正能坐在电脑前敲代码的时间非常少了,所以本周我以看博客和资料和题目为主,也尽量多挤出时间来做题。平时在外面拿出琐碎时间读博客和资料。上节课上课的时候学到了二叉树,还是比较好理解,但是在做题的时候,如何存储二叉树难住了我P4715 【深基16.例1】淘汰赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)原创 2022-04-28 00:14:26 · 1773 阅读 · 0 评论 -
本周学习总结22.4.11-4.17:两种搜索、递归与栈的应用
今天我在做搜索题的时候,看博客偶然看到了一种解决二维数组搜索类的题的一个特别好用的方法,就比如下面这个题一矩形阵列由数字 0到99组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。这个题大多数人喜欢用广度优先搜索来解决这个题,然后我发现了一个特别简单便于理解的一种解题思路,就是先用循环遍历元素,如果遍历到“细胞”,咱就把相邻同为“细胞”的元素都给删除掉,并且计数器加一,这样唯一的缺点应该就是代码长度有点长。这种思路的...原创 2022-04-17 20:51:24 · 162 阅读 · 0 评论 -
本周学习总结22.4.4-4.10:两种搜索、比赛
本周看的博客大部分都是与搜索有关的,也有一些是其他方面的,看的博客大多是在做题中遇到一些不会的思路和内容时,专门看如何解决遇到的问题的博客,阅读的篇目比较多,具体数量我忘记统计了,收获如下:能够更加熟练地运用递归函数来写深度优先搜索的函数,并且在此基础上ac了不少的题,根据题意中不同的情况,将递归函数中一个或几个数据修改,减少程序的运算时间,我在周六晚上的比赛中的第二题就用到了这样的思路Suppose you have an integervv. In one operation, you ca.原创 2022-04-10 15:30:41 · 1184 阅读 · 2 评论 -
本周学习总结22.3.28-4.3:排序、stl、比赛
周二晚上在做排序类型的题的时候,遇到一道特别好的题,这个题让我用了十几种排序的方法才ac出来,这个题本来是一道很简单的题,结果我小题大做,绕了一个很大的弯才做出来。题目如下:利用快速排序算法将读入的N个数从小到大排序后输出。题目很短,看起来也挺简单的(实际上确实挺简单)但是这个题却难住了我(题目禁止使用sort函数),我刚开始看到这个题,感觉用普通的排序就能做出来 ,我便用下述方式写了第一版代码:#include<iostream>#include<set>..原创 2022-04-02 15:28:16 · 158 阅读 · 0 评论 -
本周学习总结:map和multimap的应用
本周由于种种原因(备考日语四级、日本語能力テストN2测试以及线上上课效率低),学习的时间略微变少了一丢丢,我还是尽量挤出时间来学习算法,本周主要学习了map和multimap的应用以及广度优先搜索和深度优先搜索,这两种搜索方式学的还不够深,做题的时候一直无法ac,本周学习我还是把map和multimap放在重点上了。刚开始接触map的时候,感觉map非常像python中的字典(dict)。map所需要的头文件是#include<map>定义方式为map <data_原创 2022-03-27 17:20:28 · 1893 阅读 · 0 评论 -
vector(动态数组)的简要概括
vector的直译是向量,但它的结构非常像数组类型,所以直接将vector称之为“动态数组”。在部分情况下,数组会出现溢出、超内存等等情况,使用动态数组可以有效解决这种情况。使用动态数组需要<vector>头文件,也就是#include<vector>,定义一个vector数组的格式是vector<type_name> name;vector<int> v1;veator<double> v2;vector<char&g原创 2022-03-21 23:44:33 · 809 阅读 · 2 评论 -
stack(栈) 和queue(队列)的理解与掌握
周二上acm课的时候讲了栈(stack),这是一种后进先出的数据结构。从我的理解来看,特别像逢年过节的时候,我每次去奶奶家,我都能看到奶奶在烙饼,我感觉栈就非常像烙饼,进栈和出栈就像奶奶把烙好的饼堆上去和我吃饼,奶奶每次都把刚烙好的饼堆到最上面,我每次拿最上面的饼吃,在学习的时候我突然感觉可以这样理解。可以举这样一个例子:奶奶依次把编号为1、2、3的饼堆在上面,然后我取出了3号饼吃掉,现在堆在最上面的就是2号饼,奶奶又把刚烙好的4、5号饼堆在上面,此时我如果想吃的话,就先从5号饼开始拿,然后是4号、2号原创 2022-03-19 23:18:57 · 531 阅读 · 0 评论 -
数组相关知识的学习
1、二维数组二维数组类似于二维坐标轴,格式如下:int a[10][20];double b[5][10];bool c[123][123];char d[223][805];如何理解二维数组呢?可以将二维数组a[10][10]看作x为10,y为10的坐标轴,坐标轴的每个正整数点都可以存数据,见图2-2。二维数组可以像一维数组一样在定义时初始化,二维数组在初始化的时候,需要按第一维的顺序依次用大括号给出第二维初始化情况,然后将它们用逗号分隔,并用大括号全部括住,而这些被赋初值的元原创 2022-03-11 21:50:54 · 261 阅读 · 0 评论 -
开始学习icpc后的第一个算法——冒泡排序
排序是指将一个无序序列按某个规则进行有序排列,而冒泡排序是排序算法中最基础的一种。在C++中冒泡排序可以将数组内无序的对象按照自己的想法排列,按从小到大排序或者从大到小排序.冒泡排序的本质在于交换,就是每次通过交换的方式把该对象大的那个移动到一端,剩余对象减少为零时,冒泡排序结束。下面是几个典型的冒泡排序例子:例一:将数组a[10] = {5,9,7,6,2,18,14,22,13,1}内部数据按照从大到小排序。#include<iostream>using namespac原创 2022-03-11 19:49:33 · 92 阅读 · 0 评论 -
C++_类的简单解析
类是用户定义的复杂数据类型,它能够将不同类型的数据和对这些数据进行操作的函数封装在一起。类的定义分为两部分:说明部分和实现部分。说明部分是说明类中包含的数据成员和成员函数,实现的部分就是对成员函数的定义,格式如下:其中,class是类的关键字,类名是创建的类的名字,需要符合标识符定义规则;花括号内是类的内容。类的成员包括成员函数和数据成员,数据成员是类的属性,成员函数是对类的表达。关键字pubilc、prictive和protected称为访问权限修饰符,它们限制了类成员的访问控制范围。成.原创 2022-03-10 23:44:34 · 900 阅读 · 0 评论