自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Aiven

越前码农

原创 CCF-CSP-历年试题目录

试题编号 试题名称 201809-1 卖菜 100 201809-2 买菜 100 201809-3 元素选择器 100 201809-4 [再卖菜] 201809-5 [线性递推式] 201803-1 跳一跳 100 201803-2 碰撞的小球 100 20...

2018-12-15 00:35:43 607 0

原创 约瑟夫问题

约瑟夫问题,也叫约瑟夫环。 问题描述: n(编号从0到n-1)个人围成一个圈,从0号人开始数(从1开始数),数到第m个人,这个人淘汰。又从下一个人开始,从1开始数,一直循环淘汰到只剩一人,这个人胜出。求这个人的编号。 解法一:模拟 这个问题很多人第一眼看到就觉得不是很简单吗,直接模拟就行啊。的确是...

2020-04-04 02:37:12 56 0

原创 CCF-201912-3-化学方程式

题目好懂,但是坑多 题解: 这里用python的字典处理,元素为键,数量为值。所以思路就很清晰,判断等式两边的字典是否相等(很方便,用“==”就可以了)。先分开等式为左右两个表达式,用get_dict()得到各自的字典。再以加号分隔出一个个化学式,用get_part_dict()得到每个部分的字典...

2020-03-05 20:14:02 151 0

原创 CCF-201912-2-回收站选址

有n处垃圾,在这n处建回收厂,且上下左右都有垃圾才能被选上。 为选上的地点评分,4个斜角,一个斜角有垃圾加一分。一共5种分值:0,1,2,3,4。最后得到一个分值,对应分值的个数加一,最后输出每个分值各有多少个选址。 流程: 遍历每个地点,评分s1,能选作回收站的接着评分s2。 提示: 2种方向:...

2020-03-04 23:34:23 83 0

原创 CCF-201912-1-报数

1 2 3 4 5 6 7* 8 9 10 11 12 13 14* 15 16 17* 18 … 1 2 3 4 1 2 3* 4 1 2 3 4 1 2* 3 4 1* 2 … 如上 1234指代甲乙丙丁 大小为4的数组 cnts 用来记录甲乙丙丁跳过的次数,题目n为总共可以报的次...

2020-03-04 23:18:11 97 0

原创 煎饼排序

煎饼排序指的是将大小不同的一摞煎饼(一个煎饼放在另一个煎饼上堆起来),按大小排序的数学问题,其中的操作是,只能用煎饼铲子从任意位置插入,铲起上方全部煎饼并翻面。学术化一点,就是只能把插入位置之前的数组翻转的排序方法–“前序翻转排序”。 这个问题我也是偶然看到知乎上讨论比尔盖茨的话题中了解到的。说他...

2019-12-22 16:24:29 129 0

原创 CCF-201909-4-推荐系统

这题也是模拟题,近两次的第四题竟然都是模拟题。 题目大意: 开始有m类商品,每类n个,然后进行增,删,查操作,输出查操作的结果。 思路: 因为相同类的不同商品之间的编号不相同,相同编号的商品类不相同。所以每个商品的标号(类号+编号)一定唯一的。我用映射表(python叫字典)来存数据,格式——标号...

2019-12-13 10:15:18 127 0

原创 CCF-201909-3-字符画

这题大家有冷静看过的话,发现其实并不难。。考试和练习真的心态不一样啊。。。 题目大意: 把图片中的像素压缩成一些块,这个块的像素就是这些像素的平均值,然后再在控制台输入命令。还要把命令的每个字符转成ASCII码,16进制的。 # 题目大意:把图片压缩模糊后,再在控制台输出命令 # 题目使用空格作为...

2019-12-10 01:20:14 200 0

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

小模拟 注意:连续三棵树掉落为一组,E是这种情况的组数。注意树是围成一圈的,所以E的最大值为树的棵数(全部都有掉落)。找相连三棵掉落的办法很简单,从一棵树开始看后面两棵树是不是也掉落,同时注意树的下标要取余。 n = int(input()) total, E = 0, 0 if_drop = [...

2019-12-09 21:00:44 55 0

原创 CCF-201909-1-小明种苹果

n, m = map(int, input().split()) t, k, p = 0, 0, 0 for i in range(n): ip = [int(e) for e in input().split()] total = ip[0] dropnum = abs(...

2019-12-09 20:49:15 50 0

原创 三门问题详解+python模拟

最近看了一个很有趣的问题:三门问题 具体由来查google百度 问题简述: 三扇门中选中有汽车的门。三个门后分别有一辆车,两只羊,参赛者一开始从3个门里面选一个门,然后主持人(知道门后情况)把另一个门后是羊的打开,最后只剩两扇未知的门,其中有一扇门后是车,问你要不要换门。 答案: 要换,换了之后,...

2019-11-28 16:34:21 165 0

原创 CCF-201812-3-CIDR合并

这题看起来很可怕,考证的时候望而却步。过了好久,直到现在才做题。仔细研究下,发现原来不难,真的是心态爆炸了。 题目中的概念:(其实静下心来看,题目很好理解的。。可能是考试时心态崩了。。。) ipv4地址:一共32位,分为4个十进制数表示。 ip前缀:<(ip地址) / (约掉后面的0之后ip...

2019-09-12 18:48:58 110 0

原创 CCF-201803-3-URL映射

这题题目说的不够细,url后面有‘/’的只能和后面也有‘/’的规则匹配。例如url:/abc/def/ 和 规则:/abc/def 是不能匹配的。然后后面没有‘/’的url只能和后面没有‘/’的规则匹配(path与有结束的url匹配)。以前不懂,现在才想到这个地方,修改下代码就终于100了。 py...

2019-09-08 15:09:03 61 0

原创 网络流-最大流

最大流问题: 源点source(S点)开始源源不断的通过中间的一些管道流到槽点sink(T点),求最后T点最大有多少流量。 常用的算法是增广路算法,通过不同的找增广路的方法会有不一样的复杂度,也分别为不同叫法,一般用dfs找增广路的算法叫 FF(Ford-Fulkerson)算法,用bfs的叫EK...

2019-09-05 20:18:49 38 0

原创 CCF-201803-4-棋局评估

终于做了这道题,看网上说的是要用博弈论的人工智能的算法----对抗搜索,极大极小值算法。 这个算法大概意思就是,定义一种得分情况,然后给每个局势定义一个得分,正数表示先手有利的,负数表示后手有利的,每次博弈,找最有利于自己的情况。对于先手来说,每次找所有可下棋位置的分值的最大值,后手就是最小值。 ...

2019-09-02 11:22:46 74 0

原创 CCF-201612-3-权限查询

题目大意: 用户有多个角色,角色有多个权限,查询某个用户是否有某个权限。 权限分有无等级权限和有等级权限,查询时,无论是否带等级,都要先判断权限的存在。有则true,否则false。查询有等级权限时,带有等级的,要判断是否用户该权限的等级是否大于等于查询的等级,是就true,否则false。不带等...

2019-08-27 11:18:46 66 0

原创 CCF-201512-4-送货

明显一笔画问题,求欧拉路径,就是不知道为什么不能100,我用网上的几个大神的代码都没100,都是运行错误(RE)。估计是ccf那边的问题。 python 代码: import sys sys.setrecursionlimit(10 ** 6) def dfs(u): for v i...

2019-08-23 16:51:55 54 2

原创 欧拉路径-欧拉回路

概念: 欧拉路径:经过图中所有的边一次(一笔画)是欧拉路径 欧拉回路:经过图中所有的边一次,并回到起点,是欧拉回路。 欧拉图:存在欧拉回路的图就是欧拉图 欧拉回路是欧拉路径,欧拉路径不一定是欧拉回路。 半欧拉图:只有欧拉路径(非回路)的图是半欧拉图。 判断一个无向图和有向图是否有欧拉路径和欧拉回路...

2019-08-23 11:40:01 228 0

原创 CCF-201509-4-高速公路

这题很明显是要找强连通分量,找到图中所有的强连通分量,并计算每个分量的城市对数相加得出答案。计算城市对的方法为:强连通分量的结点数 * (强连通分量的结点-1)/ 2 python代码: import sys sys.setrecursionlimit(10 ** 7) def tarjan...

2019-08-21 17:21:14 71 0

原创 强连通分量

概念: 强连通:有向图中两个结点如果能两两互相到达,就称这两个点强连通。 强连通图:有向图中所有结点都能两两到达,就称强连通图。 强连通分量:非强连通的有向图的极大强连通子图,称为强连通分量(SCC即Strongly Connected Componenet)。一个图中可以有多个。 强连通分量是...

2019-08-21 17:16:26 539 0

原创 拓扑排序 python实现

拓扑排序是指在有向无环图中,把所有结点按照一定的排序排成一列,使得左边的点都指向右边的点。 一般有两种方法做拓扑排序 1.Kahn算法 用一个一维数组存每个结点的入度。用一个数据结构(随意都可以,数组,栈,列表等等)存储所有入度为0的结点。每次从入度为0的结点出发,记录路径,删除该结点,把该结点指...

2019-07-05 11:18:55 587 0

原创 CCF-201312-4-有趣的数

这题考动态规划 动态规划:由已知的状态推出未知的状态。 变化的量有两个:位数,状态数 位数为n 这题一共有6种状态 0 – 0 1 (2) 3 1 – (0) 1 (2) 3 2 – 0 1 (2) (3) 3 – (0) (1) (2) 3 4 – (0) 1 (2) (3) 5 – (0) (...

2019-07-01 15:32:44 63 0

原创 floyd算法(多源最短路径) Java实现

这里记录一下java实现的floyd算法模板。 package Graph; public class Floyd { //无穷大 public static int inf = Integer.MAX_VALUE; public static void main(St...

2019-06-27 17:33:01 280 0

原创 kruskal算法(最小生成树) Java实现

kruskal(克鲁斯卡尔)的思路很简单,自行google。 Java的kruskal实现起来有点麻烦,主要是边排序那里,我自己写了个MyEdge类继承comparable,然后再用Collections.sort()。。。用习惯了python,觉得java好啰嗦,实现一个想法要好久好绕。 pac...

2019-06-27 15:56:37 896 0

原创 floyd算法(多源最短路径) python实现

Floyd算法用来找每个点两两之间的最短距离(多源最短路径),是典型的动态规划 原理很简单: 一个点 i 到另一个点 j 的最短路径无非有两种: 直接到达( i --> j ) 通过走其他点(k1, k2 … kn),一个或多个点到达( i --> k1–>k2–> j ...

2019-06-26 20:28:13 1734 2

原创 kruskal算法(最小生成树) python实现

kruskal的思路很直观,边按权值从小到大排序,然后从小到大选不会构成回路的边,构成生成树。(选两点不在同一个连通分量里面的边) 构建并查集,用并查集判断是否构成回路(是否在同一个分量里面)(两个连通分量如果根结点相同,两点连接就会构成回路) python代码: def find(x, pres...

2019-06-25 20:03:08 1038 0

原创 CCF-201903-4-消息传递接口

这次第四题竟然是模拟题。。不知道还有没有图论的解法。 模拟进程的收发,这里我也才拿了60分,答案错误。 讲一下大概思路: 每个进程有收发的缓存。不断循环进程,去每个进程的首操作,看对面进程的缓存有没有匹配,有就清空对面的缓存。没有就在当前进程的缓存里加这个操作。然后每次加缓存,总缓存数加一,每次匹...

2019-04-16 22:17:47 1409 7

原创 CCF-201903-2-二十四点

模拟二十四点游戏,本质就是让你求中缀表达式。 我这里用栈解题,两个栈,一个数字栈,一个操作符栈。 读取到表达式后,顺序读取字符, 遇到操作符压进操作符栈, 遇到数字,看前一个操作是否是乘除,是就弹出前一个数字和前一个操作符,前一个数字和当前数字计算完后再压回数字栈。注意,因为第一个数字前面没有操作...

2019-04-16 15:22:11 1100 1

原创 CCF-201903-1-小中大

这题的用例在考试的时候是错的,当时还觉得很奇怪,试题页面黄色的内容是修改后的。 因为数列是有序的(升序或者降序),直接提取首尾的数字即可,然后再计算中位数。这三个数按降序排序后输出。 python代码 n = int(input()) nums = [int(e) for e in input()...

2019-04-16 14:23:14 452 0

原创 并查集_Java实现(模板)

关于并查集的概念和效率,这里不详述,网上一大堆,这里主要记录一下并查集的 python代码实现 三步走: 1.初始化pre和rangks数组,pre为每个元素的父结点(上一级),ranks为每个元素作为根节点时的树的秩(树的深度),一开始设置pre的每个值为每个元素自己,设置ranks每个值为0....

2019-04-09 16:29:55 319 0

原创 并查集_python实现(模板)

关于并查集的概念和效率,这里不详述,网上一大堆,这里主要记录一下并查集的 python代码实现 三步走: 1.初始化pre和rangks数组,pre为每个元素的父结点(上一级),ranks为每个元素作为根节点是的树的秩(树的深度),一开始设置pre的每个值为每个元素自己,设置ranks每个值为0....

2019-04-09 14:53:08 1420 0

原创 动态规划_01背包问题(python实现)(python模板)

0-1背包问题:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。 这里记录下python的模板 def dp(weight, count, weights, costs): """ 动态规划模板,时...

2019-04-01 23:14:44 1809 0

原创 动态规划_01背包问题(Java实现)(Java模板)

动态规划有很多问题 百度百科: " 动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。 举例: 线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等; 区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等; 树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形...

2019-04-01 21:37:38 2001 0

原创 dijkstra算法(单源最短路径) Java实现

用例图: 用ArrayList实现的邻接表图,每个结点有个动态列表记录这个结点的邻边数据Edge包括(指向的下一个结点,边权)基于此图写了一个dijk算法。 dijk的主要流程: 花销表int[] costs:记录从源点到各花销的最短路径。 访问表boolean[] vis:表示哪些结点可以走。...

2019-03-30 00:33:49 929 0

原创 第十六次CCF认证总结

恶心不解释

2019-03-22 09:15:39 139 0

原创 第十五次CCF认证总结

这一次ccf,准备了挺多,但是还不够完全。首先,有进步了,图论基础知识点学了一些,这次就用上了,但是还有很多知识点要学,毕竟上几次都有出现新知识点。第三题这次没写,也是有点遗憾,但是也说明自己没有好好训练好第三题这种字符串大模拟。这一次第二题没拿满分,也算是预料中吧,因为平时自己做题的也不敢保证第...

2019-01-12 16:33:00 705 0

原创 CCF-201812-4-数据中心

题目大意: 题目要我们找出最优树结构(传输时间最短的生成树),输出最优树结构的传输时间 首先来讲讲树结构的传输时间 如下图,这棵树有4层(深度为4),找出每层的最大边T(h),然后在这些最大边里面再找最大边T(max),说到底就是这棵树的最大边嘛。。。。。。。。。。 思路: 那么最优树结构(传输...

2019-01-12 15:59:53 2624 4

原创 CCF-201812-2-小明放学

题目大意: 这题和第一题的区别在于,小明事先得知路况(路口通过时间和交通灯数据),走之前预测估算走多少时间,不再是第一题那样走多少记多少。 思路: 由于没有亲自去走,所以需要模拟人去走,得到走的总时间,遇到交通灯的时候,通过总时间和交通灯一开始的情况推算出现在交通灯情况,然后就可以像第一题那样做了...

2019-01-12 14:33:24 1344 0

原创 CCF-201812-1-小明上学

题目大意: 小明上学,遇到路口通过,会有一段时间 t 秒;遇到交通灯,当时的交通灯剩 t 秒,红灯黄灯停,绿灯行。最后要我们算小明上学一共花了多少时间。 思路: 小明走一步算一步,遇到路口(0),总时间加 t,遇到红灯总时间加t,遇到黄灯总时间加 t 再加 红灯时长(r),遇到绿灯通过,不加时间。...

2019-01-12 13:55:56 734 0

原创 基于二维矩阵的深搜(dfs)和广搜(bfs)python实现

该二维矩阵不是邻接矩阵,每个结点只和上下左右4个方向的结点有连接。 def bfs(start, matrix): """广搜""" n = len(matrix) queue = [] queue.app...

2018-12-14 20:30:51 864 0

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