- 博客(12)
- 收藏
- 关注
原创 二分+前缀和:[NOIP2011]聪明的质监员
题目聪明的质检员思路二分二分应用的条件为:满足单调性或可以舍去局部。对于此题来说单调性十分明显随着W的增大,Y不断减小。利用二分法,找到最接近S的两个值(一个位于S左侧,一个位于右侧),然后选取S-Y的绝对值最小的即可。前缀和对于某个W的值,如果使用暴力求解Y,复杂度为O(mn),那么总的复杂度为O(mnlog(Wmax))这样显然会TLE。观察题目中让求的式子,我们可以利用前缀和,求前缀和只需要O(n)的复杂度,对于[l,r]区间查询只需要prefsum[r]-prefsum[l-r]
2022-05-18 20:35:35 163
原创 二分+差分:[NOIP2012]借教室
题目借教室思路起初我想用树状数组来解,用树状数组维护某个区间的最小值,因为只要最小值满足租借的条件,那么该区间的其他值也一定满足。但是问题在于树状数组维护的区间结构不是任意的,比如某一天的订单将[l,r]的教室数都进行了修改,那么此时必须要更新所有包含[l,r]区间的任一值的树状树状数组,这样其实导致复杂度并没有降低。跟ACMer大佬叹宝讨论后才知道,其实线段树比树状数组的能力要强大很多,比如对于这道题线段树是可以解的,但是树状数组却不行。所以树状数组更容易求解的实际上是从头开始计算并维护的一些东
2022-05-18 19:52:37 270
原创 树状数组:P5057 [CQOI2006]简单题
题目题目描述有一个 n 个元素的数组,每个元素初始均为 0。有 m 条指令,要么让其中一段连续序列数字反转——0 变 1,1 变 0(操作 1),要么询问某个元素的值(操作 2)。 例如当 n = 20 时,10 条指令如下:输入格式第一行包含两个整数 n, m,表示数组的长度和指令的条数; 以下 m 行,每行的第一个数 t 表示操作的种类:若 t = 1,则接下来有两个数 L, R,表示区间 [L, R] 的每个数均反转; 若 t = 2,则接下来只有一个数 i,表示询问的下标。输出格式每
2022-05-12 16:51:43 222
原创 POJ9273:PKU2506Tiling_递推+高精度
总时间限制: 2000ms 单个测试点时间限制: 1000ms 内存限制: 131072kB描述对于一个2行N列的走道。现在用12,22的砖去铺满。问有多少种不同的方式。下图是一个2行17列的走道的某种铺法。输入整个测试有多组数据,请做到文件底结束。每行给出一个数字N,0 <= n <= 250输出如题样例样例输入2812100200样例输出31712731845100400152152934331135470251107129202950599351
2022-02-24 19:51:13 515
原创 Datalab实验(有限运算符和语句下的位运算)
问题1:bitAnd通过取反、取或实现取与。思路:通过德摩根律,A&B=((A&B))=((A)|(~B))实现:问题2:getByte获得字长4个字节数据的某一个字节数据思路:将要获得的字节右移到最低字节,再与0xff求与,就能得到最低字节的数据了。其需要向右移动的位数为8*n,即n<<3。实现:问题3:logicalShift实现逻辑右移(高位补0)思路:由于在C语言中”>>”表示的是算术右移,高位会补充符号位,为了实现逻辑右
2021-04-14 21:57:36 1148
原创 算法分析与设计笔记
算法分析与设计笔记第一章——概述(1)什么是算法(2)问题求解过程(3)算法的正确性分析第二章——分治与递归快速排序第三章——动态规划如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入第一章——概述(1)什么是算法算法是若干指令的有穷序列,满足性质:输入:有外部提供
2021-03-18 11:15:01 2314
原创 java入门(5)——通信初步(仿腾讯会议)
java入门(5)——通信初步(仿腾讯会议)一、TCP/IP初步理论二、接线员“Socket”——连接工具三、IO流——传输工具四、项目主体客户端UI界面NetConn接线员监听器(控制机制)Video线程服务器服务器线程线程池五、效果展示一、TCP/IP初步理论TCP/IP是指能够在多个不同网络间实现信息传输的协议簇,是网络中最基本的通信协议,其为各种信息的传输制定了“标准”。如果客户端想要和服务器通信,一方面需要知道服务器映射出来的端口来保证“能连上”,另一方面需要熟悉服务器的接受协议保证“能收到
2021-01-30 22:17:34 2579 11
原创 java入门(4)——线程安全
总算数据结构和数电没有任务了,可以好好写篇博客了,今天正好学了线程安全,就趁热打铁写一下吧。线程安全前言一、什么是线程安全?二、线程同步的方式--同步监听器(锁)1.同步代码块2.同步方法3.Lock类三、优缺点四、练习(银行转账问题、volatile关键字)前言一、什么是线程安全?程序中有多个线程在操作共享数据,由于线程有4个步骤:创建、就绪、运行、中止,执行顺序会出现不确定性,和预期冲突。二、线程同步的方式–同步监听器(锁)1.同步代码块代码如下(示例):synchronized(同
2020-12-17 19:45:23 467
原创 java入门(3)——简易绘图板
简易绘图板建议绘图板的实现,主要用到了制作界面的java.awt和javax.swing包,其次使用到了Graphics类用于绘图,最后用监听器将两者联系起来。监听器监听器用于监听事件,比如:点击、输入等等。他们被定义在java.awt.event这个包中。安装监听器主要有三个步骤:动作监听器鼠标监听器Graphics类java.awt与javax.swing包...
2020-10-15 12:21:56 594
原创 java入门(2)——继承、重写与转型
继承与重写继承public class 子类(派生类) extends 父类(基类){ }1、子类会继承父类的属性和方法,私有属性和方法不能直接使用。2、请注意:Java中的类的继承是单继承!!!(一个子类只能继承一个父类,不能继承多个父类,这一点与C++不同)3、子类继承父类后,到底可以调用父类中的哪些属性和方法,具体要看前面的修饰符。下面补充修饰符的相关知识:共有的,以public 修饰符指定,对所有类可见。受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。默
2020-10-05 20:44:51 460 2
原创 Java入门(1)——类与对象
Java入门(1)由于小编在之前已有c++基础,所以在java入门时,很多东西都是类比c++去理解记忆的。类与对象包(package)1、对于有c++基础的人来说,刚接触java时,会发现java中的包类似于c++中的头文件,使用import可以引用你需要的包,如:javax.swing ,java.awt等,之后你便可以利用到包中的各种函数了。2、但是包和头文件也有不一样的地方,包代表了你存储的路径。而我们一般引用的包,都是在jdk这个软件开发工具包中的。3、其次import一般是用来导入某个
2020-10-05 19:24:45 435
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人