自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 week10测试——B:东东转魔方

主要思路:由于只涉及到一次操作,我们只需列举出所有操作的种类:一共6种(三个轴方向上每个方向两种,一共六种操作)也就是说,只需知道将每个操作后的魔方展开图即可,这样我们就知道了原来的每一个色块现在所在的位置。 然后,对给出的数据分别运用这些操作,若其中一种情况能够恢复就输出YES否则NO对于每一个操作后的魔方展开图,空间想象能力很差的我当时,用画图+折纸的方法解决了…下面是初始 + 六种操作...

2020-05-01 20:14:31 142

原创 week10测试——A:签到题

主要思路:思路简单,维护一个栈,当遇到T时,去检查栈顶是否为S,若是则弹出;其他情况则将其入栈,最终输出栈大小A:签到题东东有一个字符串X,该串包含偶数个字符,一半是 S 字符,一半是 T 字符东东可以对该字符串执行 1010000 次操作:如果存在 ST 是该串的子串,则删除掉最左边的 ST。即 TSTTSS⇒TTSS、SSSTTT⇒SSTT⇒ST⇒空Input字符串X(2 ≦ ...

2020-05-01 19:47:47 135

原创 week10作业——C:拿数问题 ||

主要思路:本题与课上的例题稍微有些不同:拿走x后,所有的x-1、x+1不能拿,而不是相邻的了,而且只要还存在x我们就可以继续拿走那么,我们就将这些数重新排列一下,使x-1、x+1成为x相邻的数,变成课上讲过的问题;具体的做法:利用桶排序的思想,数x加到a[ x ]中去这样,得到的序列就是一般的拿数问题了eg:序列 1 2 1 3 2 2 2 2 3 变成 1+1 2+2+2+2+2 3+3...

2020-05-01 18:19:00 124

原创 week10作业——B:LIS & LCS

主要思路:课上的例题,得到转移方程以后便很好实现了(这也是动态规划的特点)LIS :记dp[ i ]表示以第i个元素结尾的LIS(注意,这里的定义意味着第i个元素是一定被包括进去的),所以dp[i]的值至少是1,这也是合情合理的此时,我们需要检验第i个元素是否能够插入到之前的某个LIS中去,所以我们遍历 i 之前的 i-1 个元素,比较第i个元素和当前遍历到的元素的大小,更新 dp[ i ...

2020-05-01 17:56:11 104

原创 week10作业——A:签到题

主要思路:首先判断:若n能够转换成m,那么n一定整除m,即 m%n==0 为真满足上述条件后,还需要要求m/n中不能有除了1、2、3之外的因子A - 签到题东东在玩游戏“Game23”。在一开始他有一个数字n,他的目标是把它转换成m,在每一步操作中,他可以将n乘以2或乘以3,他可以进行任意次操作。输出将n转换成m的操作次数,如果转换不了输出-1。Input输入的唯一一行包括两个整数n...

2020-05-01 15:53:07 128

原创 week9作业——C:签到题

主要思路:显然,无论什么情况下,最大人数 = 当前最大人数 + 到来的人数对于最少人数,有两种情况:到来的人可以均匀地加入到当前非最多人数的座位中去,这样最大人数依然是当前最大人数;如果不能这样做到,也就是来的人太多了,那么就是总人数除以座位数(+1,视可否整除的情况而定)C - 签到题SDUQD 旁边的滨海公园有 x 条长凳。第 i 个长凳上坐着 a_i 个人。这时候又有 y 个人将来到...

2020-04-24 15:57:15 108

原创 week9作业——B:东东学打牌

主要思路:由于本道题目和之前的“打牌题”有许多相似之处,我在最初的大致思路,是将每个player的牌转换成分数,分数相同的player再按要求比较具体牌的大小,接着比较名字。显然我们只需要重写运算符<即可。然而其中值得注意的地方是当我们在进行两人牌型的比较时,不相等则可以直接判断;若相等,我们需要进一步去比较,但需要比较的牌的信息却没有了,还需要进行复杂的判断。于是,我们提前将这些信息...

2020-04-24 15:16:57 83

原创 月模拟1——CSP201512-3:画图

主要思路:画线直接画、填充dfs、bfs均可值得注意的地方:最后的图像和二维数组的映射题目规定画布的左下角为(0,0),向右、向上则x、y分别增加,这符合我们常见的坐标系。但是,当我们把点(x,y)直接映射成二维数组里的ppr[x][y]这个元素时,整个画布(矩阵)是被顺时针旋转了90°的,见下图:所以如下输出是不对的for(int i=0;i<m;i++){ for(in...

2020-04-03 13:36:04 166

原创 week6测试——打牌

(测试后再看这道题,其实也没有啥难度;然而当时还是没有写出来)主要思路:题目要求计算出每种牌型的数量,直接似乎不是很好计算,于是我们可以反过来考虑:枚举每一种牌的组合,判断它属于哪一种类型(即便是最多牌的情况也一共有989796中组合),判断条件也很好写每一张牌只用一个整数K表示,K=花色*100+点数那么点数=K%100,花色=K/100,这样就能很方便地判断其属于哪一种牌型反思:课...

2020-04-03 06:09:15 103

原创 week6作业——D:数据中心

一道CSP的考题:201812-4正如学长所说,CSP的题目确实很绕,不过仔细分析题目、读出他的考察点才是解题的关键主要思路:“每个节点需要选择一条路劲将数据发送到root节点”、“最优的树结构传输图”、“完成任务所需时间最少”、“root只接收数据,其他节点可以接受多个节点的数据,只能传输给一个节点”结合题目中的表述以及样例,我们需要求出所有生成树中这样的一棵,其最大边权尽可能小,即求出...

2020-04-02 12:52:59 79

原创 week6作业——C:掌握魔法の东东

主要思路:本道题看似有两种操作:“倒水”、“引水”,其实“倒水”可以看作特殊的“引水”操作,是由一个新的水源向该处田地的特殊“引水”于是,题目中的N块田地作为N个点,田之间引水的代价作为边权,而倒水操作我们看作是由一个超级源点引的水;于是我们在这个N+1个点的图中求最小生成树MST(本题用的Kruskal算法,并且要注意之前并查集的应用)总结:有时将图进行适当的重构(如增、删一部分点)能够极...

2020-04-02 11:50:58 82

原创 week6作业——B:戴好口罩

主要思路:本题显然是并查集结构的考察需要注意的是在并查集的find()函数中,我们及时去更新我们查询时经过点的祖先,这样才能加快后续的查询(这一步也称路径压缩)注意:本题要求输出1号元素同组元素的个数,可以简单通过将每个元素查询一遍得到结果;或者提前增加一个域,记录每组中元素个数的数组size[maxn],在find和union函数中注意修改size即可原版本int par[maxn];...

2020-04-02 11:23:38 96

原创 week6作业——A:氪金带东

主要思路:题目要求从树中每个点出发能到达的最远距离我们单独考虑每一个点v,会有如下的结论:这个最远距离就是ve1或者ve2,其中e1和e2分别是树的直径的两端点(证明在后面)。对于每个点,由于不知道时选取e1还是e2,所以需要bfs或者dfs一遍,那么n点就是n遍bfs或者dfs,这样的复杂度显然过高;于是我们可以反过来想,既然每个点都需要bfs或dfs到e1、e2其中之一,那么我们可...

2020-04-02 11:04:53 103

原创 week5作业——D:滑动窗口

主要思路:与A题最大矩形类似,本题我们需要维护一个单调队列(单调队列描述的是局部的单调性,恰恰对应了本题)(以求解最小值为例,求最大值类似)我们维护一个单调队列(由首至尾递增),当队列为空或者队尾元素小于待入元素,那么可以入队;否则一直弹出直至符合上述情况。除了完成上述步骤,由于题目有个长度为k的区间的限制,我们还需要检查是否满足这一条件,即当前区间长度若超过k则需要弹出一个(而且这里明确要弹...

2020-03-27 06:06:40 86

原创 week5作业——C:平衡字符串

主要思路:首先A - DDL的恐惧ZJM 有 n 个作业,每个作业都有自己的 DDL,如果 ZJM 没有在 DDL 前做完这个作业那么老师会扣掉这个作业的全部平时分。所以 ZJM 想知道如何安排做作业的顺序,才能尽可能少扣一点分。请你帮帮他吧!Input 输入包含T个测试用例。输入的第一行是单个整数T,为测试用例的数量。 每个测试用例以一个正整数N开头(1<...

2020-03-27 05:44:19 104

原创 week5作业——B:TT's Magic Cat

主要思路:本题要求模拟给一段数列的一段区间加上数字c由于差分描述的数组对于连续的区间加上数字c的改变很小(只是在区间边界处有所改变),所以我们用差分来处理a = x1 - x2 = (x1 + c) - (x2 + c)注意int不够,需要使用long longB - TT’s Magic CatThanks to everyone's help last week, TT ...

2020-03-27 05:14:18 76

原创 week5作业——A:最大矩形

主要思路:本题要求求出在直方图中最大面积的矩形,很显然我们需要使得这个矩形的高与宽都尽可能地长,自然地有两个思考方向:对于一段区间[ l , r ], 以区间长度为宽,矩形的高度即为区间上的最小值对于一个固定的高度,去向左向右寻找到它能延伸的最远距离对于前一个思路,单单是找出所有的区间其复杂度就已经很高了,于是我们考虑第二种思路;对于x处的高度hx,我们需要,找到x自左向右第一个在该处...

2020-03-27 04:55:10 65

原创 week4作业——A贪心

主要思路:题目要求是安排作业顺序,使得扣分最少,显然我们可以认为扣分越多的任务越重要,即我们优先安排这样的任务;其次,若从头安排作业,则势必会影响到后面的作业安排(即有可能占用其他作业位置),从后向前安排则不会出现这样的情况;且每个任务均占用一天的时间,可采用如下策略:从最迟的DDL开始,向第一天开始处理对于每一天,先将DDL在这一天所有作业加入到最大堆中将堆中最大元素pop出(若堆空则...

2020-03-20 05:32:16 85

原创 week4作业——B二分

主要思路:对于这道题,一个显然的四重循环O(n4)的暴力做法显然会超时,数据量为4e4,于是考虑如下优化:将两个数列的组合看成一组新数列,那么我们就可以得到两个n2的数列,首先对其中一个数列排序,分别对于一个数列中的所有元素的相反数,在另一组有序数列中二分找到相应的元素;(-A-B)=(C+D)B - 四个数列 ZJM 有四个数列 A,B,C,D,每个数列都有 n 个数字。 ...

2020-03-20 05:31:50 68

原创 week4作业——C二分

主要思路:由于本题的n最大为1e5,所以仅仅求出ans数列已经达到了O(n2)的复杂度,所以需要其他的思路;二分中位数考虑我们求的中位数的范围:大于等于零,这是因为ans的每个元素为abs(cat[i] - cat[j]);小于等于cat数列最大值与最小值之差,这是因为ans的每个元素由cat生成。并且名次是单调的,所以在这个范围内我们可以二分求出中位数,使用的一个评判标准便是名次与(len...

2020-03-20 05:31:15 83

原创 week4CSP模拟测试——BFS、DFS

主要思路:一道BFS、DFS题简单分析本题的测试数据可以得到,如果不剪枝,必然超时(毕竟2n 复杂度),所以关键在剪枝,找出那些后续无需进行的“点”;我们不能仅仅靠横纵坐标判断是否到达同一个点,因为对于再次到达的一点来说,有可能方向不同了或者前行的长度不同了,所以以上的情况都是不能剪掉的。综上所述,同一个“点”的要求如下:横纵坐标相同当前的朝向相同当前分裂的次数相同显然我们需要一...

2020-03-18 12:06:40 122

原创 week4CSP模拟测试——B:贪心

主要思路:一道贪心题对于本题我们取两天为一组看待(即第1天与第2天、第2天与第3天…)。对于前一天我们优先使用对后一天影响最小的方案1——买两个生煎;当然我们希望他要求的生煎数是偶数,这样我们可以直接处理后面一天;当他所要求的生煎数是奇数时,一个生煎使用方案2,剩下的偶数个生煎使用方案1,同时注意此种情况下对后面一天的影响——后面一天的生煎数减1;直至处理到最后一天注意:循环结束后不要忘记...

2020-03-18 11:33:17 122

原创 week4CSP模拟测试——A:模拟题

主要思路:一道模拟题本题的关键是找出两个字符之间的“距离”,这里的距离是指转动圆盘可到达两个字符之间的最小距离。(即’a’和’z’的距离是1,'a’和’b’的距离也是1)乍一看似乎找不到其中的规律,但是如果我们分成两步进行:先计算两者之间的距离(不要求最小),显然是| b - a |由于两个字符之间有两个距离(沿顺、逆时针走),取其最小即可奇怪的坑一份AC的代码中使用了strin...

2020-03-18 11:29:59 143

原创 week3作业——区间覆盖

主要思路:C - 区间覆盖数轴上有 n (1<=n<=25000)个闭区间 [ai, bi]选择尽量少的区间覆盖一条指定线段 [1, t](1<=t<=1,000,000)覆盖整点,即(1,2)+(3,4)可以覆盖(1,4)。不可能办到输出-1Input第一行:N和T第二行至N+1行: 每一行一个闭区间。Output选择的区间的数目,不可能办到输...

2020-03-12 04:28:13 87

原创 week3作业——区间选点

主要思路:一道贪心的简单应用将所有的区间进行排序(先按右端点升序;右端点相同按左端点降序)选点的原则是:将(排序后)第一个区间抽出选择该区间的右端点将包含该区间的右端点的所有区间删去重复上述操作直至处理完所有的区间坑最初我使用了vector的数据结构,每个元素为自己定义的结构体interval。整体思路也没有什么问题,然而连样例都无法通过。在仔细调试后,将问题定位至删除操作的...

2020-03-12 04:27:46 110

原创 week3作业——选数问题

主要思路:使用递归解决递归需要记录的信息:当前选数的位置(从一个数组左端开始逐个选取)已选的数的和保存已选数的vector在即将进入下一重递归时,有两种选择:将当前数字加入、不加入若不进行剪枝,递归次数(复杂度)会高达 2n可进行剪枝的地方:当遍历的给定数组末尾时当已选数字的个数超过要求时当已选数字的和超过要求时在以上三种情况出现时,即时停止即可A - 选数问...

2020-03-12 04:27:03 79

原创 week2实验——C题

主要思路:一道模拟题在每个人的牌中排序时,有多种方法,我选择将四种花色按大小映射成100、200、300、400,牌的点数映射成相应的数字,这样排序时会方便许多最后注意输出要求即可A - 瑞神打牌瑞神HRZ因为疫情在家闲得无聊,同时他又非常厉害,所有的课对他来说都是水一水就能拿A+,所以他无聊,找来了另外三个人:咕咕东,腾神以及zjm来打牌(天下苦瑞神久矣)。显然,牌局由四个人构成,...

2020-03-06 02:56:27 231

原创 week2实验——B题

一道判断是什么图的题主要思路:题目本身很简单,结构体排序除此之外,我还学到了一种读数据的方法sscanf这道题的input中,有的是int;还有的是int(int)这样类型的输入数据我开始的做法是将整个以string的形式读取下来,再进行判断、处理这样明显十分麻烦A - 爆零(×)大力出奇迹(√)程序设计思维作业和实验使用的实时评测系统,具有及时获得成绩排名的特点,那它的功能是怎...

2020-03-06 02:55:45 115

原创 week2实验——A题

一道判断是什么图的题主要思路:由于只有六个点,利用各个点的度来判断,即先算出所有点的度数再排序度数的所有可能为 1 1 2 2 2 2、1 1 1 2 2 3、1 1 1 1 3 3 以及1 1 1 1 2 4唯一需要单独判断的是1 1 1 1 2 4这种情况,因为2-methylpentane和3-methylpentane都对应这种度数排列A - 化学化学很神奇,以下是烷烃基。!...

2020-03-06 02:54:41 109

原创 week2作业——bfs的简单应用:倒水问题

一道bfs的简单应用(与迷宫题十分类似),用到的数据结构:队列(BFS使用)栈(保存输出路径)集合(记录是否到达)主要思路(BFS操作):先将起始状态push到队列中并作标记(在集合中标记,不同于上一道迷宫题目,迷宫的位置可以穷尽但本题水的状态过多,再用如二维数组来记录显然不合适,遂使用集合),分别将队列中元素依次pop出,然后分别检查该点的“周围”(这里的周围显然不是普通意义上的周...

2020-03-06 02:53:39 191

原创 week2作业——bfs的简单应用:迷宫问题

A - Maze 东东有一张地图,想通过地图找到妹纸。 地图显示,0表示可以走,1表示不可以走。 左上角是入口,右下角是妹纸,这两个位置保证为0。 既然已经知道了地图,那么东东找到妹纸就不难了。 请你编一个程序,写出东东找到妹纸的最短路线。Input  输入是一个5 × 5的二维数组,仅由0、1两数字组成,表示法阵地图。Output  输出若干行...

2020-03-06 02:52:58 114

空空如也

空空如也

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

TA关注的人

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