[Luogu P4168] [Violet]蒲公英 (分块)

题面 洛咕 Solution 题目要求求出区间众数,强制在线。 区间众数是一个比较尴尬的问题,我们无法用区间数据结构来处理这个问题,因为我们没法很好的合并区间众数的答案。 既然区间数据结构解决不了这个问题,我们可以考虑一下使用基于分块的算法,例如莫队。 这题用莫队非常好处理,不幸的是,这题要求强制在线。 因此我们考虑使用分块算法。 分块算法的核心在于把一整个块的信息压缩起来以便快速处理。 我们要查询一段区间的众数,我们可以考虑这样搞:对于这个区间内连续的块,我们先快速地查询这个连续的块中的众数
分类: 其他 发布时间: 02-04 14:24 阅读次数: 0

IOI2018题解

只有部分题解 练习赛 T2 自然还是要简单考虑了 0~n-1的排列,考虑相对的大小 我们先考虑对于前三个:a,b,c 询问a,b,询问b,c,再询问a,b,c 发现,如果三个知道两个,那么第三个可以唯一确定 所以分情况讨论一下: 1.a>b,不妨钦定a=n-1,然后得到a,b,c的值,再询问(c,d),(b,c,d)。。。就可以得到所有的值 2.a<b,不妨钦定a=0,然后得到a,b,c的值,再询问(c,d),(b,c,d)。。。就可以得到所有的值 这里,由于a的值是钦定的,可能得到某个值是负
分类: 其他 发布时间: 02-04 14:24 阅读次数: 0

[NOIP2018]保卫王国

嘟嘟嘟 由于一些知道的人所知道的,不知道的人所不知道的原因,我来发NOIP2018day2T3的题解了。 (好像我只是个搬运工……) 这题真可以叫做NOIplus了,跟其他几道 比较水的题果然不一样,无论代码量还是思维难度都有一个更高的层次。 我是看了zhoutb的题解的。 而且抄了他代码(还没抄对),所以这里直接推荐各位看luogu的题解吧。 关于这个倍增数组的预处理,实际上只用考虑为父亲结点的时候该怎么办(就是裸dp)。而对于\(2 ^ i (i > 0)\)的倍增部分,只用枚举u和祖先的
分类: 其他 发布时间: 02-04 14:24 阅读次数: 0

初识Haskell 五:自定义数据类型和类型类

对Discrete Mathematics Using a Computer的第一章Introduction to Haskell进行总结。环境Windows 自定义数据类型 data type definitions   形式如:     data Colour = Red | Orange | Yellow | Green | Blue | Violet   Colour type包含了Red Orange Yellow Green Blue Violet这些值,这些值是construct
分类: 其他 发布时间: 02-04 14:24 阅读次数: 0

#WEB安全基础 : HTTP协议 | 0x11 HTTP的分块传输模块

HTTP通信中,请求的编码实体资源没全部传输完成之前,浏览器无法显示页面,所以传输大容器数据时,把数据分块,能让浏览器逐步显示页面,这就叫分块传输模块 请看分块传输的流程图 每一块都会用十六进制来标记块的大小,而实体主体的最后一块会使用“0(CR-LF)”来标记 使用分块传输编码的实体主体会由接收内容的客户端负责解码,恢复到编码前的实体主体 HTTP/1.1 存在一种传输编码的机制,他可以在通信时按照某种编码方式来传输,但只定义作用于分块传输编码中 对于编码的研究,以后可以仔细学习,如算法,密
分类: 其他 发布时间: 02-04 14:24 阅读次数: 0

EPLAN介绍

快捷键: 复制终断点:crtl+C crtl+V X,Y定位,会自动生成对应编号; 终端点跳转:选中后F; 完全显示:alt+3; 多重复制:用于同类型回路,用S键可设置鼠标每格移动距离,可选择自动编号; 方向变化:Table键,或属性,更改变量; 黑盒:设备连接点,全选,表格式编辑,可用EXCEL导入; 选择跳线:选择直角连接点后按backspace
分类: 其他 发布时间: 02-04 14:08 阅读次数: 0

Bugku 分析 中国菜刀

解压之后得到了一个流量包,只有不到10KB,美滋滋 先抓重点,过滤出http,只有6条数据记录,3条post,3条response,3条post都是一样的 随便打开一条pos 是一个assert断言,断言内容是一串base64加密的字符串(最后的%3D先解码为=) 得到了一串php代码 @ini_set("display_errors","0"); @set_time_limit(0); if(PHP_VERSION<\'5.3.0\') { @set_magic_quotes_run
分类: 其他 发布时间: 02-04 14:08 阅读次数: 0

Codeforces1096G Lucky Tickets(NTT优化dp)

设\(f[i][j]\)表示填了\(i\)个数,数位和为\(j\)的方案数 于是方程为: \[f[i][j]=\sum_{k=1}^9 f[i-1][j-k]*[CanUse[k]==1]\] 其中\(CanUse[i]\)表示是否可用\(i\)这个数字 最终答案为: \[\sum_{i=1}^{9*(n/2)}f[n/2][j]\] 直接转移肯定\(T\)飞,需要一些优化。于是我们观察到这个式子是卷积形式的式子,直接上\(NTT\)板子+快速幂即可 \(P.S.\)一些优化 可以把每个\(p
分类: 其他 发布时间: 02-04 14:08 阅读次数: 0

Unsafe.class

concurrent包下的很多框架实现基本都依赖于AQS ,而AQS底层依赖LockSupport ,LockSupport依赖Unsafe提供的能力进行加锁等操作 1.park() unpark() 内部基于互斥量机制 permit初始值为0 park():如果permit等于0 阻塞;如果permit等于1 返回继续执行 并将permit设置为0 unpark():唤醒线程,将permit + 1,最大值为1 使用方法: unsafe.park(curThread); 优点:不需要处于同步
分类: 其他 发布时间: 02-04 14:08 阅读次数: 0

[Python3 练习] 003 货币转换

题目:货币转换 (1) 描述 人民币和美元是世界上通用的两种货币,写一个程序进行货币间币值转换 记人民币和美元之间的汇率为:1 美元 = 6.78 人民币 程序可以接受人民币或美元输入,转换为另一种货币输出 人民币采用 RMB 表示,美元采用 USD 表示,符号和数值之间没有空格,如 RMB123,USD18.14 (2) 注意 这是一个 OJ 题目,获得输入请使用 input() OJ 是 Online Judge 系统的简称,用来在线检测程序源代码的正确性 不提示输出格式错误,结果小数点后
分类: 其他 发布时间: 02-04 14:08 阅读次数: 0

css学习笔记一

text-indent缩进。 px像素,像素是相对单位。1em=1 * font-size=16px(默认是16px),会根据你的font-size大小变的。所以缩进用 这个就比较好。 text-indent:2em; 1.行级元素,内联元素 inline feature:内容决定元素所占位置,不可以通过css改变宽高。 span,strong,em,a,del 2.块级元素 block feature:独占一行,可以通过css改变宽高。 3.行级块元素 inline-block featur
分类: 其他 发布时间: 02-04 14:08 阅读次数: 0

先来一道简单题目过个好年

题意描述: 第一行一个整数n,表示考试的人数,第二行n个整数表示每个人的成绩。成绩为0-100之间的整数。且不超过10000个学生。输出占一行。每人挂科需要400元重修费。计算出所有需要交的重修费。 解题思路: 计算共有多少个挂科人数,输出人数乘以400或直接+400; 代码实现: #include<stdio.h> int main() { int n,sum=0,i,a,count=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a);
分类: 其他 发布时间: 02-04 14:08 阅读次数: 0

42 你能聊聊CAS一般怎么用以及CAS工作原理是啥?

1、面试题 java里玩儿悲观锁和乐观锁一般怎么玩儿?synchronized相当于是悲观锁,CAS相当于是乐观锁。知道CAS是什么吗?CAS是如何实现的? 2、面试官心里分析 这个高级点的面试,肯定会问CAS,还是比较重要的 3、面试题剖析 悲观锁:我现在要操作一个共享数据,我很悲观,我认为我操作的过程中,一定会被人给修改,会导致数据错误;我在操作这个数据之前,先给这个数据加了一把锁,synchronized,在我操作这个数据的期间,就只能是我来操作,其他任何人都操作不了。 乐观锁:我感觉在
分类: 其他 发布时间: 02-04 14:00 阅读次数: 0

43 能不能结合java内存模型来聊聊volatile关键字的原理?

目录 1、面试题 2、面试官心里分析 3、面试题 3.1 操作系统内存模型 3.2 java内存模型 3.3 volatile的作用 3.4 volatile的使用场景 1、面试题 java的内存模型是什么?能结合内存模型说一下volatile的工作原理吗?指令重排序,内存栅栏,happen-before等概念是指的什么意思? 2、面试官心里分析 我作为面试官的话,也是经常问volatile的,确实是,但是确实比较凸显一个人的java基本功,而且一般聊到并发编程这块,一般都会问一下这个问题。说
分类: 其他 发布时间: 02-04 14:00 阅读次数: 0

go语言第一天

go的基本命令: go run 快速执行go文件 go build 编译程序 go install 安装可执行文件到bin go test 执行单元测试 go env 显示go环境变量 go fmt 格式化源代码 go 语言: package main //双斜杠为注释,package要放在第一行 import ( //导入fmt包 "fmt" ) func main() { // 在同一个目录下,只允许有一个main包 main函数 fmt.Print("hello world") \\ 打
分类: 其他 发布时间: 02-04 14:00 阅读次数: 0

学习Mybatis(8):Mybatis缓存机制的内部实现

在 学习Mybatis(7):Mybatis运行原理源码分析 中,根据源码可以看到,每个SqlSession都包含一个Executor对象 Mybatis的一切CRUD操作实际上就是通过Executor完成的 Executor默认是在DefaultSqlSessionFactory的openSessionFromDataSource方法中,调用Configuration类的newExecutor方法创建的,源码如下: public Executor newExecutor(Trans
分类: 其他 发布时间: 02-04 14:00 阅读次数: 0

C++ 构造函数总结

1.常规构造函数、析构函数 构造函数的作用是进行类的初始化,在没有显式自定义的情况下,C++会提供默认的(无参)构造函数和析构函数: class A {}; int main() { A *a = new A; delete a; } 如果自定义了构造函数,则不会自动生成无参构造函数: class A { public: A(int a){}; }; int main() { A *a = new A; //Error } 析构函数就不存在这个问题,因为其定义不允许
分类: 其他 发布时间: 02-04 14:00 阅读次数: 0

《码出高效》学习:TreeMap与红黑树

首先先看TreeMap的继承关系: 继承了抽象类AbstractMap,实现了NavigableMap(SortedMap)、Cloneable、Serializable三个接口 NavigableMap(SortedMap):使Key有序,可以获取头尾K-V对,或者获取指定范围内的SubMap Cloneable:支持clone方法 Serializable:支持序列化 基于红黑树实现: // Red-black mechanics private static fina
分类: 其他 发布时间: 02-04 14:00 阅读次数: 0

《码出高效》学习:ConcurrentHashMap

目录 简介 基本认识 初始化:initTable方法 插入元素:实际为putVal方法 链表进化:treeifyBin方法 协助扩容:helpTransfer & Transfer 删除节点:实际为replaceNode方法 计数方法的改进 简介 ConcurrentHashMap主要应用于高并发环境下,使用了大量的lock-free技术来减轻锁竞争导致的性能下降。从JDK5开始引入,最初使用锁分段技术,即并发时不是对整个Map加锁,而是对数据所处的Segment进行加锁:(图片来自网络,侵删
分类: 其他 发布时间: 02-04 14:00 阅读次数: 0

《码出高效》学习:ThreadPoolExecutor

目录 概述 关键变量 构造方法 execute方法 addWorker方法 Worker内部类 总结 概述 线程是为了更充分合理地利用计算机各种系统资源,但是线程的创建需要开辟虚拟机栈、本地方法栈、程序计数器等私有空间,线程销毁时还要进行回收,在高并发条件下,频繁地进行线程创建、销毁操作,会造成系统资源的大量浪费,增加并发风险。另外,并发量过大时,需要让新线程等待或拒绝服务,这些仅靠线程自身无法解决,因此需要线程池进行协调。 线程池的主要任务有: 线程池可以管理、复用线程,控制最大并发数 实现
分类: 其他 发布时间: 02-04 14:00 阅读次数: 0