- 博客(20)
- 收藏
- 关注
原创 CSP认证:URL映射
问题描述大致思路可以从问题的要求与输出样式逆向出发:一共有m个询问,对于每个询问需要输出对应的结果:对应匹配URL的名字、对应参数。结果是一个string集合,长度不固定,则可以考虑使用vector<string>的类型来存储每个询问的答案。那么如何根据输入的询问,来求出对应的答案呢?——通过之前输入的n条URL的路径模式与询问进行一一匹配,判断是否完全符合,若完全符合则返回答案(vector<string>),若不符合则判断下一条,若没有一条符合则输出“404”。那么如何
2021-09-06 23:36:16
374
原创 CSP认证:棋局评估
问题描述大致思路:博弈论(最大最小搜索)+ DFSA与B都以最优策略行棋,即两方都走自己胜率尽可能大的方案。对于A来说,当A行棋时,选择所有可行方案中A最大得分的那一种方案;而当B行棋时,选择的是B最大得分,即A最小得分的那一种方案。按照此规律模拟行棋的过程,dfs搜索所有可行方案,得到“最坏情况下的最好结果”,即答案。OK~上代码#include <iostream>#include <cstring>#include <algorithm>using
2021-09-05 21:09:00
948
原创 CSP认证:行车路线
问题描述大致思路: 最短路+拆点显然,本题是一道与图论当中最短路有关的问题,因此考虑使用SPFA / dijkstra等算法。观察本题数据规模和约定,部分测试数据不存在小道,就转化为了经典的最短路模板题,直接背模板就好了。对于还有一部分测试数据“所有小道不相交”,则分开讨论大小道:表示若当前边为大道,边权=当前边疲惫度;若当前边为小道,则边权=当前边疲惫度的平方,从而又转化为了最短路模板题。这样就可以拿到80分~#include <iostream>#include <cs
2021-09-05 20:36:14
593
原创 CSP认证:地铁修建
题目描述201703-4 地铁修建大致题意:求无向图中从结点1走到结点n所经过的路径边数不超过n的路径中边权最大值的最小值。大致思路: 二分 + BFS二分假设题目最终的答案的值为ans(0<ans<=1000000),在数轴上表示如下图,二分的依据则是,只利用边权小于等于当前mid值的边,且边数不能超过n,是否能从结点1走到结点n。那如何判断在这些限制条件下,能否从结点1走到结点n呢?就可以使用BFS来解决。BFSBFS拥有最短路性质,即第一次经过该点的路径是从起点到该
2021-08-30 21:50:06
382
原创 CSP认证:Markdown
问题描述:大致思路:OK~上代码:#include <iostream>#include <cstring>#include <algorithm>using namespace std;void get_link(string str){ string text="",link=""; int i; for(i=1;str[i]!=']';i++){//处理text char c=str[i];
2021-08-30 20:40:46
5519
原创 CSP认证:压缩编码
问题描述:201612-4压缩编码大概题意:a1, a2, a3…an(按字典序排列)共n个单词出现频率不同,给每个单词使用01串实现前缀编码(有点像哈夫曼编码,但不完全是),寻求一种编码方案,使得单词频率与编码长度的乘积之和最小,并求出最小值是多少。注意:需要维护单词的字典序大概思路:阅读题时非常容易想到哈夫曼编码,但这道题与哈夫曼编码的不同点在于:哈夫曼编码是每次选取当前的最小值与次最小值进行合并,因此会有排序操作,不关心原序列的顺序;但本题需要维护单词的字典序,因此不能直接使用贪心的方
2021-08-30 01:27:03
298
原创 CSP认证:权限查询
问题描述:201612-3权限查询大概题意:权限:有不分等级权限与分等级权限。分等级权限给出最高权限。角色:具有多个权限用户:具有多个角色,角色之间的权限有可能重复,分等级权限取最高等级。有q个询问:给出用户和对应权限,判断该用户是否有对应权限,若是分等级权限,则给出该用户拥有的最高等级。大致思路:按题目要求,根据输入处理权限、角色和用户。我们需要根据用户查找到角色,再根据角色查找对应的权限。询问是判断用户与权限的关系。因此,在处理用户的时候,不存储对应的角色,而是参照输入的角色名,
2021-08-29 23:18:15
362
原创 Java:小型聊天室系统 个人设计分析总结(二)
实现文件传输的功能在上一版本的基础上需要解决的问题:服务器端与接收消息的线程如何判断消息中是否含有文件?以及如何区别是文本消息还是文件消息?文件如何用流的形式进行传输?接收消息的客户端如何存储收到的文件?思考过程示意图(画的有一丢丢的草率????)发消息/文件的过程客户x有可能发送消息也有可能是发送文件,就需要判断,我采用的是方法调用与区分接收消息对象和消息内容同样的方...
2019-12-17 18:01:12
725
1
原创 Java:小型聊天室系统 个人设计分析总结(一)
设计要求:在课本第15章Java网络通信例15.3、15.4的基础上,编写完成以下功能的小型Java聊天室系统。多客户端模式下,实现客户与客户的单独通信,要求信息通过服务器中转。端到端的通信,实现并行模式实现端到端的文件传输。多客户的单独通信改进思路:多客户的情况下实现客户与客户之间的通信,关键在于服务器端与客户端连接时,获取到不同的与客户端一一对应的socket套接字需要在服务器...
2019-12-12 09:25:05
1536
1
原创 Java学习:线程课后题整理
1. 线程和进程的联系与区别是什么?联系:一个进程内可以包含多个线程,并且可以几乎同时运行不同的线程。区别:线程是程序执行中的单个顺序流程,进程就是执行中的一个程序。同类的多个线程共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。2. 什么是前台线程,什么是后台线程?main()函数即主函数,是一个前台线程,前台进程是程序中必须执...
2019-11-02 22:15:57
199
原创 Java学习:Java常用类库与工具
3.String类型有什么特点?一旦赋值,便不能更改其指向的字符对象如果更改,则会指向一个新的字符对象不能为null4.String什么时候进行值比较,什么时候进行引用比较?stringA.equals(stringB);进行值比较stringA==stringB;进行引用比较5.String与StringBuffer的区别是什么?如何相互转化?StringBuffer是一个具...
2019-10-15 22:54:32
184
原创 Java学习:异常课后题整理
1.“程序中凡是可能出现异常的地方必须进行捕获或拋出”,这句话对吗?不对。异常分两类,runtime异常和非runtime异常。runtime异常,比如NullPointException等,这一类你不在程序里面进行try/catch,编译不会出错。非runtime异常,比如SqlException等或自定义的exception,这一类在程序里不进行try/catch或throws,编译...
2019-10-15 22:50:25
212
原创 个人银行账户系统:从C++到Java和面向对象的代码重构(下)
5. 8_8版本package bank8_8;import java.lang.reflect.Array;import java.io.IOException;import java.util.*;class Date { // 日期类 private int year; // 年 private int month; // 月 private int day; // ...
2019-10-15 20:22:16
209
原创 个人银行账户系统:从C++到Java和面向对象的代码重构(上)
1.版本4_9package bank4_9;class SavingsAccount { private int id; private double balance; private double rate; private int lastDate; private double accumulation; SavingsAccount(int date, int id,...
2019-10-15 19:48:46
313
1
原创 Java学习:面向对象(下)课后题整理
1. this和super各有几种用法?普通的直接引用,this指向当前对象;形参与成员名字重名,用 this 来区分;子类和父类中的成员重名,使用 super;引用构造函数。2. 子类对象实例化的具体过程是什么?先调用父类的构造函数,再调用自己的构造函数。3.类的域变量和方法定义的局部变量在初始化上有什么区别?类的域变量在类实例化的时候进行初始化,方法中的局部变量在方法内部显式初...
2019-10-08 22:15:42
185
原创 Java学习:面向对象(中)课后题整理
1.面向对象的主要特征是什么?继承,封装,多态。2.封装是如何实现的?封装就是利用抽象数据类型(类)将数据和基于数据的操作绑定在一起,数据被保存在抽象数据类型内部,系统只有通过被授权的操作方法才能够访问数据。1). 私有化成员变量,使用private关键字修饰;2). 提供公有的get和set方法,在方法体中进行合理值的判断,使用public关键字修饰;3). 在构造方法中使用set方...
2019-09-24 23:13:10
173
原创 Java学习:面向对象(上)课后题整理
1.名词解释:构造方法、抽象构造方法:是一个与类名相同的类方法。每当使用new关键字创建一个对象,为新建对象开辟内存空间后,Java系统将自动调用构造方法初始化这个新建对象,它不能通过对象引用来调用。它只属于类,不属于任何一个对象。定义时,构造方法没有返回类型;它具有多态性,可以被重载(参数不同)。如果用户没有在自定义类中定义构造方法,系统将为该类添加一个默认的空构造方法。抽象:从被研究对象中...
2019-09-23 19:39:50
222
原创 Java学习:浅谈对象的创建,对象与对象引用
众所周知,Java对象的创建,通常使用new操作符来实现这一目的。new关键字的意思是“给我一个新的对象”。而创建的过程是怎样的,以下面的实例说明。在此之前,我们首先要了解内存是怎么分配的,即我们创建的对象是怎么放置安排的。这对理解一个对象是如何创建的有很大帮助。有五个不同的地方可以存储数据:寄存器、堆栈、堆、常量存储和非RAM存储。堆栈:对象引用就存储与堆栈中。栈:用于存放所有的Java对...
2019-09-15 13:41:27
583
原创 Java学习:System, Integer和Math类
本文以Integer, System和Math类为例,重点分析类的用途、特点和常用方法,详细请见:JDK API官方文档- Integer类Integer类包装一个对象中的原始类型int的值。 类型为Integer的对象包含一个单一字段,其类型为int 。此外,该类还提供了一些将int转换为String和String转换为int ,以及在处理int时有用的其他常量和方法。而在实际应用中,就会...
2019-09-08 19:41:00
428
原创 我对Java平台的理解
大二开始。我终于接触到久仰大名的Java。分享一篇写的很可爱的C与Java的文章:C老头和Java小子的硬盘夜话 一点理解虽然还没有深入学习Java,但是之前有学过C/C++,小部分内容看不懂也不影响。首先,知道了Java虚拟机这个看起来就很厉害的东西。没错它真的很厉害,它可以屏蔽操作系统的相关信息使程序有很强的可移植性,同一个程序可以实现"write once,run anywher...
2019-09-05 20:34:22
194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人