自定义博客皮肤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)
  • 收藏
  • 关注

原创 visual studio code代码风格设置

初学visual studio code,由于习惯了Dev C++的代码格式,看到visual studio code大括号占两行的风格很不适应,于是就查阅资料想要将大括号缩进一行,最终得到了如下操作步骤:设置搜索clang format;{ BasedOnStyle: Google, IndentWidth: 4 }...

2020-10-21 15:36:45 1372

原创 CCF 202009-3点亮数字人生 (100分)

(1)题目描述(2)算法思想本题难度其实不大,关键是耐心读题。首先剖析一下题目的输入顺序以及格式:1 //要解决的问题数目,本题由多个独立的子问题构成3 5 //独立问题的电路输入个数以及器件个数XOR 2 I1 I2 //器件类型、输入个数、每个输入端的编号,I开头表示直接输入,O开头表示器件输入XOR 2 O1 I3AND 2 O1 I3AND 2 I1 I2OR 2 O3 O44 //输入的次数,也即输出的次数0 1 1 //每次输入时输入信号的状态1 0 1

2020-09-29 20:54:32 2299 2

原创 CCF 202009-2风险人群筛查 (100分)

(1)题目描述(2)算法思想题目本身没有什么难以理解的地方,就是要注意一下逗留的定义——连续k个或更多坐标均位于矩形内(含边界),这就要求我们记录最大的连续位于矩阵内的次数,实现这一点就没有什么问题了。(3)代码实现#include<iostream>using namespace std;int xmin,ymin,xmax,ymax;bool isin(int x, int y) { if(x>=xmin && x<=xmax &&am

2020-09-29 09:47:56 446

原创 CCF 202009-1称检测点查询 (100分)

(1)题目描述(2)算法思想计算距离+根据距离与序号进行排序。这里需要注意的一点就是计算距离时最好保留平方不要随便开根号以防丢失信息,如果开方了记得设置为浮点数不然会丢失小数位。(3)代码实现#include<cmath>#include<iostream>#include<algorithm>using namespace std;struct node { int x; int y; int id; int distance;};b

2020-09-29 09:23:17 1026

原创 湖南大学 离散数学 实验代码

HNU离散数学实验代码序:代码:关系运算:代数系统:图论——基础:图论——算法:组合数学:序:上学期离散数学由于疫情原因在家中进行网络授课,实验要求也因此产生了一些变化,本来是需要完成书上的八个实验并进行现场验收,调整为每人五道实验题并上传教学系统直接让助教批阅的形式。笔者完成了所有十道实验但是由于前五道不需要提交因此写得不算认真就不拿出来献丑了,下面就展示一下后五道的实验代码,仅供参考不建议直接copy。代码:关系运算:/*采用C++编写函数声明注释规则:'//'的表示为新增功能'/*'

2020-09-22 19:25:56 1159 1

原创 湖南大学 离散数学 2018年期末考试 参考答案

HNU离散数学2018年期末考试参考答案序:参考答案:第一题:真值表解法:等值演算解法:第二题:第三题:第四题:第五题:(1)(2)第六题:第七题:序:笔者前段时间刚考完补修的离散数学,复习过程中深感没有参考答案的痛苦,虽然试卷本身难度并不大可以和同学比对得出正确答案,但是在复习时间不足时有一份详尽的参考答案实在是一件令人希冀的事情。故笔者在此将自己复习过程中做过的18年试卷整理成电子版方便复习取用,个人答案难免有所纰漏,若发现有疑问的地方欢迎与我讨论。那么下面便开始吧:参考答案:第一题:首先

2020-09-21 23:23:06 3505 1

原创 CCF 201609-3炉石传说 (100分)

(1)题目描述(2)算法思想题目看起来很长,但是只要玩过游戏阅读起来很容易理解,充分理解后按照要求模拟即可没有什么难度。需要注意的一点就是从者的位置,可以选用vector容器存储,方便召唤时的插入以及死亡时的删除。(3)代码实现#include<vector>#include<iostream>using namespace std;struct servant { int HP; int ATK;};struct player { int HeroH

2020-08-23 03:20:31 266

原创 CCF 201609-2火车购票 (100分)

(1)题目描述(2)算法思想控制好三个变量——每一排的剩余个数、每一个座位的编号以及每一个座位的分配情况即可。首先从第一排开始扫描,若有满足剩余个数的排则占据其剩余的座位;若直到最后一排仍无法满足分配在同一排的需求则从第一排开始寻找空闲座位直接安排即可。(3)代码实现#include<vector>#include<iostream>using namespace std;struct row { int leftnum; int seatid[5]; in

2020-08-23 03:14:13 160

原创 CCF 201609-1最大波动 (100分)

(1)题目描述(2)算法思想计算前后两天差值的绝对值并更新最大值即可。(3)代码实现#include<cmath>#include<iostream>using namespace std;int main() { int n; cin>>n; int MAX=0; int pre,now; for(int i=0; i<n; i++) { cin>>now; if(i!=0) MAX=(abs(now-pre)

2020-08-23 03:03:31 164

原创 CCF 201612-2工资计算 (100分)

(1)题目描述(2)算法思想本质上就是初中学的分段函数,可以计算各情况下税后工资的值域,判断当前工资的范围进而进行还原。不过本题比较特殊规定了税前工资整百的特性并且有一个最大值,这使得我们可以按照正向计算的方式穷举出税前工资。这个条件是我在敲完后才发现的所以便没有额外实现,实现起来应该比反向要简单。(3)代码实现#include<iostream>using namespace std;int main() { double sum[7]= {0}; double tax[

2020-08-23 02:57:11 199

原创 CCF 201612-1中间数 (100分)

(1)题目描述(2)算法思想理解题意排序后统计大于以及小于中间数的整数数量即可。(3)代码实现#include<iostream>#include<algorithm>using namespace std;int main() { int n; cin>>n; int a[n]; for(int i=0; i<n; i++) cin>>a[i]; sort(a,a+n); int lowernum=0; int up

2020-08-23 02:46:59 243

原创 CCF 201703-2学生排队 (100分)

(1)题目描述(2)算法思想利用vector容器先删后插入即可,查找移动编号位置时可以使用中的find( )函数。(3)代码实现#include<vector>#include<iostream>#include<algorithm>using namespace std;int main() { int n; cin>>n; vector<int> Myqueue; for(int i=1; i<=n; i++)

2020-08-23 02:40:23 133

原创 CCF 201703-1分蛋糕 (100分)

(1)题目描述(2)算法思想根据题意模拟并单独处理分最后一块蛋糕的情况即可。(3)代码实现#include<iostream>using namespace std;int main() { int w=0; int n,k; cin>>n>>k; int sum=0; int cake[n]; for(int i=0; i<n; i++) cin>>cake[i]; for(int i=0; i<n; i++)

2020-08-23 02:35:57 186

原创 CCF 201709-2公共钥匙盒 (100分)

(1)题目描述(2)算法思想三个需要注意顺序的地方:取钥匙时间先后;同一时间先还后取;同一时间还序号小者优先。根据这三个原则进行模拟即可,我在此处先按照钥匙编号从小到大进行了排序,在同一时间还钥匙时即不需额外控制序号小者优先的原则。(3)代码实现#include<iostream>#include<algorithm>using namespace std;struct teacher { int id; int end; int begin;}

2020-08-20 00:45:42 236

原创 CCF 201709-1打酱油 (100分)

(1)题目描述(2)算法思想贪心算法,赠送多的方案优先计算。(3)代码实现#include<iostream>using namespace std;int main() { int coin; cin>>coin; int add2num=coin/50; coin-=add2num*50; int add1num=coin/30; coin-=add1num*30; int add0num=coin/10; int sum=7*add2num+4*

2020-08-20 00:37:57 101

原创 CCF 201712-2游戏 (100分)

(1)题目描述(2)算法思想设置两个变量分别表示所报数以及小朋友编号;以小朋友未淘汰人数为循环变量,当只剩一人时结束循环;淘汰条件——整除k或个位数为k,整除判断直接%k,判断个位数是否为k%10即可;根据每一轮的情况改变所报数以及当前小朋友编号,跳过时编号++;不跳过时编号以及所报数都++,其中如果产生淘汰则对应编号设置为出局下一次报数直接跳过。(3)代码实现#include<iostream>using namespace std;int main() { int

2020-08-20 00:34:28 140

原创 CCF 201712-1最小差值 (100分)

(1)题目描述(2)算法思想排序+计算差值即可(经测试不排序双重循环也不会超时)。(3)代码实现#include<cmath>#include<climits>#include<iostream>#include<algorithm>using namespace std;int MIN=INT_MAX;int main() { int n; cin>>n; int a[n]; for(int i=0; i<n

2020-08-20 00:25:46 119

原创 CCF 201803-2碰撞的小球 (100分)

(1)题目描述(2)算法思想首先确定一个前提:小球由于会产生碰撞,其相对位置不变,即左右关系不变。得到了这一个前提在模拟小球之间的碰撞时只需与其前一位置的小球进行位置判断即可,避免了双重循环的O(n^2)复杂度(经测试双重循环也并不会超时)。然后再模拟一下碰壁情况即可。(3)代码实现#include<iostream>#include<algorithm>using namespace std;struct ball { int pos; int speed

2020-08-20 00:21:46 187

原创 CCF 201803-1跳一跳 (100分)

(1)题目描述(2)算法思想保存前一次的加分以及跳跃情况,分三种情况即可。(3)代码实现#include<iostream>using namespace std;int main() { int sum=0; int score=0; int id,preid=0; while(cin>>id) { if(id==0) break; else if(id==1) score=1; else { if(preid!=2)

2020-08-20 00:15:54 108

原创 CCF 201809-2买菜 (100分)

CCF 201809-2买菜 (100分)(1)题目描述(2)算法思想方法一方法二(3)代码实现方法一方法二(1)题目描述(2)算法思想方法一根据输入的空闲时段标记空闲时间,从两方初始空闲时段的最大值开始遍历至末尾空闲时段的最小值,若当前时刻两方都标记为空闲时间则可交谈时间++。这种方法比较便于理解且易于实现,此处时间规模不大不会出现超时现象,但空间消耗较大。方法二以时段为变量,判断两时段是否有重叠,在得到重叠时段前不断进行下一时段的寻找,得到重叠时段后,若再次出现不重叠时段则标记下一轮寻找

2020-08-12 01:47:46 183

原创 CCF 201809-1卖菜 (100分)

(1)题目描述在这里插入图片描述(2)算法思想本题作为第二题其实有点难度,要灵活避坑。首先估算数量级,发现可能存在10^11,超出了int型可以表示的范围,因此花费时间及其中间变量需要设置为long long型;其次是时间复杂度的问题,如果采取保存初始时间结点并不断更新的方式,复杂度则为O(n^2),我觉得很可能会超时(不过并没有实际尝试)。在避开上述比较坑的地方之后我们便可以设计算法了:实现红绿灯1->3->2->1的状态转移(结合前一题的描述),或者初始接收红绿灯时

2020-08-12 01:28:51 131

原创 CCF 201812-2小明放学 (100分)

(1)题目描述(2)算法思想本题作为第二题其实有点难度,要灵活避坑。首先估算数量级,发现可能存在10^11,超出了int型可以表示的范围,因此花费时间以及其中间变量需要设置为long long型;其次是时间复杂度的问题,如果采取保存初始时间结点并不断更新的方式,复杂度则为O(n^2),我觉得很可能会超时(不过并没有实际尝试)。在避开上述比较坑的地方之后我们便可以设计算法了:实现红绿灯1->3->2->1的状态转移(结合前一题的描述),或者初始接收红绿灯时间输入时按照转变

2020-08-08 21:59:12 444

原创 CCF 201812-1小明上学 (100分)

(1)题目描述(2)算法思想正经的送分题,很多变量其实都用不上,关键是要理解题意为下一题做准备。(3)代码实现#include<iostream>using namespace std;int main() { int sig[4]= {0}; for(int i=1; i<4; i++) cin>>sig[i]; int n; cin>>n; int sum=0; for(int i=0; i<n; i++) { int

2020-08-08 21:45:32 162

原创 CCF 201903-2二十四点 (100分)

(1)题目描述(2)算法思想分别读入数值与运算符方便进行计算;优先处理乘法与除法的计算,并且遵循从左至右的顺序;当乘法与除法计算完毕后开始处理加减法得到最终的结果;最终结果等于24则输出"Yes",否则输出"No",注意输出格式以及大小写。(3)代码实现#include<map>#include<vector>#include<iostream>using namespace std;int fun(int n1, int n2, char

2020-08-08 16:41:35 126

原创 CCF 201903-1小中大 (100分)

(1)题目描述(2)算法思想本题看似简单实则暗藏杀机,首先必须得完全理解题意:按从大到小的顺序依次输出最大值、中位数以及最小值,其中中位数若为整数则输出为整数,若为分数则保留一位小数并输出。这里最大值以及最小值得输出没有什么好说的,关键是中位数的输出,建议使用C语言printf的输出方式,便于进行格式控制,严格遵循整数直接输出,分数保留一位小数输出的要求,运算过程中也要注意变量类型的隐式转换,防止出现意料之外的错误。此处的保留一位小数是指原结果保留一位小数,不需要进位之类的,一开始我看到四舍五入还

2020-08-07 23:53:19 289

原创 CCF 201909-4推荐系统 (100分)

(1)题目描述(2)算法思想本题涉及到频繁的增删以及查询操作,必须先确定合适的数据结构,我一开始选用了vector并在每一次增删后进行排序,只得了10分。涉及到频繁增删应优先考虑红黑树结构的set与map,此处需要对商品信息进行排序,方便起见应选用set容器(map表示映射关系难以对类别、序号以及分数进行统一排序)使用set存储商品信息需要重载’<’,由题意可知优先级:得分>类别>序号,即得分高者靠前,若得分相等则类别低者靠前,若类别也相等,则序号小者优先。(3)代码实现#i

2020-08-05 22:03:54 429 1

原创 CCF 201909-2小明种苹果(续) (100分)

(1)题目描述(2)算法思想统计记录信息,每一行数据第二个表示苹果树初始数量,之后表示疏果数量或者当前苹果数量核算值;若小于等于零则表示为疏果数量,当前苹果数减去对应数值;否则表示为核算值,若与之前更新的苹果数不同则表示有掉落,更新苹果数并将当前苹果树标记为有掉落;累计当前苹果数量与有掉落苹果树的数量;完成每一棵苹果树的记录后处理掉落组数值,题目中明确规定将苹果树排列视作一个圆,那么我们统计时直接取模即可表示环形结构。根据题干末尾的规模数据可以大致估算出存在10^9数量级,即可能会出现超过

2020-08-04 00:20:00 237

原创 CCF 201909-1小明种苹果 (100分)

(1)题目描述(2)算法思想本题的思路很简单,输入初始苹果数量再不断输入疏果数量,统计疏果的个数,疏果完毕后累计剩余苹果的数量。完成每一棵苹果树的计算后按照疏果数量进行排序,相等则序号小者优先。本题我觉得需要注意的一点是防止数据溢出。根据题干末尾的规模数据可以大致估算出存在10^9数量级,即可能会出现超过int最大数值的情况,因此我在此处选取long long类型杜绝溢出的可能性。(如果使用int是否会溢出我并没有进行尝试,第一题可能没有可疑刁难考生吧)(3)代码实现#include<io

2020-08-03 00:19:03 316

原创 CCF 201912-2回收站选址 (100分)

(1)题目描述(2)算法思想此处给定离散点,由于只需要判断各点之间的联系,因此仅需保存点的坐标而不必构造相应的图,不用考虑内存限制。之后考虑各点之间的关系以及得分规则——各点之间的关系分为相邻以及对角线两种,且必须满足有4点相邻才考虑建立回收站并开始计分;对角线关系仅当确定放置回收站后开始作为计分标准,1个对角线垃圾点对应1分。按照上述规则开始计分,每次计分对应关系的两点可同时进行加分,减少循环次数。(3)代码实现#include<cmath>#include<iost

2020-08-02 20:35:46 381

原创 CCF 201912-1报数 (100分)

(1)题目描述(2)算法思想首先是对于报数的处理,含有7或者为7的倍数则跳过,为7的倍数可以直接取模,含有7可以先将整型数据转换为字符串,再调用find( )函数即可判断是否存在7。其次是对于有效报数的处理,每次报数分为有效和无效两种情况,无效报数不计入,这就需要我们设置两个变量分别表示报的数以及当前有效报数次数,其中报的数与甲乙丙丁的对应关系较好,直接取模即可。(3)代码实现#include<string>#include<sstream>#include<i

2020-08-02 20:21:25 242

原创 CCF 201912-3化学方程式 (100分)

(1)题目描述(2)算法思想将方程式以等号为界划分为前件与后件以加号为分隔符得到前件与后件的单个化学式得到化学式系数与化学式本身处理化学式括号,对元素进行计数比较前后件元素种类以及个数,种类不同直接输出“N”,否则比较相应元素的个数,若全部相等则输出“Y”。此处实现时的难点在于处理嵌套的括号,我此处采取的是使用栈进行括号匹配,每次得到括号后面的数字,元素下标乘以其即可。(3)代码实现#include<map>#include<stack>#include&

2020-08-02 20:02:41 310

空空如也

空空如也

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

TA关注的人

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