自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【项目推广】参考 C++ STL 实现的 javscript 标准数据结构库

一款参考C++STL的javascript标准数据结构库,内含使用RB-tree实现的Set,Map以及哈希表等多种数据结构,拥有极度完整的单元测试和性能测试以及完整的api文档

2022-07-25 12:54:53 375 1

原创 Part2.1 字符串算法-哈希和哈希表

Part2.1 字符串算法-哈希和哈希表字符串哈希算法字符串的一般哈希函数为 f(s)=∑i=1∣s∣si×bi mod Mf(s)=\sum_{i=1}^{|s|}s_i \times b^{i} \bmod Mf(s)=∑i=1∣s∣​si​×bimodM显然上述函数的求解时 O(n)O(n)O(n) 的,并且实现效率低下若要多次询问一个字符串 sss 的子串哈希值,该算法显然无法满足要求,我们期望能够在 O(1)O(1)O(1) 时间算出 f(sl...r)=∑i=0r−lsi+l×bi mo

2021-01-12 00:43:51 181

原创 Part1.2 基础算法-二分与三分

Part1.2 基础算法-二分与三分A. 愤怒的牛问题描述需要在 nnn 个点中选取 mmm 个放置牛,问你所有放置方法中任意两头牛的最大的最小距离是多少解题思路很容易想到该距离的上限是 maxi=1nXi−mini=1nXimax_{i=1}^{n}X_{i}-min_{i=1}^{n}X_{i}maxi=1n​Xi​−mini=1n​Xi​,其下限为 0,那么我们可以二分这个答案假设当前枚举的答案为 xxx,当前已将插入了 i−1i - 1i−1 头牛,那么下一头牛的位置 XiX_{i}Xi

2021-01-08 00:06:41 185 1

原创 Part1.1 基础算法-贪心算法

Part1.1 基础算法-贪心算法A. 活动安排问题描述给定 nnn 个区间 [l,r][l, r][l,r],你需要选出 mmm 个区间使其互不相交,问你 mmm 的最大值是多少解题思路考虑当前已经按照顺序选择了 i−1i - 1i−1 个互不相交的区间,当前需要添加第 iii 个与 i−1i - 1i−1 不相交的区间显然 Li≥Ri−1L_{i} \geq R_{i-1}Li​≥Ri−1​,那么我需要使得后续的队列尽可能的长,由于 LiL_{i}Li​ 范围固定,显然需要使得 RiR_{i

2021-01-07 00:37:35 210

原创 基于交换论证的 Johnson 法则证明

问题描述某工厂有 nnn 件物品需要进行加工,并且每件物品都需要先在 AAA 工厂加工 aia_iai​ 分钟,然后在 BBB 工厂加工 bib_ibi​分钟,AAA,BBB 工厂每次分别只能加工一件物品,问你最少需要多少时间能够加工完全部 nnn 件物品交换论证假设有 nnn 件待完成事件,当前完成了 kkk 件,所花时间为 TTT,设当前先完成 iii 事件再完成 jjj 事件的总时间代价为 T+Ti,jT + T_{i,j}T+Ti,j​,先完成 jjj 事件再完成 iii 事件的总时间代价为

2021-01-02 04:05:07 504

原创 2019ICPC南昌邀请赛题解

The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming ContestB. PolynomialDescription定义 fi=∑i=0naixif_i=\sum_{i=0}^{n}a_ix^{i}fi​=∑i=0n​ai​xi,然后给定f1f_{1}f1​ ~ fnf_{n}fn​,现在给出 mmm 次询问,每次询问给定 LLL 和 RRR,问你 ∑i=LRfi\sum_{

2020-12-11 01:58:24 525

原创 Codeforces Round #686 (Div. 3) 解题报告

Codeforces Round #686 (Div. 3)A. Special PermutationDescription让你输出111 ~ nnn的一个排列aaa,并满足∀i∈[1,n],ai≠i\forall i \in [1, n], a_i \neq i∀i∈[1,n],ai​​=iTutorial如果nnn为偶数直接倒序输出即可,否则将中间的数字与开头或结尾进行交换Solution#include <bits/stdc++.h>using namespace st

2020-11-25 19:02:34 1157

原创 Web前端学习笔记

Web前端开发笔记1. 格式或命名问题javascript 代码如果访问了页面中的元素需要将 script 代码放至最后,因为此时为页面还没有完全加载,获取元素有可能会失败css 引入格式如下:<link type="text/css" src="">向元素中添加事件时(如 button 中的点击时间),函数名不能与 window 中的自带函数重复,不然会导致函数不执行或其他错误,如:<input type="button" value="清空" onclick=

2020-10-22 00:45:10 376 1

原创 2017ccpc秦皇岛解题报告

C - Crusaders Quest题目大意给你999个字母,其中有333个aaa,333个ggg和333个ooo,你每次可以将相同且相邻的111~333个字母消去,问你消去连续相同且相邻的三个字母的次数最大是多少Sample Input7gggaaaoooaaoogggoagooggaaaoagogaooaggoooggaaagogogoaaagaogaogaoSample Output3321321解题思路考虑消去的字母的先后顺序为A33=6A_{3}^{

2020-10-09 15:21:09 389

原创 Codeforces Round #665 (Div. 2)解题报告

Codeforces Round #665 (Div. 2)A - Distance and Axis题目大意给定横轴OXOXOX,其中AAA点坐标为xxx,每次你可以使得x−1x-1x−1或x+1x+1x+1,问你操作多少次后满足条件的点BBB存在,其中:∣OB−AB∣=k|OB - AB| = k∣OB−AB∣=k解题思路假设BBB点坐标为yyy,最终AAA点坐标为nnn,则:y<ny < ny<n∣y−(n−y)∣=k⇒n=2y±k|y - (n - y)|=k \

2020-10-07 11:41:24 108

原创 2020CCPC网络选拔赛题解

Before题目链接榜单排名和队号一样1002 Graph Theory Class题目大意定义一个完全无向图G=(V,E)G=(V,E)G=(V,E)的边权Wi,j=lcm(i+1,j+1)W_{i,j}=lcm(i+1,j+1)Wi,j​=lcm(i+1,j+1),问你当∣V∣=n|V|=n∣V∣=n该图的最小生成树权值模上kkk为多少数据范围1≤n≤10101 \leq n \leq 10^{10}1≤n≤1010, 108≤k≤10910^{8} \leq k \leq 10^{9

2020-09-21 20:15:32 1715

原创 Educational Codeforces Round 95 (Rated for Div. 2)解题报告

Educational Codeforces Round 95 (Rated for Div. 2)A. Buying Torches题目大意111根棍子能换xxx根棍子,yyy根棍子能换一份煤,111根棍子和111份煤能组成一根火柴,初始时你只有一根棍子,问你最少最多少次交换可以获得kkk根火柴解题思路根据题目意思,我们至少要有kkk块煤,那么就需要kykyky根棍子,还需要另外的kkk根棍子与其组成kkk根火柴,设aaa为用棍子换棍子的次数,bbb表示用棍子换煤块的次数,则有:a(x−1)+

2020-09-15 17:58:53 179 2

原创 Codeforces Round #661(Div. 3)解题报告

Codeforces Round #661(Div. 3)A. Remove Smallest题目大意若∣ai−aj∣≤1|a_{i}-a_{j}|\leq 1∣ai​−aj​∣≤1则可以删去min(ai,aj)min(a_{i},a_{j})min(ai​,aj​),问你能否将aaa数组删至只剩一个元素解题思路对aaa数组进行排序,对于每两个相邻的元素判断差值是否大于1AC代码#include <bits/stdc++.h>using namespace std;int a[

2020-08-06 18:42:08 166

原创 2020牛客暑期多校训练营(第八场)解题报告

2020牛客暑期多校训练营(第八场)第八场了,终于进了一次前500,贴个榜单纪念一下G. Game SET题目大意定义一张牌有四个属性,分别为大小,形状,阴影和颜色,一个集合包含三张牌,并且每个集合中对于所有牌的某种属性,要么完全相同要么完全不同,问你在给定的nnn张牌里面有没有满足条件的三张牌能够构成一个集合,若某张牌的某一属性为‘*’,说明该属性为任意值(俗称赖子)解题思路这题应该是这场真正的“签到题”,直接O(n3)O(n^3)O(n3)的暴力就过了,不知道谁把榜给带歪了。。。主要的做

2020-08-03 22:10:25 192

原创 2020牛客暑期多校训练营(第七场)解题报告

2020牛客暑期多校训练营(第七场)D. Fake News题目大意问你∑i=1ni2\sum_{i=1}^{n}i^{2}∑i=1n​i2是不是平方数解题思路打表发现只有当n=1n=1n=1和n=24n=24n=24是是平方数AC代码#include <bits/stdc++.h>using namespace std;typedef long long ll;int main() { ios::sync_with_stdio(0); cin.tie(0),

2020-08-01 23:08:46 117

原创 Educational Codeforces Round 92 (Rated for Div. 2)解题报告

Educational Codeforces Round 92 (Rated for Div. 2)A. LCM Problem题目大意给定区间[l,r][l, r][l,r],让你找到正整数xxx,yyy满足l≤x<y≤rl \leq x < y \leq rl≤x<y≤r,并且l≤lcm(x,y)≤rl \leq lcm(x, y) \leq rl≤lcm(x,y)≤r解题思路根据题意有:l≤lcm(x,y)=x×ygcd(x,y)≤rl \leq lcm(x,y)=\fr

2020-07-30 03:00:21 123

原创 2020牛客暑期多校训练营(第五场)解题报告

2020牛客暑期多校训练营(第五场)F. DPS题目大意有nnn个玩家,每个玩家对敌方的总伤害为did_{i}di​,定义其贡献s=⌈50×dimaxj=1ndj⌉s=⌈50\times\frac{d_{i}}{max_{j=1}^{n}d_{j}}⌉s=⌈50×maxj=1n​dj​di​​⌉,按照指定格式打印sss解题思路纯模拟就行了,注意会爆longlonglonglonglonglongAC代码#include <bits/stdc++.h>using namespace

2020-07-25 23:50:05 135

原创 ACM-ICPC 2017 Asia Urumqi A.Coins解题报告

ACM-ICPC 2017 Asia Urumqi A.Coins题目大意有nnn枚硬币反面朝上,有mmm次操作,每次需要投掷ppp枚硬币,问你最后正面朝上的硬币个数的期望是多少解题思路dp[i][j]dp[i][j]dp[i][j]表示第iii次投掷有jjj枚硬币正面朝上的概率,dp[i][j+k]dp[i][j+k]dp[i][j+k]表示在第iii次投掷时有kkk枚硬币变成了正面朝上的概率,那么其转移方程即为:{dp[i][j+k]=∑dp[i−1][j]×Cpk×2−p &nbs

2020-07-25 01:06:05 148

原创 Codeforces Round #653 (Div. 3) 解题报告

Codeforces Round #653 (Div. 3)A.Required Remainder题目大意给你x,y,n,问你最大的k(1 <= k <= n)满足k mod x = y是多少解题思路k = x * m + y <= nm <= (n - y) / x那么max(k) = [(n - y) / x] * x + yAC代码#include <bits/stdc++.h>using namespace std;typedef long

2020-06-29 16:59:27 204

原创 MyEclipse快捷键使用

代码提示 alt + / 快速导包 crtl + shift + o 单行注释 crtl + / 去掉单行注释 crtl + / 多行注释 crtl + shift + / 去掉多行注释 crtl + shift + \ 删除行 crtl + d

2020-06-28 16:50:16 101

原创 Codeforces Round #650 (Div. 3)题解

Codeforces Round #650 (Div. 3)A.Short Substrings题目大意设原有的字符串为s,现在给你由s转化而来的t,让你输出原有的字符串s其中t = s[0]s[1]s[1]s[2]s[2]s[3]…s[n - 1]s[n - 1]s[n]解题思路容易得到s = t[i % 2 == 0] + t[t.length() - 1]AC代码#include <bits/stdc++.h>using namespace std;typedef lo

2020-06-17 16:31:03 297

原创 前路漫漫,未来可期

前言好久没有写过博客了,现在是深夜1:09,总想写点什么,有感而发,写了这篇随笔。2020上半年总结学习阶段今年由于疫情的原因,所以放了一个史无前例的长假,那就从寒假开始说起吧。由于我是转专业,寒假需要留校进行C++的补习,但是那玩意我转专业一个月就已经弄的比较透彻了,老师当天布置的题目我只用了大概三四个小时就已经基本搞定了,叫来助教检查完事,第二天在寝室躺了一天,辣是真的快乐(逃。之后就基本闲下来了,在寝室呆了几天,把近两年的ICPC网络赛和现场赛基本刷了一遍,那时候相当菜(现在也很菜。。),

2020-06-12 02:30:04 1756 1

原创 Codeforces Round #645 (Div. 2)解题报告

Codeforces Round #645 (Div. 2)A.Park Lighting题目大意给你一个由n * m个方块组成的小区,每两个方块相交的边视为街道,一个街道上的灯可以照亮与其相邻的方块,问你最少点亮多少个街道的灯可以使所有方块全部亮起解题思路一开始想的是n和m根据奇偶分为4种情况,可以A,但是更好的思路是有n * m个方块需要点亮,一盏灯最多可以点亮两个方块,那么答案就是[(n * m) / 2] = (n * m + 1) / 2([]表示向上取整)AC代码#include

2020-06-02 21:54:44 245

原创 Java基于多线程以及网络编程实现局域网聊天

前言这几天学习了一下多线程和Java网络编程(具体可以看我博客里的Java相关学习笔记),然后自己实现了一个局域网聊天,但是由于疫情原因不在寝室,没有经过多电脑测试,只是在本机的IP下开多个客户端是没有问题的相关代码//发送端(客户端)package GroupTalk;import java.io.*;import java.net.*;import java.util.Scanner;public class Send { private static String name =

2020-05-18 21:18:54 468 2

原创 Java网络编程学习笔记03

3. TCP通信程序3.1 TCP通信原理TCP通信协议是一种可靠的网络协议,他在通信的两端各建立了一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信Java对基于TCP协议的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信Java为客户端提供了Socket类,为服务端提供了ServerSocket类3.2 TCP发送数据发送数据的步骤:创建客户端的Socket对象(

2020-05-18 20:48:05 146

原创 Java网络编程学习笔记02

2. UDP通信程序2.1 UDP通信原理UDP是一种不可靠的网络协议,他在通信的两端各建立一个Socket对象,但是这两个Socket只是发送、接收数据的对象,因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务端的概念Java提供了DatagramSocket类作为基于UDP协议的Socket2.2 UDP发送数据发送数据的对象创建发送端的Socket对象(DatagramSocket)创建数据,并把数据打包调用DatagramSocket对象的方法发送数据关闭发送端相关

2020-05-18 20:30:52 122

原创 Java网络编程学习笔记01

1. 网络编程入门1.1 网络编程概述计算机网络是指将地理位置不同的具有独立功能的多台计算机机器外部设备,通过通信线路简介起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络上通信协议下,实现网络互连的不同计算机上运行的程序可以进行数据交换1.2 网络编程三要素IP地址要想让网络中的计算机能够互相连通,必须为每台计算机指定一个标识符,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,而IP地址就是这个标识符,也就是设备的标识

2020-05-18 19:02:41 179

原创 Java Lambda表达式学习笔记

Lambda表达式和匿名内部类演示代码public class LamdaStudy { public static void main(String[] args) { //匿名内部类 new Thread(new Runnable() { @Override public void run() { // TODO 自动生成的方法存根 System.out.println(Thread.currentThread().getName() + " has been

2020-05-18 18:08:56 121

原创 【美团杯2020】A.查查查乐乐

题目大意共有T个询问,每次给你一个长度为n的只含有’x’和’l’的字符串,每一次操作你可以将’x’改成’l’或将’l’改成’x’,问你最少操作多少次后字符串的子序列中不包含"xxxll"其中1 <= T <= 1000,1 <= n <= 100解题思路要想去除所有的"xxxll",那么我们要么把’x’全部修改成’l’,要么把’x’全部修改成’l’对于串s,共分为四种情况:我们对于先出现三个’x’以后的位置保留两个’x’其余全部改成’l’我们对于最后出现两个’l’的位

2020-05-18 14:04:33 232

原创 Java多线程学习笔记03

Java多线程学习笔记02:https://blog.csdn.net/weixin_44211980/article/details/1061267784. 生产者消费者模式4.1 生产者消费者模式概述生产者消费者模式是一个十分经典的多线程协作的模式,其主要包含了两类线程一类是生产者线程用于生产数据一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库,生产者生产数据后直接放置在共享区域中,并不关心消费者的行为,消费者只需从共享数据汇总去获取数据

2020-05-15 17:59:01 85

原创 Java多线程学习笔记02

3. 线程同步**案例引入:卖票** 需求:某电影院目前正在上映国产大片,共有100张票,有3个窗口卖票,请设计一个程序模拟该电影院卖票

2020-05-15 01:08:03 200 2

原创 Java多线程学习笔记01

1. 线程介绍1.1 进程 进程:是正在运行的程序 使系统进行资源分配和调用的独立单位 每一个进程都有他自己的内存空间和系统资源1.2 线程 线程:是进程中的单个顺序控制流,是一条执行路径 单线程:一个进程只有一条执行路径 多线程:一个进程有多条执行路径2. 多进程的实现方法1:继承Thread类 a. 定义一个类MyThread继承Thread类 b. 在MyThread中重写run()方法 c. 创建MyThread类对象 d. 启动线程 相关函

2020-05-14 18:50:43 79

原创 Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine) 解题报告

Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine)【A.Dead Pixel】【题目大意】有一个a * b大小的框,让你画一个最大的不包含点(x, y)的子框,输出其大小【解题思路】很容易想到将其分为4个区域取最大值【AC代码】#include <bits/s...

2020-04-18 22:02:54 166

原创 Codeforces Round #626(Div.2) 解题报告

Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics)【前言】最近沉迷只狼,好久没有打CF了,水平下降了不少,昨天打完修罗结局今天搞了一个Div2练练手,没想到是真的菜。。。(虽然我一直都挺菜),看来还是得经常做题啊【A.Even Subset Sum Problem】【题目大意】给你一个序...

2020-04-14 22:51:00 136

原创 Codeforces Global Round 7 解题报告

Codeforces Global Round 7【A.Bad Ugly Numbers】【题目大意】让你找一个由n个数字组成且不能被任意位上的数字整除并且不包含0的数字【解题思路】考虑n个数字只有2和3,那么只要构造一个不能被2和3整除的数就好了【AC代码】#include <bits/stdc++.h>using namespace std;#define end...

2020-03-20 18:12:58 150

原创 ICPC North Central NA Contest 2017解题报告

文章目录【题库链接】【B. Pokemon Go Go】【C. Urban Design】【E. Is-A? Has-A? Who Knowz-A?】【G. Sheba's Amoebas】【H. Zebras and Ocelots】【I. Racing Around the Alphabet】【J. Lost Map】【题库链接】https://www.jisuanke.com/conte...

2020-03-01 23:37:58 392

原创 C++ And EasyX 实现简单扫雷小游戏

【实现代码】#include <cmath>#include <time.h>#include <easyx.h>#include <conio.h>using namespace std;#define Size 500 //定义窗口大小#define SquareSize 50 //定义格子大小#define BackGro...

2020-02-27 20:10:51 1455

原创 Codeforces Round #624 (Div. 3)解题报告

Codeforces Round #624 (Div. 3)【A.Add Odd or Subtract Even】【题目大意】给你两个正整数a和b,每次你可以选择将a加上一个奇数或者将a减去一个偶数,问你操作多少次后可以将a变成b【解题思路】如果a = b显然答案为0如果a < b:如果(b - a) % 2 == 0,那么我们可以将a加至b + 1然后再减去1,答案为2否...

2020-02-25 21:36:59 198

原创 2019 ICPC Asia Nanjing Regional I. Space Station题解

2019 ICPC Asia Nanjing Regional I. Space Station文章目录[2019 ICPC Asia Nanjing Regional I. Space Station](https://nanti.jisuanke.com/t/42403)【前言】【题目大意】【解题思路】一、优先暴力二、记忆化三、unordered_map以及思维优化四、乘法逆元(拓展内容)【...

2020-02-24 20:40:14 986 4

原创 Codeforces Round #622 (Div. 2)解题报告

Codeforces Round #622 (Div. 2)【A.Fast Food Restaurant】【题目大意】有ABC3种饺子,个数分别为a,b,c,现在问你这些饺子最多可以给多少个人享用,且满足1.每个客人享用的的每种饺子数目不超过12.每个客人享用的饺子必须不同3.每个客人至少要享用一个饺子【解题思路】可以将所有情况列举出来,客人享用的饺子种类可能为:A,B,C,A...

2020-02-24 00:54:34 206

空空如也

空空如也

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

TA关注的人

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