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

原创 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 244

原创 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 264 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 309

原创 基于交换论证的 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 637

原创 2019ICPC南昌邀请赛题解

The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming Contest B. Polynomial Description 定义 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 668

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

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

2020-11-25 19:02:34 1327

原创 Web前端学习笔记

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

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

原创 2017ccpc秦皇岛解题报告

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

2020-10-09 15:21:09 552

原创 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 170

原创 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 1877

原创 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 248 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数组进行排序,对于每两个相邻的元素判断差值是否大于1 AC代码 #include <bits/stdc++.h> using namespace std; int a[

2020-08-06 18:42:08 208

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

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

2020-08-03 22:10:25 243

原创 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 172

原创 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 239

原创 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 解题思路 纯模拟就行了,注意会爆longlonglonglonglonglong AC代码 #include <bits/stdc++.h> using namespace

2020-07-25 23:50:05 215

原创 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 191

原创 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 <= n m <= (n - y) / x 那么max(k) = [(n - y) / x] * x + y AC代码 #include <bits/stdc++.h> using namespace std; typedef long

2020-06-29 16:59:27 286

原创 MyEclipse快捷键使用

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

2020-06-28 16:50:16 157

原创 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 391

原创 前路漫漫,未来可期

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

2020-06-12 02:30:04 1835 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 292

原创 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 579 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 179

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

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

2020-05-18 20:30:52 175

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

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

2020-05-18 19:02:41 242

原创 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 172

原创 【美团杯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 278

原创 Java多线程学习笔记03

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

2020-05-15 17:59:01 122

原创 Java多线程学习笔记02

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

2020-05-15 01:08:03 252 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 115

原创 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 218

原创 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 211

原创 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 206

原创 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 602

原创 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 1583

原创 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 263

原创 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 1385 4

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

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

2020-02-24 00:54:34 292

空空如也

空空如也

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

TA关注的人

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