自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Garett的博客

令人智熄

  • 博客(39)
  • 收藏
  • 关注

原创 阿里云CentOS安装Chrome教程

2. 直接通过yum来安装npm解决依赖问题(我之前是通过sudo dnf install来安装的,一直不行,快崩溃了)执行yum provides */libpango-1.0.so.0查看依赖包来源。我自己安装的时候一直有问题,浪费了很久才解决,所以特地记录一下,希望能够帮到你。5.查看chrome版本,如果成功,那么恭喜你,表示安装完成大功告成。6.如果执行第五步执行的时候出现类似的如下错误,表示缺少相关依赖包。如果在阿里云上下载不下来,多试几次。1.下载chrome安装包。再查看chrome版本。

2023-05-20 16:32:05 714

原创 手速巅峰,留帖纪念

手速巅峰时刻!!!

2022-08-21 11:47:52 121

原创 「LeetCode」以组为单位订音乐会门票 线段树二分

原题链接https://leetcode.cn/problems/booking-concert-tickets-in-groups/存个模板,以备不时之需🧐class BookMyShow { public int n; public int m; public MaxSegmentTree t1; public SumSegmentTree t2; public int lastLine=0; public BookMyShow(int

2022-05-29 09:36:38 146

原创 「LeetCode」统计区间中的整数数目 动态开点线段树模板

原题链接贴个模板以备以后不时之需 😋class CountIntervals { public SegmentTree t; public CountIntervals() { t=new SegmentTree(1,1000000000); } public void add(int left, int right) { t.change(t.root,left,right); }

2022-05-15 12:24:46 176

原创 「LeetCode639」简单DP

class Solution { public static final long MOD=1000000007; public int numDecodings(String str) { char[] s=str.toCharArray(); int n=s.length; long[] dp=new long[n]; if(s[0]=='0') return 0; dp[0]=(.

2021-09-27 10:15:41 78

原创 「HDOJ1007」平面最近点对 分治

import java.io.*;import java.math.BigInteger;import java.util.*;public class Main { public static void main(String[] args) throws IOException { InputStream inputStream = System.in; OutputStream outputStream = System.out; In.

2021-09-24 14:35:27 102

原创 「LeetCode」学生出勤记录 II 动态规划|矩阵快速幂

解法1: dp[ i ][ j ][ k ] 表示枚举到第 i 天时恰好有 j 次迟到 k 次缺勤时的方案数,时间复杂度 O(n)class Solution: def checkRecord(self, n: int) -> int: mod=10**9+7 dp=[[[0]*2 for j in range(3)] for i in range(n+1)] dp[0][0][0]=1 for i in range(1.

2021-08-18 23:49:53 200

原创 [LeetCode] 包含每个查询的最小区间 并查集+贪心+思维

题目链接:包含每个查询的最小区间思路:考虑对每个给定的区间根据区间长度排序,根据区间长度对每个区间染色(已经染色过区间将其删除不再进行处理),从而转化为一个区间染色和区间删除的问题,可使用并查集来维护。class Solution: def minInterval(self, buf: List[List[int]], q: List[int]) -> List[int]: s=set() for l,r in buf: s

2021-05-02 15:10:31 198

原创 [LeetCode] 使字符串有序的最少操作次数 思维+康拓展开+组合数学

题目链接:使字符串有序的最小操作次数题面:思路:首先要想到题面所述的操作其实是将s转化为字典序恰好比当前排列小的一个排列。那么问题就转化为当前排列在s的所有字符组成的全排列中的次序问题。自然我们会想到用康拓展开,但由于s中有重复出现的字符,所以我们还需要用到多重集的全排列公式。此外由于存在取模操作,又存在除法所以还需要用到逆元。代码:class Solution { public static final long MOD=1000000007; publ

2021-04-19 15:58:51 389

原创 [LeetCode] 求出 MK 平均值 树状数组+二分

题目链接:求出MK平均值题面:思路:起初看到题目,觉得难以下手(我太菜了T^T),后面看到num最大只有1e5,便想到根据num的值域建立树状数组...详情请看代码。class MKAverage { public BIT bit; //维护数字的个数 public BIT sum; //维护数字的和 public ArrayList<Integer> buf; public int m; public int k;

2021-04-11 14:23:13 188

原创 [51nod] 括号序列的最小代价 反悔贪心(Python语言实现)

题目链接:括号序列的最小代价题面:代码:import heapqdef solve(): s=input() cnt=0 buc=[0]*len(s) for i in range(len(s)): if s[i]=='?': buc[i]=cnt cnt+=1 a=[0]*cnt b=[0]*cnt for i in range(cnt): a[i

2021-04-07 11:32:08 214

原创 [LeetCode] 服务中心的最佳位置 模拟退火(Python语言实现)

题目链接:服务中心的最佳位置题面:代码:import mathimport randomclass Solution: def getMinDistSum(self, positions): # 温度变化率 K = 0.97 # 结束温度,控制降温时间 EPS = 1E-15 # 计算自变量的增量 def get(T): return T * random.

2021-04-06 12:29:08 314 2

原创 [计蒜客] Country Meow(2018ICPC南京站D题) 模拟退火(Python语言实现)

题目链接:Country Meow代码:import mathimport random#温度变化率K=0.99#结束温度,控制降温时间EPS=1E-14#计算自变量的增量def get(T): return T*random.randint(-5000000,5000000)def calc(x,y,z,nowx,nowy,nowz): ans=float('-inf') for i in range(len(x)): ans.

2021-04-05 11:39:00 183 3

原创 [洛谷] P1337平衡点 模拟退火(Python)

模拟退火相关的几篇文章:1.模拟退火总结(模拟退火)2.模拟退火算法详解3.深度学习 --- 模拟退火算法详解(Simulated Annealing, SA)代码:import mathimport random#温度变化率K=0.97#控制降温时间EPS=1E-10#计算自变量的增量def get(T): return T*random.randint(-32767,32767)#所计算的值与所有重物的势能成正比,要求总势能最小的点def calc(

2021-04-04 14:58:05 237

原创 [LeetCode] 子数组中占绝大多数的元素 线段树+二分+摩尔投票法(Python语言实现)

题面:思路:首先介绍一下摩尔投票法:以上截取自博客。我们可以发现摩尔投票法中每个区间记录的num(表示当前区间的绝对众数)和cnt(等于当前区间绝对众数出现次数减去其他数字出现的次数)是可以进行区间合并的,于是我们可以考虑用线段树来维护每个区间的num和cnt,然而这还不够,因为我们需要判断当前区间绝对众数的出现次数是否大于等于threshold,由于arr[i]<=20000,我们可以考虑使用20000个list记录下每个数字出现的下标(注意这是有序的),然后通过二分来计算出当前

2021-04-03 14:15:46 211 1

原创 浅谈求最长公共子串LCP的几种做法

定义:以这题为例PIPIOJ1476做法1、动态规划代码:import java.io.OutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.util.Arrays;import java.util.HashSet;import java.util.StringTokenizer;import java.

2021-04-02 12:01:11 526

原创 [LeetCode] 直方图的水量 单调栈

题面:算是单调栈的经典题目吧,但我觉得还是有一定的思维含量在里边。做法:首先维护一个类似下图中的单调栈。接下来我们可以考虑类似按高度分层的方法来计算能够接的雨水量。例如出现一个直方其高度为h1比当前栈顶的直方h2要高的话,那么就将h2出栈,如果此时栈不为空且栈顶的直方高度为h3的话,那么此时对答案的贡献为(min(h1,h3)-h3)*w,w表示h1到h3之间的宽度。代码:class Solution: def trap(self, height: List[int

2021-04-02 11:08:21 116

原创 [51nod] 汽油补给 贪心+单调栈+线段树

题面:比较难的贪心。倒序枚举每一个城市,用单调栈处理出当前城市x到之后的哪个城市y油价一直是最低的,那么x到y+1消耗的汽油都应该在x处加,这是油箱容量T大于等于x到y+1所耗费的油量的情况。当T小于x到y+1所耗费的油量时,就应该选择从x到可以到达的最远城市间(这个可以用前缀和二分预处理)油价最低的城市加油,这个操作可以用ST表实现,但我选择的是线段树(太久没用了,想练练hhh)。import java.io.OutputStream;import java.io.IOException

2021-04-01 17:22:13 112

原创 [计蒜客] Made In Heaven A*算法求解K短路问题

A*算法详细思想推荐阅读李煜东的《算法竞赛进阶指南》,可以从中体会A*算法与堆优化的Dijkstra算法有何异同。下面直接放本题的代码。import java.io.OutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.io.StreamTokenizer;import java.math.BigInteger;import ja

2021-04-01 00:56:17 153

原创 利用turtle绘制龙形曲线

import turtle as tdef dragon(s, n): if n == 0: for i in s: if i == 'F': t.fd(1) elif i == '+': t.left(90) elif i == '-': t.right(90) elif i == '.

2021-01-17 02:58:33 2571 11

原创 利用turtle实现倒计时效果

import turtle as timport timedef drawGap(): t.penup() t.fd(5)def drawLine(flag: bool): drawGap() t.pendown() if flag else t.penup() t.fd(40) drawGap() t.right(90)def drawNum(num,flag=False): drawLine(True) if num i.

2021-01-16 22:44:13 2231

原创 利用turtle创作抽象画

import turtle as timport randomdef draw(): for i in range(100): t.speed(500) t.colormode(255) t.pensize(random.randint(1, 15)) t.color(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) .

2021-01-06 00:54:28 273

原创 [codeforces] #608 div2 部分题解

A题:签到。public class Main { public static void main(String[] args) throws IOException { InputStream inputStream = System.in; OutputStream outputStream = System.out; Inpu...

2019-12-15 23:43:41 232

原创 [LeetCode] 第167场周赛题解

第一次进第一页QAQ,然而还是手慢,在第二题浪费了好久的时间。第一题:public class Solution { public int getDecimalValue(ListNode head) { int ans=0; ListNode temp=head; while(temp!=null) { an...

2019-12-15 15:16:34 169 2

原创 [LeetCode] 第166场周赛题解

第一题:按题意模拟。public class Solution { public int subtractProductAndSum(int n) { String s=Integer.toString(n); int a=1; int b=0; for(int i=0;i<s.length();i++) {...

2019-12-10 08:22:31 129

原创 [LeetCode] 第165场周赛题解

第一题:按题意模拟。public class Solution { public boolean check(int[][] map,int val) { for(int i=0;i<3;i++) { if(map[i][0]==val&&map[i][1]==val&&map[i][2]==val) return true; ...

2019-12-10 08:17:49 131

原创 [蓝桥杯] 国王的烦恼 并查集+思维

题面:思路:由于存在删边操作,正着来处理可能不太好写,但正难则反,我们可以反向来思考这个问题,我们可以按天数从大到小排序,那么删边操作import java.io.OutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java...

2019-12-03 21:33:19 128

原创 [LeetCode] 第158场周赛题解

第一题:public class Solution { public int balancedStringSplit(String s) { int ans=0; int[] buf=new int[s.length()]; buf[0]=s.charAt(0)=='R'?-1:1; for(int i=1;i<s...

2019-11-27 20:10:16 133

原创 [LeetCode] 第159场周赛题解

第一题:为防止丢失精度用乘法代替除法。public class Solution { public boolean checkStraightLine(int[][] c) { boolean flag=true; for(int i=2;i<c.length;i++) { if((c[i][1]-c[i-1][...

2019-11-27 15:42:17 154

原创 [LeetCode] 第160场周赛题解

第一题:因为该函数具有严格的单调性,所以可以二分,即枚举x二分y,但数据范围过小没啥必要。public class Solution { public List<List<Integer>> findSolution(CustomFunction func, int z) { List<List<Integer>> ans=new A...

2019-11-27 10:51:39 325

原创 [杭电多校] 2019第五场B 01Trie+贪心

题意:给定两个等长数组a,b,你可以随意排列他们,使得数组c字典序最小,其中c[i]=a[i] xor b[i]。思路:题解的做法貌似很复杂,但在直接建两棵01Trie,在01Trie上贪心的做法也能通过。public class Main { public static void main(String[] args) throws IOException { ...

2019-11-26 19:46:30 153

原创 [LeetCode] 第161场周赛题解

第一题:根据每列的字符分组,xx和yy跳过,剩下xy和yx,其中两个相同的xy或yx都只需一次就可转换成相同的,最后两两配对,若这两组最后都只剩下一个没有完成配对,则这两个剩下的配对,需要交换两次,若一组完全配对,另一组剩一个,则无解。public class Solution { public int minimumSwap(String s1, String s2) { ...

2019-11-26 19:37:11 204

原创 [LeetCode]第162场周赛题解

第一题:分别维护每行每列添加的总和,最后加起来统计即可。class Solution { public int oddCells(int n, int m, int[][] indices) { int ans=0; int[] r=new int[n]; int[] c=new int[m]; f...

2019-11-26 17:43:55 238

原创 [LeetCode]第163场周赛题解

第一题:首先让k%(n*m),再把二维数组转换成一维,后面比较容易处理。public class Solution { public List<List<Integer>> shiftGrid(int[][] g, int k) { int n=g.length; int m=g[0].length; List<List<Inte...

2019-11-26 15:58:23 187

原创 [ICPC2018南京站M] 回文树+exKMP

题意:思路:我们可以通过将s串倒转过来与t串跑一遍exKMP,然后再遍历一遍extend数组,在遍历的过程中将倒过来的s串加入到回文树中,当前位置i上的答案实际上就是extend[i]乘上以i开始的回文串个数,由于我们是倒过来添加的,所以实际上是以i结尾的回文串个数,这个只需要稍加修改即可实现。import java.io.OutputStream;import java.io...

2019-11-25 12:02:01 198

原创 [codeforces718B] 线段树+矩阵

题意:思路:显然线段树维护矩阵,其中区间加操作可转换区间乘上转移矩阵的x次方,不过需要注意这题可能有点卡常,注意一些小细节的常数。import java.io.OutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.mat...

2019-11-25 11:48:07 215

原创 [codeforces920G] 容斥+二分

题意:求出与p互质并且大于x的第k个数思路:首先我们可以求出p的所有质因子,可以根据a/b表示[1,a]中以b为因子的数的个数,然后用这个通过容斥来求得[1,a]中与与p互质的数的个数,然后就可以愉快地二分了。import java.io.OutputStream;import java.io.IOException;import java.io.InputStream;impor...

2019-11-25 11:39:29 143

原创 [LeetCode]第164场周赛题解

第一题没啥好说的,签到题。public class Solution { public int minTimeToVisitAllPoints(int[][] p) { int ans=0; for(int i=1;i<p.length;i++) { ans+=Math.max(Math.abs(p[i][...

2019-11-25 11:06:43 115 1

原创 如何用C语言打印心形

原理很简单主要用到了一个心形函数:#include <stdio.h>#include <windows.h>int main(){ float i,j,a; int index=0; system("color 0C"); for(i=1.5f;i>=-1.5f;i-=0.05f) {...

2018-11-17 12:12:36 6722 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除