自定义博客皮肤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

越前码农

  • 博客(103)
  • 资源 (4)
  • 收藏
  • 关注

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

试题编号试题名称201809-1卖菜 100201809-2买菜 100201809-3元素选择器 100201809-4[再卖菜]201809-5[线性递推式]201803-1跳一跳 100201803-2碰撞的小球 100201803-3[URL映射 100]201803-4[棋局评估]201803-5...

2018-12-15 00:35:43 959 1

原创 CCF-CSP-202012-2-期末预测之最佳阈值-python100分

方法1:暴力,把每个阈值和m个条目进行判断,计数。只能过70%的用例方法2:统计一个分数预测准确的数量并不需要一个个判断的嘛,小于该分数的,结果要是0才算正确;大于等于该分数的,结果要是1才算正确。所以可先用字典统计每个阈值挂了的(0)和过了的(1)数量,然后按分数大小排序(这一步已经去重复了)。计算阈值正确数的时候,从该阈值开始,往低分处走统计0的数量,往高分处走统计1的数量,最后加一起。每算一个阈值的正确率,就要往高低走统计,这样复杂度也是O(n^2),和暴力没区别。不过稍微改一下,就马上变O(

2021-01-10 22:02:15 1385 5

原创 CCF-CSP-202012-1-期末预测之安全指数

按题目公式算出来n, tot = int(input()), 0for i in range(n): w, score = map(int, input().split()) tot += w * scoreprint(max(0, tot))

2021-01-10 21:06:28 620

原创 CCF-CSP-202006-2-稀疏向量-100

内积意思指两个向量每个维度相乘之和。两维度都非零,相乘才有意义。于是找两个向量都非零的维度相乘相加即可。第一个向量u的键值对存入映射表,第二个向量的键值对就从映射表里找存在的idx,相乘,相加。下面代码都为60分,超时。我改成只读数据的代码,提交后也用2秒多了,怪不得超时。java代码import java.util.HashMap;import java.util.Scanner;public class Main { public static void main(String[]

2020-08-05 21:05:14 826 5

原创 CCF-CSP-202006-1-线性分类器

把点代进公式,求出大于0为一类,小于0为一类,各自存进集合中。最后各自求两个集合的种类数,均为1类的说明两类点被完美分开。python100代码n, m = map(int, input().split())points = []for i in range(n): points.append(input().split())for i in range(m): b, wx, wy = map(int, input().split()) up, down = set(),

2020-08-05 20:07:11 476

原创 约瑟夫问题

约瑟夫问题,也叫约瑟夫环。问题描述: n(编号从0到n-1)个人围成一个圈,从0号人开始数(从1开始数),数到第m个人,这个人淘汰。又从下一个人开始,从1开始数,一直循环淘汰到只剩一人,这个人胜出。求这个人的编号。解法一:模拟这个问题很多人第一眼看到就觉得不是很简单吗,直接模拟就行啊。的确是,用一些列表类型的数据结构模拟一下就很容易做出来了。做法也因人而异。不过这方法只适用于人数和步数很小的...

2020-04-04 02:37:12 2442

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

题目好懂,但是坑多题解:这里用python的字典处理,元素为键,数量为值。所以思路就很清晰,判断等式两边的字典是否相等(很方便,用“==”就可以了)。先分开等式为左右两个表达式,用get_dict()得到各自的字典。再以加号分隔出一个个化学式,用get_part_dict()得到每个部分的字典。重点:1.嵌套,递归就好了;2.还有项会存在同级下有多个括号对的情况,比如Na(OH)(CO3)...

2020-03-05 20:14:02 590

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

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

2020-03-04 23:34:23 281

原创 CCF-201912-1-报数

1234567*891011121314*151617*18…1234123*4123412*341*2…如上1234指代甲乙丙丁大小为4的数组 cnts 用来记录甲乙丙丁跳过的次数,题目n为总共可以报的次数(不包括跳过的数,因为跳过了,没报出来),每报一次 n-1。死循环报数,遇到7的倍数和带7...

2020-03-04 23:18:11 434

原创 煎饼排序

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

2019-12-22 16:24:29 1681

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

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

2019-12-13 10:15:18 391

原创 CCF-201909-3-字符画

这题大家有冷静看过的话,发现其实并不难。。考试和练习真的心态不一样啊。。。题目大意:把图片中的像素压缩成一些块,这个块的像素就是这些像素的平均值,然后再在控制台输入命令。还要把命令的每个字符转成ASCII码,16进制的。# 题目大意:把图片压缩模糊后,再在控制台输出命令# 题目使用空格作为字符作字符画,因为空格是透明的# 所以其实只要改变终端背景色就ok了,就是48;2那个# 所以38...

2019-12-10 01:20:14 652

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

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

2019-12-09 21:00:44 202

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

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

2019-12-09 20:49:15 185

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

最近看了一个很有趣的问题:三门问题具体由来查google百度问题简述:三扇门中选中有汽车的门。三个门后分别有一辆车,两只羊,参赛者一开始从3个门里面选一个门,然后主持人(知道门后情况)把另一个门后是羊的打开,最后只剩两扇未知的门,其中有一扇门后是车,问你要不要换门。答案:要换,换了之后,选中车的概率是2/3,选中羊的概率是1/3。这个问题一开始看了好多解说都觉得好难理解,直到我看了李永...

2019-11-28 16:34:21 1391

原创 CCF-201812-3-CIDR合并

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

2019-09-12 18:48:58 335

原创 CCF-201803-3-URL映射

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

2019-09-08 15:09:03 199

原创 网络流-最大流

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

2019-09-05 20:18:49 311

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

终于做了这道题,看网上说的是要用博弈论的人工智能的算法----对抗搜索,极大极小值算法。这个算法大概意思就是,定义一种得分情况,然后给每个局势定义一个得分,正数表示先手有利的,负数表示后手有利的,每次博弈,找最有利于自己的情况。对于先手来说,每次找所有可下棋位置的分值的最大值,后手就是最小值。这道题来说,深搜递归遍历所有出现的棋局,计算所有棋局的分值。复杂度为 9!,不大,可以直接暴力搜索所有...

2019-09-02 11:22:46 312 1

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

题目大意:用户有多个角色,角色有多个权限,查询某个用户是否有某个权限。权限分有无等级权限和有等级权限,查询时,无论是否带等级,都要先判断权限的存在。有则true,否则false。查询有等级权限时,带有等级的,要判断是否用户该权限的等级是否大于等于查询的等级,是就true,否则false。不带等级的权限查询就返回该权限的等级。细节:用户可能有重复的权限,带等级的重复权限,要更新为最高的等级。...

2019-08-27 11:18:46 216

原创 CCF-201512-4-送货

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

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

原创 欧拉路径-欧拉回路

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

2019-08-23 11:40:01 1148

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

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

2019-08-21 17:21:14 237

原创 强连通分量

概念:强连通:有向图中两个结点如果能两两互相到达,就称这两个点强连通。强连通图:有向图中所有结点都能两两到达,就称强连通图。强连通分量:非强连通的有向图的极大强连通子图,称为强连通分量(SCC即Strongly Connected Componenet)。一个图中可以有多个。强连通分量是一个环或者一个点。求强连通分量一般用 Korasaju算法 和 Tarjan算法。这里我就只记录...

2019-08-21 17:16:26 2357

原创 拓扑排序 python实现

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

2019-07-05 11:18:55 1727

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

这题考动态规划动态规划:由已知的状态推出未知的状态。变化的量有两个:位数,状态数位数为n这题一共有6种状态0 – 0 1 (2) 31 – (0) 1 (2) 32 – 0 1 (2) (3)3 – (0) (1) (2) 34 – (0) 1 (2) (3)5 – (0) (1) (2) (3)代码中的数组 status[ i ][ j ],表示第i位,第j个状态的个数。然...

2019-07-01 15:32:44 197

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

这里记录一下java实现的floyd算法模板。package Graph;public class Floyd { //无穷大 public static int inf = Integer.MAX_VALUE; public static void main(String[] args) { // 图数据 Data [u, v, cost] ...

2019-06-27 17:33:01 638

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

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

2019-06-27 15:56:37 2640

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

Floyd算法用来找每个点两两之间的最短距离(多源最短路径),是典型的动态规划原理很简单:一个点 i 到另一个点 j 的最短路径无非有两种:直接到达( i --> j )通过走其他点(k1, k2 … kn),一个或多个点到达( i --> k1–>k2–> j )所以找最短路就直接 比较 1 和 2 哪条路径更短数据结构:邻接矩阵(n*n) graph, ...

2019-06-26 20:28:13 12324 10

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

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

2019-06-25 20:03:08 4663 7

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

这次第四题竟然是模拟题。。不知道还有没有图论的解法。模拟进程的收发,这里我也才拿了60分,答案错误。讲一下大概思路:每个进程有收发的缓存。不断循环进程,去每个进程的首操作,看对面进程的缓存有没有匹配,有就清空对面的缓存。没有就在当前进程的缓存里加这个操作。然后每次加缓存,总缓存数加一,每次匹配就会减一。最后,总缓存数为0,说明全部匹配完,输出0,非0说明,没有匹配完,死锁输出1。注意每次访问...

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

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

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

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

原创 CCF-201903-1-小中大

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

2019-04-16 14:23:14 613

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

关于并查集的概念和效率,这里不详述,网上一大堆,这里主要记录一下并查集的 python代码实现三步走:1.初始化pre和rangks数组,pre为每个元素的父结点(上一级),ranks为每个元素作为根节点时的树的秩(树的深度),一开始设置pre的每个值为每个元素自己,设置ranks每个值为0.2.find() 查询该元素的首级,顺便做路径压缩3.join() 合并两个集合,按秩合并,秩小的...

2019-04-09 16:29:55 637

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

关于并查集的概念和效率,这里不详述,网上一大堆,这里主要记录一下并查集的 python代码实现三步走:1.初始化pre和rangks数组,pre为每个元素的父结点(上一级),ranks为每个元素作为根节点是的树的秩(树的深度),一开始设置pre的每个值为每个元素自己,设置ranks每个值为0.2.find() 查询该元素的首级,顺便做路径压缩3.join() 合并两个集合,按秩合并,秩小的...

2019-04-09 14:53:08 2601

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

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

2019-04-01 23:14:44 4642

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

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

2019-04-01 21:37:38 3482

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

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

2019-03-30 00:33:49 1915

原创 第十六次CCF认证总结

恶心不解释

2019-03-22 09:15:39 336

原创 第十五次CCF认证总结

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

2019-01-12 16:33:00 1035

Java语言程序设计进阶篇第十版

Java语言程序设计(进阶篇) 原书第10版是Java语言的经典教材,中文版分为基础篇和进阶篇,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、数据结构和算法、高级Java程序设计等内容。本书可作为高等院校相关专业程序设计课程的基础教材,也可作为Java语言及编程爱好者的参考资料。

2018-11-23

破解文件PowerDesigner16.5 pdflm16.dll

破解文件PowerDesigner16.5 pdflm16.dll破解文件PowerDesigner16.5 pdflm16.dll

2017-12-05

Java语言程序设计-进阶篇(原书第8版)

Java语言程序设计:进阶篇(原书第8版)由Y.Daniel Liang所著,是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、算法和数据结构、高级Java程序设计等内容。《Java语言程序设计:进阶篇(原书第8版)》以示例讲解解决问题的技巧,提供大量的程序清单和相应的提示,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学的技术解决实际应用程序开发中遇到的问题。 进阶篇主要介绍数据结构、高级GUI设计、多线程、集合框架、算法效率和排序、MVC以及Java数据库程序设计等方面的内容,循序渐进,可读性强。 Java语言程序设计:进阶篇(原书第8版)可作为高等院校相关专业程序设计课程的教材,对软件开发人员也有很高的参考价值。

2017-11-10

空空如也

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

TA关注的人

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