- MySQL 事务的隔离级别
重生之我在成电转码
javamysql事务
MySQL事务的隔离级别定义了多个事务并发执行时,如何防止相互影响。隔离级别越高,数据一致性越强,但并发性能可能降低。四种事务隔离级别MySQL提供4种事务隔离级别(从低到高):隔离级别脏读(DirtyRead)不可重复读(Non-repeatableRead)幻读(PhantomRead)1.读未提交(ReadUncommitted)❌可能发生❌可能发生❌可能发生2.读已提交(ReadCommi
- Git 本地常见快捷操作
笔沫拾光
git
Git本地常见快捷操作1.基本操作操作命令初始化Git仓库gitinit查看Git状态gitstatus添加所有文件到暂存区gitadd.添加指定文件gitadd提交更改gitcommit-m"提交信息"修改最后一次提交信息gitcommit--amend-m"新提交信息"显示提交历史gitlog--oneline--graph显示修改的文件gitdiff2.分支管理操作命令查看当前分支gitbr
- YashanDB UNDO表空间管理
数据库
UNDO表空间用于YashanDB创建和管理回滚(撤销数据库更改)信息,这种信息包括交易行为的记录,且主要是在交易提交之前,统称为undo。undo记录用于:执行ROLLBACK语句回滚事务恢复数据库提供读取一致性使用闪回查询分析较早时间点的数据使用闪回功能从逻辑损坏中恢复设置最短撤销保留期YashanDB提供一种自动化的机制,称为自动撤销管理,用于管理undo信息和空间。当启用自动撤销管理时,始
- 【Git】推送,拉取远程仓库
熙曦Sakura
Gitgit
向远程仓库推送本地已经clone成功远程仓库后,我们便可以向仓库中提交内容,例如新增一个file.txt文件:#新建文件$lsREADME.en.mdREADME.md$vimfile.txt$catfile.txthellogit#提交文件$gitadd.$gitcommit-m"createfile.txt"[master7ce3183]createfile.txt1filechanged,1
- 关闭iterm2中对于行数的限制
你的微笑像拥抱
工具
iTerm2默认的行数限制,超过1000的部分就被隐藏不显示了。处理方式:打开Preferences窗口,点击Profiles,右侧点击Terminal,在Scrollbackline右边勾选Ulimitedscrollback。
- Git 的基本概念和使用方式。
w2361734601
git
Git是一种分布式版本控制系统,用于跟踪文件和目录的变化。Git的基本概念和使用方式如下:仓库(Repository):Git仓库是用来存储项目文件和历史记录的地方。一个Git仓库包含项目的文件、版本记录和配置信息。提交(Commit):提交是Git中存储文件修改的操作。通过提交,你可以把文件的改动保存到Git仓库中,每次提交都会生成一个唯一的哈希值用于标识。分支(Branch):分支是用来管理不
- git常见问题之git pull时Automatic merge failed; fix conflicts and then commit the result.
信阳农夫
其他git
Administrator@PC-20151117FT04MINGW64/e/AsWorkspace/AndroidStudy(master)$gitpulloriginmaster--allow-unrelated-historiesFromgithub.com:nonfuxinyang/android-study *branch master ->FETCH_HEADAuto-m
- sap关账+策略模式(避免大量if elseif)
宜昌李国勇
代码优化java开发语言
旧代码@Transactional(rollbackFor=Exception.class)publicAjaxResultpurchaseOrderReceiptOutSourceAfterSapCloseAccountingPeriod(Longid){SysPurorderPostingLogsysPurorderPostingLog=sysPurorderPostingLogMapper.
- git stash pop后 想找到stash 发现被删除(git坑日记)
hzxOnlineOk
gitgit
git虽然会将我们stashpop后的stash记录移除引用,但是并不会删除,他存放在一些文件里,下面执行以下语句即可查找对应的commitId对应的修改:PS:注意,这里的commitId就是指的stash的Id,里边有我们stash后的文件修改记录,往下滚动即可逐个文件查找gitfsck会出现一堆的ID,找到commit对应的commitId,注意,这边可能是不按顺序的,需要从上到下逐个尝试
- github 仓库查看git第一次commit的记录
HHHHy2019
GITgithubgit
github仓库查看git第一次commit的记录步骤我们这里选仓库TuSimple/naive-ui,首页显示这个仓库最新的git的状态是8978fa923minutesagoGitstats4,460commits,说明现在有4460个commit。我们再点击4,460commits进入查看commit的页面,滑到最底部,点击Older,(网址)地址栏显示为https://github.com
- docker 容器备份成镜像
被编程为难的小娃娃
dockereureka容器
要将Docker容器备份为镜像,可以按照以下步骤操作:1.确定容器名称或ID首先,您需要知道要备份的容器的名称或ID。您可以使用以下命令查看所有正在运行的容器:dockerps如果包含停止的容器:dockerps-a2.提交容器为镜像使用dockercommit命令将容器保存为镜像。格式如下:dockercommit[容器ID或容器名称][镜像名称:标签]例如:dockercommitmy_con
- git基础使用
张高伟
git
强烈建议所有的Git仓库都有一个README,LICENSE,.gitignore文件简易的命令行入门教程:Git全局设置:gitconfig--globaluser.name"滔哥"gitconfig--globaluser.email"
[email protected]"创建git仓库:gitinittouchREADME.mdgitaddREADME.mdgitcommit-m"firstcom
- IDEA中把git commit 处于中间位置的模态框转换为侧边栏标签
htclgb
错误与解决办法gitgithub
因误触一设置按键把本来位置处侧边栏的GitCommit提交窗口更改为中间位置发现不对劲马上去找修改按钮无果后查阅手册发现打开Settings->VersionControl->Commit恢复正常
- Apache SeaTunnel 人物专访 | 张东浩:从使用者到Committer的开源历程
数据库
时光飞逝,转眼间,ApacheSeaTunnel社区已经成为顶级项目快两周年了,其社区贡献者和用户群体也日益壮大。SeaTunnel凭借其高性能和插件灵活的特性,已经成为国内众多知名企业数据同步的基础工具。作为SeaTunnel的贡献者,我个人也有许多感慨,本文给大家介绍下在过去的1年里,我个人在社区持续不断地进行完善和改进心路历程。自我介绍请您简单介绍一下自己,包括职业背景、当前的工作以及加入A
- vscode远程连接服务器离线安装
qq_张文
vscode服务器ide
需要安装两个文件,两个文件的下载地址如下:x86:https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode-server-linux-x64.tar.gzhttps://vscode.download.prss.microsoft.com/dbazure/download/stabl
- JDBC事务
祈祷平安,加油
Java中级java数据库mysql
一、什么事事务1、事务事务(Transaction):是并发控制的单元,是用户定义的一个操作序列。这些操作要么都成功,要么都失败,是一个不可分割的工作单位。通过事务,SqlServer能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。事务通常是以begintransaction开始,以commit或rollback结束。Commit表示提交,即提交事务的所有操作。具体地说就是将事务中所
- vscode离线配置远程服务器
BestRivenCHN
Windowsvscodeidelinux
目录一、前提二、方法2.1查看vscode的commit_id2.2下载linux服务器安装包2.3安装包上传到远程服务器,并进行文件解压缩三、常见错误Failedtosetupsocketfordynamicportforwardtoremoteport(vscode报错解决方法)-CSDN博客一、前提1、已经下载并完成安装好vscode;VisualStudioCode-CodeEditing
- 深度解析RocketMQ核心机制:CommitLog存储与DLedger选举算法
千里码!
rocketmq后端技术javarocketmq算法数据库
深度解析RocketMQ核心机制:CommitLog存储与DLedger选举算法编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039一、Com
- 【Git】版本控制系统Git命令详解
Earnest~
gitelasticsearch大数据
2024.06.062024.06.06\2024.06.06Resources强推:ProGit-Book(git-scm.com).中文版.强烈推荐网址:https://learngitbranching.js.org/?locale=zh_CN.LearnGitGame:基础(Git主要命令)GitCommit(提交)提交记录保存的是你的目录下所有文件的快照。提交记录尽可能地轻量,因此将当前
- MySQLvs Redis 事务:核心差异详解(简单易懂)
以恒1
redis数据库缓存
MySQLvsRedis事务:核心差异详解(简单易懂)一、事务定义对比特性MySQL事务Redis事务事务模型符合ACID(原子性、一致性、隔离性、持久性)非严格ACID,更接近“命令批处理”核心命令BEGIN,COMMIT,ROLLBACKMULTI,EXEC,DISCARD,WATCH设计目标保证数据强一致性实现命令批量执行的原子性底层实现基于日志(Redo/UndoLog)和锁机制基于命令队
- Git 指令大全(全干货版)
git
基础操作#初始化仓库gitinit#克隆远程仓库gitclone#查看当前状态gitstatus#添加全部修改到暂存区gitadd.#提交到本地仓库gitcommit-m"提交说明"#查看提交历史(精简版)gitlog--oneline#查看文件修改差异gitdiff分支管理#创建新分支gitbranch#切换分支gitcheckout#创建并切换分支gitcheckout-b#合并分支到当前分支
- MOSN 基于延迟负载均衡算法——走得更快,期待走得更稳
go网关负载均衡延迟加载开源
文|纪卓志(GitHubID:jizhuozhi)京东高级开发工程师MOSN项目Committer专注于云原生网关研发的相关工作,长期投入在负载均衡和流量控制领域前言这篇文章主要是介绍MOSN在v1.5.0中新引入的基于延迟的负载均衡算法#2253。首先会对分布式系统中延迟出现的原因进行剖析,之后介绍MOSN都通过哪些方法来降低延迟,最后构建与生产环境性能分布相近的测试用例来对算法进行验证。在开始
- Git 指令大全(全干货版)
git
基础操作#初始化仓库gitinit#克隆远程仓库gitclone#查看当前状态gitstatus#添加全部修改到暂存区gitadd.#提交到本地仓库gitcommit-m"提交说明"#查看提交历史(精简版)gitlog--oneline#查看文件修改差异gitdiff分支管理#创建新分支gitbranch#切换分支gitcheckout#创建并切换分支gitcheckout-b#合并分支到当前分支
- Python实战笔记-删除数据5
MMGNFT
K总编程笔记
importpymysqldb=pymysql.connect(host=“127.0.0.1”,user=‘root’,password=‘11111111’,database=“pymysql_test”,port=3306)cursor=db.cursor()sql=“deletefromarticlewhereid=2”cursor.execute(sql)db.commit()db.cl
- 【技术随笔】Mysql数据库亿级数据表的快速迁移,详细教程及避坑指南
QTEASY量化交易
随笔笔记mysql数据库mysqlandroid
迁移mysql大量数据的详细教程及避坑指南问题说明操作思路操作方法生成数据库文件批量创建空数据表批量导入数据单个导入数据暂时关闭auto_commit和数据检查:效果对比恢复mysql设置避坑指南无法dump数据到文件:报错mysqlimport命令不存在无法读取本地文件,提示Local-infile被禁用问题说明做量化交易需要大量的金融数据,通常保存在mysql数据库中,有时候我们需要将这些金融
- 1-20 Git代码拉取不全问题
_沧浪之水_
GIT实用指南git
如何保证git代码拉取完全gitadd路径(添加文件)gitcommit-m"feat|>改动说明"gitpushoriginHEAD:refs/for/master推送到远程仓库git远程拉取的时候不全问题解决1、先克隆远程仓库到本地,gitclone2、gitcheckout-bmasterorigin/master//创建本地master分支并关联远程仓库(要先切换进入目录,否侧报错)关联远
- 解释 Git 的基本概念和使用方式
liuhaoran___
git
Git是一种分布式版本控制系统,用于跟踪文件和文件夹的变化,以便多人协作开发代码、管理项目和跟踪代码变更历史。以下是Git的基本概念和使用方式:仓库(Repository):Git仓库是保存代码的地方。它可以是本地仓库(在个人计算机上)或远程仓库(如GitHub、GitLab、Bitbucket等)。通过克隆(clone)一个远程仓库,你可以在本地机器上创建一个副本。提交(Commit):提交是保
- Github-介绍
创益无界
嵌入式学习github
GitHub是一个基于Git版本控制系统的代码托管平台,广泛用于开源项目、团队协作、代码管理等方面。它让开发者能够上传、分享、修改、协作、跟踪代码的更改。1.GitHub的基本功能:代码托管:GitHub提供云端存储代码的功能,可以方便开发者上传、下载和管理自己的代码。版本控制:通过Git进行版本管理,每次提交(commit)都会记录下代码的历史,方便回溯和协作。协作与分支管理:可以创建分支,开发
- Git出现 [rejected] master -> master (fetch first) error: failed to push some refs to解决方法
码农研究僧
BUGgitgithubssh
目录在gitadd以及commit之后通过push的时候出现如下问题PSD:\项目\manongyanjiuseng>gitpushoriginmasterTossh://xx.git![rejected]master->master(fetchfirst)error:failedtopushsomerefsto'ssh://xx.git'hint:Updateswererejectedbecau
- Git解决本地与远程的代码冲突
HUGOkungggg
杂gitgithub
情况1:当本地的代码已经commit我遇到的是这个情况。方法肯定有很多。这里仅记录我处理成功的。首先我们应该把远端的代码分支拉取到本地的一个新的临时分支上。gitfetchoriginremote_brach:local_tmp然后可以通过下面命令查看与本地最新分支的差异。gitdifflocal_tmp在自己想提交的分支上执行合并命令。gitmergelocal_tmp如果有不能自动合并的冲突文
- 戴尔笔记本win8系统改装win7系统
sophia天雪
win7戴尔改装系统win8
戴尔win8 系统改装win7 系统详述
第一步:使用U盘制作虚拟光驱:
1)下载安装UltraISO:注册码可以在网上搜索。
2)启动UltraISO,点击“文件”—》“打开”按钮,打开已经准备好的ISO镜像文
- BeanUtils.copyProperties使用笔记
bylijinnan
java
BeanUtils.copyProperties VS PropertyUtils.copyProperties
两者最大的区别是:
BeanUtils.copyProperties会进行类型转换,而PropertyUtils.copyProperties不会。
既然进行了类型转换,那BeanUtils.copyProperties的速度比不上PropertyUtils.copyProp
- MyEclipse中文乱码问题
0624chenhong
MyEclipse
一、设置新建常见文件的默认编码格式,也就是文件保存的格式。
在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码一致,即GBK。
在简体中文系统下,ANSI 编码代表 GBK编码;在日文操作系统下,ANSI 编码代表 JIS 编码。
Window-->Preferences-->General -
- 发送邮件
不懂事的小屁孩
send email
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
- 动画合集
换个号韩国红果果
htmlcss
动画 指一种样式变为另一种样式 keyframes应当始终定义0 100 过程
1 transition 制作鼠标滑过图片时的放大效果
css
.wrap{
width: 340px;height: 340px;
position: absolute;
top: 30%;
left: 20%;
overflow: hidden;
bor
- 网络最常见的攻击方式竟然是SQL注入
蓝儿唯美
sql注入
NTT研究表明,尽管SQL注入(SQLi)型攻击记录详尽且为人熟知,但目前网络应用程序仍然是SQLi攻击的重灾区。
信息安全和风险管理公司NTTCom Security发布的《2015全球智能威胁风险报告》表明,目前黑客攻击网络应用程序方式中最流行的,要数SQLi攻击。报告对去年发生的60亿攻击 行为进行分析,指出SQLi攻击是最常见的网络应用程序攻击方式。全球网络应用程序攻击中,SQLi攻击占
- java笔记2
a-john
java
类的封装:
1,java中,对象就是一个封装体。封装是把对象的属性和服务结合成一个独立的的单位。并尽可能隐藏对象的内部细节(尤其是私有数据)
2,目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而使软件错误能够局部化,减少差错和排错的难度。
3,简单来说,“隐藏属性、方法或实现细节的过程”称为——封装。
4,封装的特性:
4.1设置
- [Andengine]Error:can't creat bitmap form path “gfx/xxx.xxx”
aijuans
学习Android遇到的错误
最开始遇到这个错误是很早以前了,以前也没注意,只当是一个不理解的bug,因为所有的texture,textureregion都没有问题,但是就是提示错误。
昨天和美工要图片,本来是要背景透明的png格式,可是她却给了我一个jpg的。说明了之后她说没法改,因为没有png这个保存选项。
我就看了一下,和她要了psd的文件,还好我有一点
- 自己写的一个繁体到简体的转换程序
asialee
java转换繁体filter简体
今天调研一个任务,基于java的filter实现繁体到简体的转换,于是写了一个demo,给各位博友奉上,欢迎批评指正。
实现的思路是重载request的调取参数的几个方法,然后做下转换。
- android意图和意图监听器技术
百合不是茶
android显示意图隐式意图意图监听器
Intent是在activity之间传递数据;Intent的传递分为显示传递和隐式传递
显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图;不指明调用的名称,根据设
- spring3中新增的@value注解
bijian1013
javaspring@Value
在spring 3.0中,可以通过使用@value,对一些如xxx.properties文件中的文件,进行键值对的注入,例子如下:
1.首先在applicationContext.xml中加入:
<beans xmlns="http://www.springframework.
- Jboss启用CXF日志
sunjing
logjbossCXF
1. 在standalone.xml配置文件中添加system-properties:
<system-properties> <property name="org.apache.cxf.logging.enabled" value=&
- 【Hadoop三】Centos7_x86_64部署Hadoop集群之编译Hadoop源代码
bit1129
centos
编译必需的软件
Firebugs3.0.0
Maven3.2.3
Ant
JDK1.7.0_67
protobuf-2.5.0
Hadoop 2.5.2源码包
Firebugs3.0.0
http://sourceforge.jp/projects/sfnet_findbug
- struts2验证框架的使用和扩展
白糖_
框架xmlbeanstruts正则表达式
struts2能够对前台提交的表单数据进行输入有效性校验,通常有两种方式:
1、在Action类中通过validatexx方法验证,这种方式很简单,在此不再赘述;
2、通过编写xx-validation.xml文件执行表单验证,当用户提交表单请求后,struts会优先执行xml文件,如果校验不通过是不会让请求访问指定action的。
本文介绍一下struts2通过xml文件进行校验的方法并说
- 记录-感悟
braveCS
感悟
再翻翻以前写的感悟,有时会发现自己很幼稚,也会让自己找回初心。
2015-1-11 1. 能在工作之余学习感兴趣的东西已经很幸福了;
2. 要改变自己,不能这样一直在原来区域,要突破安全区舒适区,才能提高自己,往好的方面发展;
3. 多反省多思考;要会用工具,而不是变成工具的奴隶;
4. 一天内集中一个定长时间段看最新资讯和偏流式博
- 编程之美-数组中最长递增子序列
bylijinnan
编程之美
import java.util.Arrays;
import java.util.Random;
public class LongestAccendingSubSequence {
/**
* 编程之美 数组中最长递增子序列
* 书上的解法容易理解
* 另一方法书上没有提到的是,可以将数组排序(由小到大)得到新的数组,
* 然后求排序后的数组与原数
- 读书笔记5
chengxuyuancsdn
重复提交struts2的token验证
1、重复提交
2、struts2的token验证
3、用response返回xml时的注意
1、重复提交
(1)应用场景
(1-1)点击提交按钮两次。
(1-2)使用浏览器后退按钮重复之前的操作,导致重复提交表单。
(1-3)刷新页面
(1-4)使用浏览器历史记录重复提交表单。
(1-5)浏览器重复的 HTTP 请求。
(2)解决方法
(2-1)禁掉提交按钮
(2-2)
- [时空与探索]全球联合进行第二次费城实验的可能性
comsci
二次世界大战前后,由爱因斯坦参加的一次在海军舰艇上进行的物理学实验 -费城实验
至今给我们大家留下很多迷团.....
关于费城实验的详细过程,大家可以在网络上搜索一下,我这里就不详细描述了
在这里,我的意思是,现在
- easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
daizj
oracleORA-12154
用easy connect连接出现“tns无法解析指定的连接标示符”的错误,如下:
C:\Users\Administrator>sqlplus username/
[email protected]:1521/orcl
SQL*Plus: Release 10.2.0.1.0 – Production on 星期一 5月 21 18:16:20 2012
Copyright (c) 198
- 简单排序:归并排序
dieslrae
归并排序
public void mergeSort(int[] array){
int temp = array.length/2;
if(temp == 0){
return;
}
int[] a = new int[temp];
int
- C语言中字符串的\0和空格
dcj3sjt126com
c
\0 为字符串结束符,比如说:
abcd (空格)cdefg;
存入数组时,空格作为一个字符占有一个字节的空间,我们
- 解决Composer国内速度慢的办法
dcj3sjt126com
Composer
用法:
有两种方式启用本镜像服务:
1 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置)。见“例1”
2 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置)。见“例2”
为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下 1 2 3 4 5
- 高效可伸缩的结果缓存
shuizhaosi888
高效可伸缩的结果缓存
/**
* 要执行的算法,返回结果v
*/
public interface Computable<A, V> {
public V comput(final A arg);
}
/**
* 用于缓存数据
*/
public class Memoizer<A, V> implements Computable<A,
- 三点定位的算法
haoningabc
c算法
三点定位,
已知a,b,c三个顶点的x,y坐标
和三个点都z坐标的距离,la,lb,lc
求z点的坐标
原理就是围绕a,b,c 三个点画圆,三个圆焦点的部分就是所求
但是,由于三个点的距离可能不准,不一定会有结果,
所以是三个圆环的焦点,环的宽度开始为0,没有取到则加1
运行
gcc -lm test.c
test.c代码如下
#include "stdi
- epoll使用详解
jimmee
clinux服务端编程epoll
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linu
- Hibernate对Enum的映射的基本使用方法
linzx0212
enumHibernate
枚举
/**
* 性别枚举
*/
public enum Gender {
MALE(0), FEMALE(1), OTHER(2);
private Gender(int i) {
this.i = i;
}
private int i;
public int getI
- 第10章 高级事件(下)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 孙子兵法
roadrunners
孙子兵法
始计第一
孙子曰:
兵者,国之大事,死生之地,存亡之道,不可不察也。
故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五
曰法。道者,令民于上同意,可与之死,可与之生,而不危也;天者,阴阳、寒暑
、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法
者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知之者不胜。故校
之以计,而索其情,曰
- MySQL双向复制
tomcat_oracle
mysql
本文包括:
主机配置
从机配置
建立主-从复制
建立双向复制
背景
按照以下简单的步骤:
参考一下:
在机器A配置主机(192.168.1.30)
在机器B配置从机(192.168.1.29)
我们可以使用下面的步骤来实现这一点
步骤1:机器A设置主机
在主机中打开配置文件 ,
- zoj 3822 Domination(dp)
阿尔萨斯
Mina
题目链接:zoj 3822 Domination
题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望。
解题思路:大白书上概率那一张有一道类似的题目,但是因为时间比较久了,还是稍微想了一下。dp[i][j][k]表示i行j列上均有至少一枚棋子,并且消耗k步的概率(k≤i∗j),因为放置在i+1~n上等价与放在i+1行上,同理