- minio 大视频观看,下载
zhou周大哥
音视频java前端
在线观看/***下载视频文件fileName文件路径名称文件路径BacketName/video/1111.mp4需要截取桶名后面的路径video/1111.mp4video前面不要带/**@paramfileName*@paramrequest*@paramresponse*/publicvoidplay(StringfileName,HttpServletRequestrequest,Http
- 二十:英语流利说Level2-Unit2-Part5(中英文版)
要有钱要悠闲
L2-U2-P5-1Listening:WhatDidLisaDoToday?ThisiswhatLisadidearliertoday.这是丽莎今天早些时候做的。Thismorningshegotupat6:30.今天早上她六点半起床。Shegotdressedbetween6:30and6:40.她在6:30到6:40之间穿好衣服。Ittook10minutesforhertogetdress
- maven的pom引入第三方jar包的两种方式
苏supper
mavenjar
方式1:直接在maven的pom.xml增加如下配置,直接引入jar包。注意scope为system,systemPath为jar包的路径,groupId、artifactId、version按实际填写。com.sysutils1.0systemD:/MyWork/IdeaProjects/java-web-maven/out/artifacts/utils/utils.jar方式2:把jar包i
- 程序员的实用神器
ak2111
程序人生程序人生
概述在软件开发的海洋中,程序员们需要依赖一整套实用的工具和系统来指引、加速和优化他们的工作流程。我们从代码编写、版本控制到测试和部署罗列一些广泛认可的“神器”:1.代码编辑器和集成开发环境(IDE)VisualStudioCode:一个轻量级但功能强大的代码编辑器,支持多种语言和插件。IntelliJIDEA:尤其适用于Java开发者,提供强大的智能代码助手和代码分析功能。Eclipse:一款历史
- python操作excel
大得369
pythonexcel开发语言
#pipinstallopenpyxl安装fromopenpyxlimportWorkbookfromopenpyxl.stylesimportAlignment,Border,Side#创建一个新的工作簿wb=Workbook()#选择活动工作表ws=wb.active#设置列宽#设置A列宽度为20ws.column_dimensions['A'].width=20#设置B列宽度为30ws.co
- 【大模型】大模型 CPU 推理之 llama.cpp
szZack
大语言模型人工智能大模型人工智能llama.cpp
【大模型】大模型CPU推理之llama.cppllama.cpp安装llama.cppMemory/DiskRequirementsQuantization测试推理下载模型测试参考llama.cpp描述Themaingoalofllama.cppistoenableLLMinferencewithminimalsetupandstate-of-the-artperformanceonawideva
- 九齐单片机---官方Example_Code
饕餮tt
技术分享
看到似乎很多人在下载九齐IDE的时候没有把Example_Code也一起下载,也有的人下载了不知道在哪找,我这里把官方的examplecode分享出来,需要的可以自取,链接失效的话评论区提醒一下。如果你有下载Example_Code的话,假如你的下载路径是默认的,那么到C:\Nyquest这个文件夹内寻找。另外如果本身没下载的,可以在ide的这个位置找到:某网盘地址:链接:https://pan.
- LeetCode: 891. Sum of Subsequence Widths
杨领well
LeetCodeLeetCodeWeeklyContest98杨领well的LeetCode题解专栏
LeetCode:891.SumofSubsequenceWidths题目描述GivenanarrayofintegersA,considerallnon-emptysubsequencesofA.ForanysequenceS,letthewidthofSbethedifferencebetweenthemaximumandminimumelementofS.Returnthesumofthew
- [LeetCode] 891. Sum of Subsequence Widths 子序列宽度之和
weixin_30568591
python数据结构与算法
GivenanarrayofintegersA,considerallnon-emptysubsequencesofA.ForanysequenceS,letthewidthofSbethedifferencebetweenthemaximumandminimumelementofS.ReturnthesumofthewidthsofallsubsequencesofA.Astheanswerma
- NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL、SQL-PaLM)、新一代数据集BIRD-SQL解读
汀、人工智能
LLM工业级落地实践copilot人工智能NL2SQLLLM自然语言处理NL2DSLText2SQL
NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL)、新一代数据集BIRD-SQL解读NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(SpidervsBIRD)全面对比优劣分析[Text2SQL、Text2DSL]NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理NL2SQ
- LeetCode 891. Sum of Subsequence Widths (找规律)
HuangHongkai_
算法LeetCode数学
GivenanarrayofintegersA,considerallnon-emptysubsequencesofA.ForanysequenceS,letthewidthofSbethedifferencebetweenthemaximumandminimumelementofS.ReturnthesumofthewidthsofallsubsequencesofA.Astheanswerma
- wpf datagrid 设置自动新增行后 避免行内没有内容也会新增行处理
梅兰松竹菊
wpfc#
前台后台privatevoidDataGrid_OnRowEditEnding(objectsender,DataGridRowEditEndingEventArgse){if(e.EditAction==DataGridEditAction.Commit){varnewItem=e.Row.ItemasZjwz;Console.WriteLine("1111:"+_gridZhuJieList)
- 并发基础知识之线程的基本概念
秃头哥编程
1.创建线程线程表示一条单独的执行流,它有自己的程序执行计数器,有自己的栈创建线程有两种方式:一种是继承Thread,另外一种是实现Runnable接口。(1)继承ThreadJava中java.lang.Thread这个类表示线程,一个类可以继承Thread并重写run方法来实现一个线程。publicclassMyThreadextendsThread{@Overridepublicvoidru
- Visual design principles
小high球
视觉规范主要是3个方面:易读,易触,一致关于易读:字体(32dp&24dp),文本长度(120字符),对比度比率4.5:1,晚上易读性关于易触:合适的点击区域尺寸(最小76*76),点击区域间隔(23dp)一致性:一致的icon,术语和交互模板。清晰的可操作和不可操作翻译出自:https://designguidelines.withgoogle.com/automotive-os-apps/de
- linux 系统 shell 脚本,实现【查找进程,杀进程,启动 jar 包,打印输出日志】
ilyuc
运维相关
先创建一个shell文件touchrestart.sh编写内容vimrestart.sh输入以下内容#!/bin/shAPP_NAME=dp.jarPID=`ps-ef|grepjava|grep$APP_NAME|awk'{print$2}'`echo"finddp.jarPID:$PID"kill-9$PIDecho"killeddp.jarPID:$PID"nohupjava-jardp.j
- 在IntelliJ IDEA中设置背景图片的详细指南
N201871643
在IntelliJintellij-ideajavaide
在IntelliJIDEA中设置背景图片的详细指南目录在IntelliJIDEA中设置背景图片的详细指南一、引言二、IntelliJIDEA概述三、个性化开发环境的重要性四、准备工作与先决条件五、通过配置修改实现背景图片设置5.1手动更改配置文件5.2使用插件实现背景设置六、高级定制与动态背景七、注意事项与常见问题解决八、结论与未来展望九、参考文献与拓展阅读一、引言在软件开发领域,集成开发环境(I
- javaweb基于ssm框架校园即时服务平台管理系统设计与实现
ancen_73bd
1、项目介绍系统开发平台:JDK1.8+Windows7+Maven3.6.1开发语言:Java后台框架:SSM前端:layui数据库:MySql5.7Navicat开发环境:IntellijIdea浏览器:Chrome或360浏览器本系统分为两个用户:学生、管理员。学生:可以发布任务、已接受任务、已发布任务、资料修改管理员:可以对用户进行管理、任务的管理、安全设置管理2、项目技术后端框架:SSM
- 对于IDEA中default encoding for properties file和transparent native-to-ascii conversion的理解
不想做实验了
intellij-ideajavaide
关于defaultencodingforpropertiesfile对于properties文件有两个设置,一个是左边下拉框选encoding字符集,默认的是iso8859-1编码和解码,先不勾选右边的transparentnative-to-ascii-conversion。如果这时选了别的encoding编码集,那么读取的时候解码仍然是按照iso8859-1(只变编码不管解码,很坑!),就肯定
- cv2 画多边形不填充_opencv 画图
虎哥说衣不二
cv2画多边形不填充
learningopencv第6章第1题解决方案前言opencv提供了丰富的函数用以图形绘制,包括矩形,线条,椭圆和多边形等,本篇文章对opencv的基本绘图函数做了一些介绍和说明。椭圆绘制绘制椭圆的函数说明和参数说明如下:voidellipse(InputOutputArrayimg,Pointcenter,Sizeaxes,doubleangle,doublestartAngle,double
- 安卓开发中的Glide库的使用
我要最优解
androidglide
Glide是一个功能强大的Android图片加载库,它支持加载多种类型的图片格式。以下是Glide可以处理的一些常见图片类型:JPEG:支持加载JPEG格式的图片。PNG:支持加载PNG格式的图片,包括具有透明背景的图片。GIF:支持加载GIF动画,并能够播放动画或将其作为静态帧显示。WebP:支持加载Google的WebP格式图片,包括无损和有损压缩的变体。Bitmap:可以直接加载Androi
- python find第一个 最后一个_Python3基础 str find+index 是否存在指定字符串,有则返回第一个索引值...
weixin_39631667
pythonfind第一个最后一个
Python:3.7.0OS:Ubuntu18.04.1LTSIDE:PyCharm2018.2.4Conda:4.5.11typesetting:Markdowncodecoder@Ubuntu:~$sourceactivatepy37(py37)coder@Ubuntu:~$ipythonPython3.7.0(default,Jun282018,13:15:42)Type'copyright
- Java高并发秒杀
小螺丝钉cici
高并发下的事务秒杀业务场景具有典型的“事务”特性秒杀红包类需求常见Demo:https://github.com/sunzeying/seckill视频来源:https://www.imooc.com/video/11830image.pngimage.png秒杀事务相关:(减库存,记录购买明细)->事务处理->数据落地MySQL实现秒杀难点分析:难点问题:竞争(多个用户同时秒杀这个商品。就产生了
- Qt Creator 界面
倔强的大蜗牛
QTqt开发语言c++
博主主页:倔强的大蜗牛专栏分类:QT❤️感谢大家点赞收藏⭐评论✍️目录一、认识QtCreator界面1、总览2、左边栏3、代码编辑区4、UI设计界面5、构建区一、认识QtCreator界面1、总览2、左边栏在编辑模式下,左边竖排的两个窗口叫做"边栏"。①是项目文件管理窗口,②是打开文件列表窗口。在QtCreator菜单"控件"------->"ShowLeftSidebar",或者使快捷键:"Al
- 每天一个单词,一起来学习吧!
紫央
privilege特权,优惠,特许,荣幸;给予优惠,给予特权例:Educationshouldnotbeconsideredtobeaprivilegeinamodernsociety.在现代社会中,受教育不应该被看成是一种特权。Ourmembershavetheprivilegeofusingthelendingserviceofthelibrary.我们的会员享有图书馆借书服务的特权。同义词:
- 关于ios上架的那些坑
人鱼小姐ww
uniappios
无法提交审核1、您的App包含NSUserTrackingUsageDescription解决方法:Hbuilder去掉使用广告标识,重新打包即可2、邮件通知:缺少推送通知授权,实际上app中并未用到推送相关功能解决方法:确保app打包时的配置确实没有勾Push,邮件直接忽略审核被拒绝1、应用必须以销售商和反应该名称的公司名称发布拒绝信息如下:Guideline5.1.1-Legal-Privac
- java文件过大idea不能编译解决
原原点点
工具使用javaintellij-ideaintellijidea
遇到的问题在使用idea的过程中,项目中有java文件超过一定的大小这个时候,我们打开java文件就不会自动编译,影响观看代码。解决方案这个问题比较好解决,我们可以打开idea的help下的EditCustomProperties,在里面加上如下配置,并且重启idea即可idea.max.intellisense.filesize=50005000的单位是kb,可以按照自己的实际情况配置数值。
- pycharm修改文件大小限制
Qredsun
pycharm
场景:方法:打开pycharm安装目录下的idea.properties增加配置项:idea.max.intellisense.filesize=99999
- 2020-04-15 Android中Glide获取缓存大小并清除缓存图片
面向未来41319
今天在使用Glide的时候发现url里面的图片已经修改了,但ImageView一直不更新,不管退出,重启应用程序,想到是缓存的问题,那就要清除缓存清除缓存的方法有Glide.get(this).clearDiskCache();Glide.get(this).clearMemory();但是不能运行在主线程中,需要另外启动线程来运行@OverrideprotectedvoidonCreate(Bu
- SpringBoot日志使用:Slf4j与Logback
I like Code?
springbootlogbackjava
步骤一:引入lombok即可,lombok自带@Slf4j注解(网上说不用引入api的依赖,若报错可添加)org.projectlomboklombok1.18.30providedorg.slf4jslf4j-api1.7.30ch.qos.logbacklogback-classic1.2.11步骤二:编写logback.xml%d{yyyy-MM-ddHH:mm:ss}[%thread]%-
- Vuex状态管理
EO_eaf6
参考:https://baijiahao.baidu.com/s?id=1618794879569468435&wfr=spider&for=pc简单入门加实例:转自:https://www.jianshu.com/p/ff2adb84c7f2针对于vue之间各个组件的传值复杂问题使用vuex来管理状态值,值一旦被修改,所有引用的地方会自动更新index文件创建Vuex.Store实例保存到变量s
- 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&