自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决 Ubuntu22 Alt + Tab 后的滚动错误行为

用 Al t+Tab(切换窗口),从浏览器(chrome)和代码编辑器之间切换时,鼠标滚动会出现问题,它会快速跳到页面的某个地方,要么是在当前滚动位置的下方,要么是在上方。就好像是编辑器的滚动错误的加到了浏览器身上。必须在每次开机时启动它(或者在应用程序中添加它来开机启动)。

2023-02-11 17:09:12 357 1

原创 在 React 中使用 TypeScript 创建组件

在 TypeScript 中不再需要导入 Props 类来限制 props 的类型,而是使用 type 来限制。自定义函数组件 Info 的类型是一个带有泛型的函数,我们需要把 Props 传入到泛型中。并将放进参数列表中,对从父组件接收到的 props 解构赋值。可以利用 TypeScript 的类型推断进一步简化。可以用对 props 设置默认值。设置默认值的方式也可以通过 js 的语法进一步简化。当解构赋值没有从父组件传递过来的 props 上得到age的值时,对其赋默认值。

2023-02-10 17:29:25 572

原创 2020 icpc 昆明 B. Chessboard 有源汇有上下界最小费用可行流 强制满流

给一个n×m(n,m≤50)的二维网格,每个格子可以什么都不放,或者放一个黑色棋子,或者放一个白色棋子。对于每一个格子放黑色/白色棋子都会获得对应的代价。每行以及每列的黑棋个数-白棋个数都分别有各自的[l,r]的限制。求最小代价。

2022-11-01 16:16:54 359

原创 2021 ICPC Southeastern Europe Regional Contest I. Flood Fill 最大点权独立集

给定两个n×m大小的二维网格(n,m≤100),每个格子要么黑色要么白色。两个网格的差异定义为对应位置格子颜色不同的数量。你可以对第一个网格进行任意次操作,每次操作选择一个同色四连通块将其颜色反转(反转后该连通块会与周围同色连通块合并),使得两个网格差异最小。求最小的差异。

2022-11-01 13:37:35 185

原创 【板刷 educational round】Educational Codeforces Round 3 A - F

总结A. USB Flash Drives题意给你一些U盘,每个U盘能存储一定大小的数据,求存储一定大小的数据至少需要多少U盘。思路将U盘从大到小排序,贪心选就是最优的答案。复杂度 O(nlog⁡n)O(n \log n)O(nlogn) 。代码#include <bits/stdc++.h>using namespace std; signed main() { ios::sync_with_stdio(false); cin.tie(0);

2022-04-30 04:14:01 343

原创 【板刷 educational round】Educational Codeforces Round 2 A - F

总结A - Extract Numbers题意给定长度为 10510 ^ 5105 的字符串,逗号和分号将其分为若干字串,判断每个字串是否为整数的形式。思路模拟,复杂度 O(n)O(n)O(n) 。代码import restr = input()lst = re.split('[,;]', str)ans1 = []ans2 = []for s in lst: if s.isdigit() and (s == '0' or s[0] != '0'): a

2022-04-28 03:19:52 319

原创 【板刷 educational round】Educational Codeforces Round 1 A - F

总结A - Tricky Sum题意给定正整数 n(n<=109)n (n<=10^9)n(n<=109),iii 从 111 到 nnn ,如果 iii 为二的整次幂,减去 iii ,否则加上 iii 。思路考虑从 111 加到 nnn ,可以使用等差数列求和公式,再减去其中所有 222 的整次幂的两倍。复杂度 O(T⋅logn)O(T \cdot logn)O(T⋅logn)。代码#include <bits/stdc++.h>using namespace

2022-04-24 15:40:32 612 5

原创 Java数据可视化 (JavaFX, Apache ECharts)

需求定义~, &, ? 三种新运算。a b c = a + b – c& a b c d e = a + b + c – d – e? a b c d = a + b – c + d给定表达式,要求计算结果、解析为正常的算数表达式、构建表达式树并绘制该树形结构。本文章记录如何绘制树形结构。考虑到树中一个结点的孩子最多有五个,不便于使用字符串进行绘制。并且要求不能使用TreeView这种横向的控件,只允许从上至下地绘制,所以使用ECharts中的树状图来解决。思路Java

2022-04-22 00:13:04 5777 3

原创 Qt对话框

模态与非模态对话框创建了模态对话框后不能对其它窗口进行操作,创建非模态对话框后可以对其它窗口进行操作使用exec()函数创建模态对话框,此时代码会阻塞在创建语句知道对话框关闭。使用show()函数创建非模态对话框,代码不会阻塞可以使用setAttribute(Qt::WA_DeleteOnClose)语句设置关闭对话框时销毁避免内存泄露创建模态对话框,可以创建到栈区 connect(ui->actionNew, &QAction::triggered, [=](){

2022-04-21 16:16:59 291

原创 Qt添加资源文件

首先要将所有的资源文件复制到Qt项目路径下,如下图所示。右键点击资源管理器中的项目文件夹,选择Add new,选择Qt中的Qt Resource File。并为该资源文件起名,例如res。右键新添加的res.qrc,为其添加一个前缀,例如一个斜线。再点击Add Files将刚才复制过来的文件选中。若要使用该资源,路径应以冒号开始,并加上完整的路径#include "mainwindow.h"#include "ui_mainwindow.h"#include <QIcon>Mai

2022-04-21 16:13:36 2136

原创 QMainWindow五部分

菜单栏一个QMainWindow中最多包含一个菜单栏。 //创建并设置菜单栏 QMenuBar *bar = this->menuBar(); this->setMenuBar(bar); //创建菜单 QMenu *fileMenu = bar->addMenu("文件"); QMenu *editMenu = bar->addMenu("编辑"); //创建菜单项及分割线 QAction *openAction

2022-04-21 16:12:19 248

原创 Qt信号与槽

自定义的信号与槽自定义信号要写到signals下,只需要声明,不需要重载,返回值为void。在早期版本,需要将槽函数写在public slots下,而在5.4之后,可以将槽函数写在public下或者写在全局下。需要声明与实现,返回void。考虑下面的应用场景:下课后,同学感到饥饿,老师请客吃饭。对于这个问题需要实现Student与Teacher两个实体类,均继承QObject基类以便析构。Student类有hungry这个信号,Teacher类有treat这个槽函数。Widget类中含有Studen

2022-04-21 16:10:20 975

原创 Qt工程文件、命名规范、快捷键、对象树、坐标系

工程文件工程文件指的是后缀名为.pro的文件。尽量不要修改工程文件中的内容,仅在必要情况下进行修改。第一行为Qt包含的模块,下面的工程文件包含了core模块与gui模块。在Qt5及以上版本,Qt Widgets独立出来成为一个新的模块,所以当版本号大于4时,要将该模块包含进来,greaterThan能够增强兼容性。QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# You

2022-04-21 16:03:40 508

原创 创建一个带有关闭按钮的Widget

首先打开QtCreator,文件 –> 新建文件或项目 –> Application(Qt) –> Qt Widgets Application –> Choose 。并在Details中将Base class 选择为 QWidget进行创建,QtCreator会自动生成一套模板。代码的编写主要在Widget类的构造函数中进行。可以通过如下代码声明并构建一个按钮对象。并调用其setParent()与setText()成员函数设置其父亲与按钮的文字内容。 QPushButt

2022-04-21 16:00:50 1076

原创 CodeForces Good Bye 2021: 2022 is NEAR D – Keep the Average High

题意给定 a1,a2,⋯ ,ana_1, a_2, \cdots, a_na1​,a2​,⋯,an​ 共 nnn 个数,以及一个整数 xxx 。要在数组中选择尽量多的数,使得原数组任意一个长度大于 1 的子数组满足以下条件之一至少有一个元素没有被选择al,al+1,⋯ ,ar≥x∗(r−l+1)a_l, a_{l+1}, \cdots , a_r \geq x * (r-l+1)al​,al+1​,⋯,ar​≥x∗(r−l+1)思路观察条件 al,al+1,⋯ ,ar≥x∗(r−l+1)a_

2022-04-21 15:46:24 239 1

原创 2018 ICPC Asia Nakhon Pathom Regional Contest L – Largest Allowed Area

题意给定一个 r 行 c 列的 01 矩阵,求至多包含一个1的正方形子矩阵的最大边长。思路使用前缀和维护矩阵,可以在 O(1)O( 1 )O(1) 的时间计算任意子矩阵中 1 的个数。枚举所有的点,对于点 (i,j)( i , j )(i,j),二分所有以该点为左上角的正方形子矩阵的边长,找到满足条件的最大正方形的边长。总体复杂度为 O(T∗n2logn)O( T * n^2logn )O(T∗n2logn),本道题目卡常,需要用到快读等算法,并对绝对时间进行极致的优化。代码#include

2022-04-21 15:42:16 89

原创 使用WordPress搭建博客

所需材料搭建一个博客,最重要的是三样东西:服务器、域名、内容管理系统。服务器可以理解成一个24小时运作的具有公网ip的电脑,域名通俗来讲就是你的博客的网址,内容管理系统是一个用来管理博客内容的程序。我选择在阿里云购买服务器和域名,选用WordPress作为内容管理系统。服务器和域名是收费的,但好在有学生优惠折扣巨大,WordPress是一款开源免费的软件。服务器和域名进入阿里云官网,选择开发者-成长计划进入到服务器购买的学生优惠界面,按照需求购买轻量级应用服务器,并配置好纯净的CentOS7系统。购买

2022-04-21 15:40:01 537

原创 东北大学新OJ答题界面重新布局脚本

需求最近重新刷起了学校自己的OJ。老版本OJ答题界面是全屏展示的,而新版本左半部分展示题目,右半部分为文本输入框,这样有一些影响阅读。每次做新的题目我都要通过更改前端代码的方式把界面调成图二所示,将文本输入框移动至题目下方,但这样无疑有一些麻烦。为了避免每次都要更改前端代码的麻烦,于是这个脚本诞生了。如果想要直接使用的话按照下一节内容配置即可。在那之后我会简述原理。如何使用Tampermonkey安装Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,它适用于 Chro

2021-09-18 21:35:30 848

原创 组合数算计方法 杨辉三角、阶乘逆元、卢卡斯定理

模板题VJudge: Pink Elephants输入m, n求解Cnm%pC^m_n\%pCnm​%p杨辉三角0≤m≤n≤10000\le m \le n \le 10000≤m≤n≤1000 , 1≤p≤1e91 \le p \le 1e91≤p≤1e9 时使用int dp[250][250];const int p = 1000000007;signed main() {//#ifdef LOCAL freopen("input.txt", "r", stdin);

2021-07-25 10:45:57 133

原创 使用Java实现发送邮件的简单功能

在pom.xml中配置如下依赖,或手动导包<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail --><dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version></depe

2021-07-04 16:56:54 219

原创 Maven项目中JavaMail在Tomcat环境下无法正常发送邮件

在编写JavaWeb项目时,在本地可以正常发送邮件,但运行Tomcat之后就无法正常发送邮件,程序会卡在Transport.send(message);语句中很长时间然后报错。在pom.xml中有如下两个依赖,发生了冲突。删除第二个依赖,只保留第一个,即可正常运行。<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail --><dependency> <groupId>com.sun.mail

2021-07-04 16:49:34 358

转载 由数据范围反推算法复杂度以及算法内容

一般ACM或者笔试题的时间限制是1秒或2秒。在这种情况下,C++代码中的操作次数控制在 10710^7107 ~ 10810^8108 为最佳。下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择:n≤30n≤30n≤30, 指数级别, dfs+剪枝,状态压缩dpn≤100n≤100n≤100 => O(n3)O(n^3)O(n3),floyd,dp,高斯消元n≤1000n≤1000n≤1000 => O(n2)O(n^2)O(n2),O(n2logn)O(n^2logn)

2021-06-28 22:49:31 87

原创 压缩路径的加权并查集 Java实现

import java.util.Arrays;public class UF { private int[] id = null; private int[] sz = null; private int count; UF(int n) { id = new int[n]; sz = new int[n]; for (int i = 0; i < id.length; i++) { id[

2021-05-23 17:41:20 104

原创 归并排序Java实现

递归实现public class MergeSort { private static void merge(Integer[] a, Integer[] aux, int lo, int hi, int mid) { for (int k = lo; k <= hi; k++) aux[k] = a[k]; int i = lo; int j = mid + 1; for (int k = lo;

2021-05-23 17:39:43 55

原创 简单实现动态代理的设计模式

概述Lenovo类实现了SaleComputer接口,有卖电脑和展示两个方法。现在要用动态代理的设计模式将它的实例进行增强。定义接口public interface SaleComputer { String sale(double money); void show();}定义被代理类public class Lenovo implements SaleComputer{ @Override public String sale(double money) {

2021-05-19 10:14:13 53

原创 JavaWeb中的Filter

快速入门@WebFilter("/*")public class FilterTest implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletR

2021-05-16 15:52:08 79

原创 JSTL

概述概念: JavaServer Pages Tag Library JSP标准标签库作用: 用于简化和替换jsp页面上的java代码使用步骤: 导入jar包,引入标签库,使用常用标签ifchoose-when-otherwiseforeach begin:开始值 end:结束值 var:临时变量 step:步长 varStatus:循环状态对象...

2021-05-14 20:05:40 65

原创 EL表达式

概述概念:Expression Language 表达式语言作用:替换和简化jsp页面中java代码的编写语法:${表达式}注意:可以使用反斜杠忽略单个EL表达式使用运算名称符号算术运算符+ - * / % div mod比较运算符> < >= <= == !=逻辑运算符&& || ! and or not空运算符empty获取值EL只能从域对象中获取值语法:${域名称.键名} 或 ${键

2021-05-14 19:19:47 59

原创 JSP

指令格式<%@ 指令名称 属性名=属性值 属性名=属性值 %>分类page:配置JSP页面属性名作用contentType等同于response.setContentType()import导包errorPage当前界面发生异常后,会跳转到指定的页面isErrorPage当前页面是否是错误页面,若是,可以使用内置对象exceptioninclude:页面包含的,导入页面的资源文件<%@include file="top.

2021-05-13 22:44:42 51

原创 JavaWeb中的ServletContext

概念代表整个Web应用,可以和程序的容器(服务器)来通信获取通过request对象获取req.getServletContext();通过HttpServlet获取this.getServletContext();功能根据文件名获取MIME类型String getMimeType(String file)域对象:共享数据(共享所有用户数据)存储数据void setAttribute(String name, Object obj)获取数据Object getAttribut

2021-05-13 20:13:23 106

原创 JavaWeb中的Response

设置响应消息设置响应行设置状态码setStatus(int sc)设置响应头setHeader(String name, String value)设置响应体使用步骤:获取输出流,再使用输出流将数据输出到浏览器客户端字符输出流PrintWriter getWriter()字节输出流ServletOutputStream getOutputStream()实现重定向resp.setStatus(302);resp.setHeader("location", "/test/dem

2021-05-13 19:32:17 80

原创 JavaWeb中的Request

获取请求消息数据获取请求行数据请求行: GET /test/demo?name=zhangsan HTTP/1.1获取请求方式 GETString getMethod()获取虚拟目录 /testString getContextPath()获取Servlet路径 /demoString getServletPath()获取get方式请求参数 name=zhangsanString getQueryString()获取请求URI /test/demoString getRequest

2021-05-13 19:00:47 221

原创 xml快速入门

概述概念Extensible Markup Language 可扩展标记语言功能配置文件在网络中传输与html区别xmlhtml标签自定义标签预定义语法严格语法松散储存数据展示数据语法基本语法后缀名为.xml文档第一行为文档声明<?xml version='1.0' ?>有且仅有一个根标签属性值必须使用单引号或双引号引起来标签必须正确关闭(自闭和或围堵)标签名称区分大小写快速入门<?xml version=

2021-05-13 16:03:17 90

原创 IDEA2021 JavaWeb项目(WebApplication)快速上手 解决无法解析jsp文件、添加框架中没有WebApplication等问题

第一步 选中插件File - Settings - Plugins - Installed在搜索框中搜索Java EE,将搜索出来的所有内容都打上勾,该重启就重启。第二步 新建项目File - new - project 选择最普通的Java项目,然后next这里不打钩,直接next起个名字,点next第三步 添加框架在刚刚创建的项目上右键,选择Add Framework Support选择Web Application,点OK然后就得到了下面这样的目录结构第四步 添加li

2021-05-04 20:51:50 5490 2

原创 MySQL数据库

目录什么是SQLSQL通用语法SQL语句DDL: 库、表操作数据库:CRUDC: Create 创建R: Retrieve 查询U: Update 修改D: Delete 删除使用数据库操作表:CRUDC: Create 创建R: Retrieve 查询U: Update 修改D: Delete 删除DML: 增删表中数据1.添加数据2.删除数据3.修改数据DQl: 查询表中数据1.完整查询2.基础查询3.条件查询约束数据库的设计事物什么是SQLStructured Query Language:结构化

2021-04-18 17:01:30 457

原创 MySQL数据库部署

安装卸载1.到MySQL的安装目录找到my.ini文件,记住datadir 例如C:/ProgramData/MySQL/MySQL Server 5.5/Data/2.卸载MySQL3.删除C:/ProgramData目录下的MySQL文件配置1.计算机右键属性手动配置2.cmd --> services.msc打开服务窗口3.使用管理员身份打开cmdnet start mysql 启动服务net stop mysql 关闭服务登录例如用户名叫做username,密码是pas

2021-04-18 14:38:20 113

原创 东北大学 Java练习 实验2 Using File I/O in the Gourmet Coffee System

需求分析过去的卖咖啡系统将Catalog信息硬编码在程序中,而这次改为了在文件中。要求我们从文件中读取catalog信息并返回一个对象。并能够将catalog信息以三种方式写在文件中。FileCatalogLoader类的实现这个类有三个私有方法和一个公有方法私有方法readxxx作用分别是读取coffee、coffeeBrewer、product公有方法loadCatalog作用是根据文件加载catalog并返回由于每一行是一个完整的产品信息,所以在loadCatalog中逐行读取文件并,每

2021-04-15 10:08:00 2409 8

原创 Java创建匿名线程的方法

其中第二种方式IDEA有自动补全功能。public class Main { public static void main(String[] args) { // method 1 new Thread(){ @Override public void run() { // do something } }.start(); // method

2021-04-11 20:43:50 487

原创 东北大学 Java练习 实验1 Using Design Patterns in the Gourmet Coffee System

需求分析这次实验就是要实现一个功能:在卖咖啡系统上“优美”地输出账单信息。怎么做到“优美”呢?按照文档中给出的三种格式(纯文本,HTML,XML)进行格式化,然后输出。当然,是否学过HTML与XML对这个实验基本不影响,会照猫画虎就行。策略模式(strategy pattern)都是格式化,但又有三种不同的格式化的方法,这个要怎么实现呢?我们可以在同一个类中写出三种不同的方法,也就是硬编码(Hard Coding),然后通过case或if进行选择。如果大型项目这样做的话代码繁杂、维护困难。为了避免

2021-04-10 17:15:38 1610 4

原创 东北大学 Java练习 作业2 Implementing the Collections in the Gourmet Coffee System

前言项目文档、测试文件、源码都在我的主页上,可以下载。chenjinsui.xyz我以前的主页出错了。最近很忙,没时间修,随意放了一个很丑的界面,见谅。写这个博客目的有二,一是为了让我自己更好地复盘,巩固新学的知识,二是为了和其他同行进行交流探讨。所以就不要为了完成作业copy我的代码。和上次作业相比,增加了类注释和方法注释(虽然大部分是从文档上copy下来的)。需求分析上次作业已经完成了Coffee类、CoffeeBrewer类、Product类、OrderItem类。这次作业要完成一个完整的

2021-04-08 20:00:44 2068 5

空空如也

空空如也

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

TA关注的人

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