- Android 腾讯bugly监听奔溃信息
氤氲息
安卓原生学习android
接入网站implementation'com.tencent.bugly:crashreport:latest.release'同意隐私协议后初始化//初始化buglyprivatevoidinitBugly(){//创建UserStrategy对象CrashReport.UserStrategystrategy=newCrashReport.UserStrategy(this);//设置应用渠道
- 实现一个高并发内存池-----对比Malloc
Linux高级开发
Linux服务器开发linux服务器内存池高并发网络
1.什么是内存池1.1池化技术池是在计算技术中经常使用的一种设计模式,其内涵在于:将程序中需要经常使用的核心资源先申请出来,放到一个池内,有程序自管理,这样可以提高资源的利用率,也可以保证本程序占有的资源数量,经常使用的池化技术包括内存池,线程池,和连接池等,其中尤以内存池和线程池使用最多。1.2内存池内存池(MemoryPool)是一种动态内存分配与管理技术,通常情况下,程序员习惯直接使用new
- leetcode简单题4 N.14 最长公共前缀 rust描述
独好紫罗兰
leetcode算法rust
//["flower","flow","flight"]"fl"//["dog","racecar","car"]""//纵向扫描同一个索引扫描其他所有字符pubfnlongest_common_prefix(strs:Vec)->String{ifstrs.is_empty(){//如果向量不包含任何元素,则返回truereturnString::new();//返回空字符串}letmutpre
- 【lesson10】高并发内存池细节优化
(unstoppable)
项目高并发内存池高并发内存池C++多线程细节优化
文章目录大于256KB的大块内存申请问题大于256KB的大块释放申请问题使用定长内存池脱离使用new释放对象时优化为不传对象大小完整版代码Common.hObjectPool.hThreadCache.hThreadCache.cppConcurrentAlloc.hCentralCache.hCentralCache.cppPageCache.hPageCache.cpp大于256KB的大块内存
- Java中的键值对集合
MingDong523
笔记
Map集合特点:键值对集合,一次往Map集合里面添加键值对(主键和值)共有的方法:1.创建一个map集合对象Mapmap=newMapset=map.keySet();Collectionnum=map.values();Set>=map.entrySet();HashMap注意:map.get(主键);map.put(主键);map.containsKey(主键);map.remove(主键);
- js对象练习
晚枫~
js练习
1.做一个倒计时效果。functioncountDown(time){varnowTime=+newDate();//返回的是当前时间总的毫秒数varinputTime=+newDate(time);//返回的是用户输入时间总的毫秒数vartimes=(inputTime=nowTime)/1000;//time是剩余时间总的秒数vard=parseInt(times/60/60/24);//天d
- 深剖VR,AR和MR三者之间关系
物联研究
物联网研究VRARMR
作者简介:赵刚,京东研发体系集团架构部总监,京东VR/AR实验室技术总负责人。北京航空航天大学通信与信息系统博士,iTechClub资深成员,京东第一届架构委员会常务委员,入选《京东技术解密》牛人篇(第三位),长期研究计算机图形图像与智能技术,涉足虚拟现实技术16年,拥有多项专利与软著,第十八届中国专利金奖提名,曾参与研发国内最先进军用无人直升机,神舟五号载人飞船虚拟现实仿真系统,获得部级科技进步
- This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver.的解决办法及原因
C4程序员
Java菜鸟之路mysql数据库java
1.问题描述Thisisdeprecated.Thenewdriverclassis`com.mysql.cj.jdbc.Driver'.2.原因Spring2.2以后的版本是默认支持MySQL8的,所以当你的MySQL版本是8及以上就需要修改你的加载驱动3.解决办法同时注意时区东八区serverTimezone=GMT%2B84.补充privatestaticStringurl="jdbc:my
- 线程池 JDK1.5 ExecutorService threadPool = Executors.newFixedThreadPool(3)
飞腾创客
java
packagecn.itcast.heima2;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurrent.TimeUnit;publicclassThreadPoolTest{/***@paramargs*/publicstaticvoidma
- 28_跨域
东东__net
前端javascript开发语言
目录promisepromise的基本语法asyncawaittrycatchpromise静态方法跨域跨域的解决方案1-cors编辑2-jsonp方案3-代理服务器promisepromise是一个es6新增的语法承诺的意思作用:是专门用来解决回调地狱!!!!promise的基本语法//基本语法://Promise中写异步代码//letp1=newPromise(function(resolve
- Vue Router 在 Vue 2 和 Vue 3 中的主要差别
遇见~未来
Vue.jsvue.js前端javascript
1.安装与版本Vue2:使用VueRouter3.x版本。Vue3:使用VueRouter4.x版本,需要单独安装vue-router@4。#Vue2npminstallvue-router@3#Vue3npminstallvue-router@42.创建路由器实例Vue2:使用newVueRouter({routes})。Vue3:使用createRouter函数,并指定历史记录模式。//Vue
- JAVA类和对象
·薯条大王
javajava开发语言
一、类与对象基础1.类与对象定义类:对象的模板,定义对象的属性(成员变量)和行为(方法)。publicclassDog{Stringname;//属性publicvoideat(){...}//行为}对象:类的实例,通过new关键字创建。Dogdog=newDog();//实例化对象2.对象实例化过程步骤:内存分配:在堆内存中为对象分配空间。初始化成员变量:赋予默认值(如int为0,对象为null
- Photoshop图层模式中英文对照及解释
Jason.Soar
photoshop
ps中英对照表菜单-File文件1.New…(Ctrl+N)新建2.Open…(Ctrl+O)打开3.BrowseinBridge…(Alt+Ctrl+O)在Bridge中浏览4.BrowseinMiniBridge…在MiniBridge中浏览5.OpenAs…(Alt+Shift+Ctrl+O)打开为6.OpenAsSmartObject…作为智能对象打开7.OpenRecent>最近打开文件
- 红宝书第二十讲:详解JavaScript的Proxy与Reflect
前端javascript
红宝书第二十讲:详解JavaScript的Proxy与Reflect资料取自《JavaScript高级程序设计(第5版)》。查看总目录:红宝书学习大纲一、Proxy的作用:给对象戴上“监听耳机”Proxy(代理)允许你为对象创建代理层,拦截并自定义对象的基本操作(如属性读写、函数调用等)。核心用法:通过newProxy(target,handler)创建代理对象handler对象定义各种监听方法(
- 蓝桥杯python编程每日刷题day one
姜威鱼
蓝桥杯
小知识点:round(number,7)可以来实现对数的包留7位小数也可以number=3.14159265358new_number=“{:.7f}".format(number)题目1:判断闰年(是4的倍数而不是100的倍数,或者是400的倍数)(1)代码:a=int(input())if(a%4==0anda%100!=0)or(a%400==0):print("yes")else:prin
- Unity射线详解与应用
源
unity游戏引擎
射线检测是Unity中一种高效的空间检测技术,广泛应用于射击游戏、视线检测、物体选取等场景。以下是Unity射线系统的全面解析。射线基础概念射线(Ray)是由一个起点和一个方向定义的无限延伸的直线,用于检测这条线上是否存在碰撞体。核心组件1.Ray结构体Rayray=newRay(origin,direction);origin:射线起点(Vector3)direction:射线方向(Vector
- QT计算器开发
入世浮尘
QTqt开发语言c++
1.项目架构1.图形化界面2.widget.h#ifndefWIDGET_H#defineWIDGET_H#include#include#includeQT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACEclassWidget:publicQWidget{Q_OBJECTpublic:Widget(QWidget*parent=n
- The Rust Programming Language 学习 (七)
rust
常见集合使用Vector存储表Vec,也被称为vector。vector允许我们在一个单独的数据结构中储存多于一个的值,它在内存中彼此相邻地排列所有的值。vector只能储存相同类型的值。它们在拥有一系列项的场景下非常实用新建Vector为了创建一个新的空vector,可以调用Vec::new函数letv:Vec=Vec::new();新建一个空的vector来储存i32类型的值注意这里我们增加了
- vue项目之axios请求统一配置了超时时间,单独接口请求时重设超时时间
牛先森家的牛奶
Vuevue接口
vue项目中axios请求统一配置了超时时间,单独接口请求时重设超时时间根据官网推荐:axios配置官网默认请求时间接口请求://任务新建exportfunctionnewTaskAdd(data){returnrequest({url:'/api/taskPlan/add',method:'post',data})}重设超时时间的接口请求://任务新建exportfunctionnewTaskA
- C#学习第6天:集合(Collections)深入解析
ghost143
学习c#开发语言
集合提供了一种动态存储多个对象的方法。与数组不同,集合可以根据需要动态调整大小,并提供了多种操作数据的工具。第一种:List列表usingSystem;usingSystem.Collections.Generic;publicclassListExample{publicstaticvoidMain(string[]args){Listfruits=newList(){"Apple","Bana
- LeetCode Hot 100 - 矩阵 | 73.矩阵置零、54.螺旋矩阵、48.旋转图像、240.搜索二维矩阵II
Amor_Fati_Yu
leetcode矩阵算法
73.矩阵置零新建两个boolean数组记录该行或列是否出现0,再使用数组更新矩阵。classSolution{publicvoidsetZeroes(int[][]matrix){intm=matrix.length;intn=matrix[0].length;boolean[]row=newboolean[matrix.length];boolean[]col=newboolean[matri
- 最详细的Golang Template 模板语法说明
万才博客
golanggo语言templatesgolang
Go提供了template库专门用于渲染模板输出,语法如下:查看全文:http://www.golang.ren/article/7136模板标签模板标签用"{{“和”}}"括起来可以通过.Delims方法更改标签界定符号,以避免和前端框架冲突,t,_:=template.New("").Delims("[[","]]").ParseFiles("v/main.vue")注释{{/*acommen
- Windows 图形显示驱动开发-WDDM 2.4功能-GPU 半虚拟化(七)
程序员王马
windows图形显示驱动开发windows驱动开发
设置主机和VM在PowerShell中运行以下命令,使用GPU创建VM。创建名为TEST的VM。$vm=“TEST“New-VM-VMName$vm-Generation2Set-VM-GuestControlledCacheTypes$true-VMName$vm为VM设置IO空间。GPU-PV使用IO空间来处理CPU可见的分配。至少需要8GB的IO空间。Set-VM-LowMemoryMapp
- Python办公自动化:增值税发票批量识别和核验
安替-AnTi
自动化工具python增值税识别核验
腾讯云免费体验地址:https://console.cloud.tencent.com/api/explorer?Product=ocr&Version=2018-11-19&Action=VatInvoiceVerifyNew首先进行识别,这里以python为例子#-*-coding:utf-8-*-importjsonfromtencentcloud.common.common_clienti
- 头歌 | Linux之用户高级管理
跑得动
头歌linux
若未实现预期结果,可私信我帮你解答2025-3-28第1关:创建/删除用户组>/data/workspace/myshixun/case1/evaluating.sh#写入新内容echo"echo'创建newGroup用户组成功创建newGroupID用户组成功设置newGroupID用户组ID成功删除oldGroup用户组成功'">>/data/workspace/myshixun/case/e
- C++ STL容器之list链表
无情酷狗
C++c++开发语言数据结构list链表
STL容器主要分两大类:序列性容器:序列容器保持插入元素的原始顺序。允许指定在容器中插入元素的位置。每个元素都有固定位置,取决于插入时机和地点和元素值无关如:链表(list),向量(vector),双端队列(deque)。关联性容器:元素位置取决于特定的排序规则和插入顺序无关,映射表map、哈希表hash-map、集合set。容器类自动申请和释放内存,无需new和delete操作。STL链表lis
- java 字符串中的数字加1的方法 如001 加1到999 计算方法
java-王森
java前端开发语言
123456DecimalFormatdecimalFormat=newDecimalFormat("000");//字符串数字的位数Stringcode="aaa001";//字符串Stringcodenew=code.substring(3,code.length());//截取字符中的数字inti=Integer.parseInt(codenew)+1;Stringk=decimalForm
- C++ 内存分配new (std::nothrow)使用总结
大王算法
C++入门及项目实战宝典new(std::nothrow)
普通new一个异常的类型std::bad_alloc。这个是标准适应性态。平时一直使用new但是在内存分配失败的时候直接报异常。在内存不足时,new(std::nothrow)并不抛出异常,而是将指针置NULL。std::nothrow可以实现对非零指针的检查。std::bad_alloc的用法:在操作符new和new[]内存分配失败的时候抛出的异常,在分配异常的情况下这时的指针myarray不为
- List中多个数据相同,保留最新日期数据
java-王森
listwindowslinux
一、将list按从小到大排序sapVos.sort((t1,t2)->t1.getBdatu().compareTo(t2.getBdatu()));二、基于Map的键覆盖机制适用场景:需高效去重且无需复杂排序逻辑。实现步骤:定义唯一键:将多个属性拼接为唯一标识。覆盖旧值:遍历时用新数据覆盖旧数据,天然保留最新记录Mapmap=newHashMapuniqueList=newAr
- C++之面向对象(一)
牛哥带你学代码
C++面向对象编程c++基础elementuivue.js前端
目录C++类类的定义访问权限几点注意事项C++对象对象的概念对象的定义对象的访问构造函数构造函数的特点set/get函数利用构造函数创建对象法一:类名对象名(实参表)法二:通过指针和new,借助构造函数创建对象构造函数的初始化列表实例必须使用参数初始化列表对数据成员进行初始化类成员的初始化的顺序析构函数析构函数的概念默认构造函数格式析构函数的特点析构函数的几点注意事项面向对象编程,即面对客观世界存
- HQL之投影查询
归来朝歌
HQLHibernate查询语句投影查询
在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示?
针对上面的场景,如果需要将一个对象查出来:
HQL语句写“from 对象”即可
Session session = HibernateUtil.openSession();
- Spring整合redis
bylijinnan
redis
pom.xml
<dependencies>
<!-- Spring Data - Redis Library -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redi
- org.hibernate.NonUniqueResultException: query did not return a unique result: 2
0624chenhong
Hibernate
参考:http://blog.csdn.net/qingfeilee/article/details/7052736
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
在项目中出现了org.hiber
- android动画效果
不懂事的小屁孩
android动画
前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
- js delete 删除机理以及它的内存泄露问题的解决方案
换个号韩国红果果
JavaScript
delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露 (其实还未删除)
举例:
var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname -->'bob'
// 依然可以访问p.firstname,存在内存泄露
- Oracle将零干预分析加入网络即服务计划
蓝儿唯美
oracle
由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计
- spring学习——springmvc(二)
a-john
springMVC
Spring MVC提供了非常方便的文件上传功能。
1,配置Spring支持文件上传:
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul
- POJ-2828-Buy Tickets
aijuans
ACM_POJ
POJ-2828-Buy Tickets
http://poj.org/problem?id=2828
线段树,逆序插入
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struct
- Java Ant build.xml详解
asia007
build.xml
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有
- android按钮监听器的四种技术
百合不是茶
androidxml配置监听器实现接口
android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;
1,activity中使用内部类实现接口 ,创建内部类实例 使用add方法 与java类似
创建监听器的实例
myLis lis = new myLis();
使用add方法给按钮添加监听器
- 软件架构师不等同于资深程序员
bijian1013
程序员架构师架构设计
本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。
如今很多的公司
- TeamForge Wiki Syntax & CollabNet User Information Center
sunjing
TeamForgeHow doAttachementAnchorWiki Syntax
the CollabNet user information center http://help.collab.net/
How do I create a new Wiki page?
A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and
- 【Redis四】Redis数据类型
bit1129
redis
概述
Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。
Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string
- SSH2整合-附源码
白糖_
eclipsespringtomcatHibernateGoogle
今天用eclipse终于整合出了struts2+hibernate+spring框架。
我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。
补充1:项目中部分jar包不是最新版的,可能导
- [转]开源项目代码的学习方法
braveCS
学习方法
转自:
http://blog.sina.com.cn/s/blog_693458530100lk5m.html
http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html
1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d
- 编程之美-子数组的最大和(二维)
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
import java.util.Random;
public class MaxSubArraySum2 {
/**
* 编程之美 子数组之和的最大值(二维)
*/
private static final int ROW = 5;
private stat
- 读书笔记-3
chengxuyuancsdn
jquery笔记resultMap配置ibatis一对多配置
1、resultMap配置
2、ibatis一对多配置
3、jquery笔记
1、resultMap配置
当<select resultMap="topic_data">
<resultMap id="topic_data">必须一一对应。
(1)<resultMap class="tblTopic&q
- [物理与天文]物理学新进展
comsci
如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境
怎么办呢?
- Oracle 11g新特性:Automatic Diagnostic Repository
daizj
oracleADR
Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。
FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。
这两份log文
- 简单排序:选择排序
dieslrae
选择排序
public void selectSort(int[] array){
int select;
for(int i=0;i<array.length;i++){
select = i;
for(int k=i+1;k<array.leng
- C语言学习六指针的经典程序,互换两个数字
dcj3sjt126com
c
示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了
# include <stdio.h>
void swap_1(int, int);
void swap_2(int *, int *);
void swap_3(int *, int *);
int main(void)
{
int a = 3;
int b =
- php 5.4中php-fpm 的重启、终止操作命令
dcj3sjt126com
PHP
php 5.4中php-fpm 的重启、终止操作命令:
查看php运行目录命令:which php/usr/bin/php
查看php-fpm进程数:ps aux | grep -c php-fpm
查看运行内存/usr/bin/php -i|grep mem
重启php-fpm/etc/init.d/php-fpm restart
在phpinfo()输出内容可以看到php
- 线程同步工具类
shuizhaosi888
同步工具类
同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch)
闭锁(CountDownLatch)
public class RunMain {
public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
fin
- bleeding edge是什么意思
haojinghua
DI
不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。
我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。
In computer science, bleeding edge is a term that
- c中实现utf8和gbk的互转
jimmee
ciconvutf8&gbk编码
#include <iconv.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
int code_c
- 大型分布式网站架构设计与实践
lilin530
应用服务器搜索引擎
1.大型网站软件系统的特点?
a.高并发,大流量。
b.高可用。
c.海量数据。
d.用户分布广泛,网络情况复杂。
e.安全环境恶劣。
f.需求快速变更,发布频繁。
g.渐进式发展。
2.大型网站架构演化发展历程?
a.初始阶段的网站架构。
应用程序,数据库,文件等所有的资源都在一台服务器上。
b.应用服务器和数据服务器分离。
c.使用缓存改善网站性能。
d.使用应用
- 在代码中获取Android theme中的attr属性值
OliveExcel
androidtheme
Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.
在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则:
int defaultColor = 0xFF000000;
int[] attrsArray = { andorid.r.
- 基于Zookeeper的分布式共享锁
roadrunners
zookeeper分布式共享锁
首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。
共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。
官
- 两个容易被忽略的MySQL知识
tomcat_oracle
mysql
1、varchar(5)可以存储多少个汉字,多少个字母数字? 相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。 这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0
- zoj 3827 Information Entropy(水题)
阿尔萨斯
format
题目链接:zoj 3827 Information Entropy
题目大意:三种底,计算和。
解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。
#include <cstdio>
#include <cstring>
#include <cmath&