目录创建数据库数据库配置```application.properties```测试类检查是否连接成功springboot操作数据库springboot集成mybatis 创建数据库CREATE DATABASE /*!32312 IF NOT EXISTS*/`lou_springboot` /*!40100 DEFAULT CHARACTER SET u
样例代码先编写一个文件上传页面/static/upload-test.html请求路径为/upload其中enctype=multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <title>Spring Boot 文件上传测试</title&g
使用以下命令创建一个用户名为 c l \rm cl cl且具有 s u
启动dockersystemctl start docker将当前用户添加到docker用户组为了避免每次使用docker命令都需要加上sudo权限可以将当前用户加入安装中自动创建的docker用户组(可以参考官方文档):sudo usermod -aG docker $USER镜像(images)1.docker pull ubuntu:20.04
下载git bash就可以用shell脚本了这里是关闭端口8888的占用进程,改端口只需要在第一行改比较方便hhhnetstat -o -n -a | findstr :8888 > in.txtflag=0port=0for line in `cat in.txt`do if [ "$line" == "LISTENING" ] then flag=1 continue elif [ "$flag" == "1" ] th
Link考虑第一批人在第kkk轮死掉,那么这些死掉的人血量在[(k−1)∗(n−1)+1,k∗(n−1)][(k-1)*(n-1)+1,k*(n-1)][(k−1)∗(n−1)+1,k∗(n−1)]范围内定义f[i][j]f[i][j]f[i][j]表示已经死了iii个人,且剩下的n−in-in−i个人可以是[j+1,x][j+1,x][j+1,x]的任何血量转移的时候枚举下一批过了kkk轮死掉qqq人,那么容易推得下一批人的血量范围是[j+(k−1)∗(n−i−1)+1,j+k∗(n−i−1)][
LINK题意有 n 只怪物,每只怪物的生成概率为 pi 。只有 k 只怪物会生成(任意 k只),不生成的怪物原本的生成概率将会向后转移给下一只会可能生成的怪物,如果是第n个那么就转移给第一个,问最终每个怪物生成的概率是多少考虑计算虫子iii的生成概率当j<ij<ij<i时,只有[j,i−1][j,i-1][j,i−1]的怪物都没有生成且iii被生成时,jjj的初始生成概率才会转移给iii当j>ij>ij>i时,只有[j,n][j,n][j,n]和[1,i−1]
Link考虑先把所有边反向,问题转化为从kkk出发,在不经过k−>vk->vk−>v路径的条件下无法到达点vvv的合法vvv个数一个点vvv和kkk有边时,由于是反向图我们从kkk走到vvv再走到uuu,此时在原图中就存在u−>v−>ku->v->ku−>v−>k这条路径那么点uuu显然不是一个合法点就这样我们不断枚举和kkk相邻的点vvv,然后钦定v−>kv->kv−>k是原图路径的最后一步于是我们在反向图上bfsbfsb
Link在杨辉三角的前nnn行中,有多少个数字是777的倍数?求∑i=1n∑j=1i[(ij)%7==0]\sum\limits_{i=1}^n \sum\limits_{j=1}^i[\binom{i}{j}\%7==0]i=1∑nj=1∑i[(ji)%7==0]考虑卢卡斯定理,Lucas(i,j,p)=(i%pj%p)∗Lucas(i/p,j/p,p)%pLucas(i,j,p)=\binom{i\%p}{j\%p}*Lucas(i/p,j/p,p)\%pLucas(i,j,p)=(j%p
Link先考虑[1,n][1,n][1,n]区间中最大的那些数字mxmxmx,这些数字把[1,n][1,n][1,n]分成若干个小区间考虑ap1=ap2=ap3=mx&&p1<p2<p3a_{p_1}=a_{p_2}=a_{p_3}=mx\&\&p_1<p_2<p_3ap1=ap2=ap3=mx&&p1<p2<p3设[p1+1,p2−1][p_1+1,p_2-1][p1+1,p2−1]最大数下标为
A - ZebrasLINK考虑一个子序列必定是以000开头,后面跟着若干个101010然后考虑当前ai=1a_i=1ai=1,暂时存下来,等下一个遇到的000去匹配若ai=0a_i=0ai=0,如果之前有111未被匹配,就匹配上去,然后接在刚好能接的某个子序列的后面如果之前的111都被匹配了,只能以这个000开头新加一个子序列#include <bits/stdc++.h>using namespace std;const int maxn = 3e5+10;char a
Link考虑2a2^a2a最多被选择一次.如果选择两次2a,2a2^a,2^a2a,2a,明显是不如选2a,2a+12^a,2^{a+1}2a,2a+1优秀那么知道这个以后,就会发现如果选择2a2^a2a,就不会再选2−a2^{-a}2−a因为2a,−2a2^a,-2^{a}2a,−2a肯定是不如2a,−2a+12^{a},-2^{a+1}2a,−2a+1优秀的这样我们就能得到对于一个aaa,要么选择2a2^a2a,要么选择2−a2^{-a}2−a我们从a=0a=0a=0的情况开始考虑如果存在数
Link结论一对bbb排序,设bib_ibi放在apia_{p_i}api的前面,那么最优策略下可以是p1<p2<p3......p_1<p_2<p_3......p1<p2<p3......的一组解可以反证,如果最有策略不满足上式,也就是存在i,ji,ji,j满足bi<bj&&pi>pjb_i<b_j\&\&p_i>p_jbi<bj&&pi>pj那么对于aa
f[i]=∑j=1i( f[j−1]+sum(j,i) )f[i]=\sum\limits_{j=1}^i (\ f[j-1]+sum(j,i)\ )f[i]=j=1∑i( f[j−1]+sum(j,i) )f[i]=∑j=1i−1f[j[+∑j=1isum(j,i)f[i]=\sum\limits_{j=1}^{i-1}f[j[+\sum\limits_{j=1}^i sum(j,i)f[i]=j=1∑i−1f[j[+j=1∑isum(j,i)...
Link考虑定义f[i][0/1]f[i][0/1]f[i][0/1]表示子树iii内能匹配的最大数目(状态0/10/10/1表示节点iii是否被使用)fff数组做一遍树形dpdpdp就可以得到.然后考虑换根,也就是当除掉点uuu后整棵树的最大匹配数目想要得到除去uuu后的最大匹配数分为两部分,一个是uuu子树内,这部分显然就是∑(u,v)max{ f[v][0],f[v][1] }\sum\limits_{(u,v)}\max\{\ f[v][0],f[v][1]\ \}(u
Link考虑uuu点在qqq次询问中出现次数为奇数次那必定无法使所有边经过偶数次,因为uuu的邻边被经过了奇数次,邻边就必然有一条边被经过奇数次考虑所有点在qqq次询问中都出现了偶数次,那么建一颗生成树我们断言,对于询问u,vu,vu,v只需从uuu在树上走到vvv即可满足最后每条边经过偶数次考虑构造一张新图,对于询问(u,v)(u,v)(u,v)在新图上由点uuu向点vvv连一条边这样新图形成若干个连通分量,考虑每个连通分量的度数都是偶数这么这个连通分量必定存在欧拉回路,从起点出发必定回到终
D - Dividing By Two给定数A,BA,BA,B,每次可以把AAA加111,或者把A/2A/2A/2(要求AAA为偶数)问最少多少次可以把AAA变成BBB考虑把BBB变成AAA,相当于每次只能乘以222或让自己减111设共执行k1k_1k1次乘222操作,k2k_2k2次减111操作A=B∗2k1−∑i=1k22ziA=B*2^{k_1}-\sum\limits_{i=1}^{k_2} 2^{z_i}A=B∗2k1−i=1∑k22zi其中zi∈[0,k1]z_i\in
LINK注意到当AAA说BBB是好人,无非两种情况.Ⅰ.AAA是好人说真话,那么BBB也是好人Ⅱ.AAA是坏人说假话,
LINK考虑权值最大的节点为zzz,那么其他所有点最后都是跳到这个点,且不能越过这个点到其他点那么其实我们可以把所有其他节点的答案都加11
LINKnnn个元素每个拥有ai,bia_i,b_iai,bi两个属性,没有两个元素的两个属性都相同.问选出三个元素使得他们的aaa属性各不相同或bbb属性各不
LINK给一棵nnn个节点、边权未知的树定义两个节点之间的距离为路径上所有边权的gcdgcdgcd。每次你可以询问
LINK找到最小的nnn满足∑i=1ni>=hpa+hpb\sum\limits_{i=1}^ni>=hp_a+hp_bi=1∑ni>=hpa+hpb可以证明,在nnn轮对决中打死两个怪物一定是最优的(因为可以选择先打死AAA或先打死BBB)定义prei=∑j=1ijpre_i=\sum\limits_{j=1}^i jprei=j=1
E - Magic Square没什么好说的,模拟转转转就好了,自认为我写的还是比较简便的.#include <bits/stdc++.h>using namespace std;const int maxn = 3e5+10
Link注意到任何时刻s1,s2,s3s_1,s_2,s_3s1,s2,s3的长度不会多于250250250那么定义f[i][j][k]f[i][j][k]f[i][j][k]表示当三个串分别匹配到i,j,ki,j,ki,j,k位置时
Link设w=n−k2w=\frac{n-k}{2}w=2n−k,如下构造可保证一定有解[w个1+1个0] [w个1+1个0] ..... [w个1+1个0] [若干个1]
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号