HDOJ 1007 Quoit Design 圆环设计
一道经典的分治题目链接 题意是套圈游戏要设计一款尺寸最大的圆环,满足圆环不会一次套中两个物品。每个物品有一个摆放坐标。我们要求的是这些物品中相邻最近的两个物品之间的距离,这个距离就是我们要求的圆环的直径。 这个类型网上常称为寻找最近点对问题。 ...
更有效地解决括号匹配问题
这是力扣上一道非常简单的问题,是经典的解决括号匹配问题。当然做法是用一个栈即可解决问题。有效的括号 这是我的代码:123456789101112131415161718192021222324class Solution { public boolean isValid(String s) { Stack<Character> st = new Stack(); boolean flag = true; for(int i=0;i<s.length();i++){ Character nowC = s.charAt(i); if(nowC=='('||nowC=='{'||nowC=='['){ st.push(nowC); }else { ...
博客的免费图床方案
博客的免费图床方案(Cloudflare R2 + PicGo)参考博客 这个博客写的已经非常详细清楚了,这里不再赘述实现步骤。 这里记录一下我是怎么发现这篇博客的。 在一个很无聊的时间段,我打开了Inoreader看RSS订阅的博客列表有没有更新,其中有一篇少数派的博客吸引了我,是这个博客。 这里博主提到了他的推特账号。其中很近的时间里他发布了上面提到的免费图床方案的博文。 这篇博客解决了我正在苦恼的问题,那就是博文中图片的插入。如果是只有一个github pages的静态网站还好说,直接传在相对文件夹里即可。但是如果面对多平台,比如我还想在csdn中发布,那就变得很麻烦,因为markdown里写的相对路径将不可用,最直接的办法就是更改每个图片链接。 然而如果是有自己的图床就很方便了,不用担心网络上的图片会突然失效,多平台发布也不用更改自己的截图路径。上方的图片就是用我自己实现的图库。 ...
Eloquent JavaScript 09 Exercises
正则表达式To the book page Regexp golf注意这里如果写对的话,应该什么都不会输出。 正则表达式中的\b是单词边界的标志,它用来匹配一个单词的边界。 123456789101112131415161718192021222324252627282930313233343536373839404142// Fill in the regular expressions// 正则表达式应该匹配“car”和“cat”,但不匹配其他字符串。verify(/ca[rt]/, ["my car", "bad cats"], ["camper", "high art"]);// 正则表达式应该匹配“pop”和“prop”,但不匹配其他字符串。verify(/pr?op/, ["pop culture", "mad props"], ["plop",...
2024年Android项目实现高德导航
使用高德SDK实现导航功能参考博客 Github仓库直达 这是今天企业实训的一个小作业,实际上我从昨天就开始尝试申请key然后下载官方Demo开始实验。本来是要做flutter项目,但是高德官方里flutter教程只有显示地图和定位功能,没有导航功能,导航功能官方只有Android的教程。今天也是用Android原生进行编写的。至于怎么整合到flutter项目里目前还不知道。。。 1. 官网下载SDK我也尝试过直接gradle引入包的操作,但是直接引入的会缺少AmapNaviParams。官网也一直强调有个什么东西开源了所以提供的包里移除了一些东西(不知道到底是什么)。 官网SDK下载地址 我下载的是导航合包: 2. 创建项目直接Android Studio创建一个java,Groovy的项目即可。 设置里需要设置生成所有Gradle Task: 这样你就可以靠点击这里直接获得你项目的SHA1的值,申请key的时候需要这个。 点击上图位置你就可以在终端看见你的SHA1值。在我这里release和debug的SHA1的值是一样的。 ...
Eloquent JavaScript 08 Exercises
错误To the book page Retry大概率触发MultiplicatorUnitFailure错误,承接直到运行成功并返回结果。 1234567891011121314151617181920212223242526272829class MultiplicatorUnitFailure extends Error {}function primitiveMultiply(a, b) { if (Math.random() < 0.2) { return a * b; } else { throw new MultiplicatorUnitFailure("Klunk"); }}function reliableMultiply(a, b) { // Your code here. for(;;){ try{ var ans = primitiveMultiply(a,b); ...
Eloquent JavaScript 07 robot
robotTo the book page代码解释由AI生成。 总代码数据结构和图的构建首先定义了村庄中各个地点之间的道路: 123456789const roads = [ "Alice's House-Bob's House", "Alice's House-Cabin", "Alice's House-Post Office", "Bob's House-Town Hall", "Daria's House-Ernie's House", "Daria's House-Town Hall", "Ernie's House-Grete's House", "Grete's House-Farm", "Grete's...
Eloquent JavaScript 06 Exercises
对象To the book page A vector type封装一个类,实现坐标的加减法,以及get属性的length返回坐标离原点的距离。 12345678910111213141516171819202122// Your code here.class Vec{ constructor(x,y){ this.x = x; this.y = y; } plus(other){ return new Vec(this.x+other.x,this.y+other.y); } minus(other){ return new Vec(this.x-other.x,this.y-other.y); } get length(){ return Math.sqrt(this.x**2+this.y**2); }}console.log(new Vec(1,...
Eloquent JavaScript 05 Exercises
高阶函数记录一下这本书的习题的答案,这是第五章的练习。 To the book page Flattening将包含数组的数组展开,即只有一对中括号的数组。 1234567let arrays = [[1, 2, 3], [4, 5], [6]];// Your code here.let combineArrays = arrays.reduce((accumulator,currentArray)=>{ return accumulator.concat(currentArray);},[])console.log(combineArrays);// → [1, 2, 3, 4, 5, 6] Your own loop如果不能满足条件(testAct)就不能继续循环。下一次循环要用新的值(updateAct),每次循环需要执行一定的操作(bodyAct)。 123456789101112// Your code here.function loop(value, testAct, updateAct,bodyAct){ ...
用Github Desktop简化你的推送流程
用Github Desktop简化你的推送流程Github Desktop官方网站 1. 第三方仓库克隆选择file->clone repository, 通过URL克隆你的仓库选择URL,里面填你的第三方仓库的https克隆链接,注意要填写公网地址而不是内网地址。 注意选择你保存仓库的本地位置 点击clone后应该会弹出让你输入用户名和密码,如果是gitlab,直接输入你登录gitlab的用户名和密码。 到此为止应该是可以克隆仓库到本地了。之后的操作,和一般的git操作是一致的,不过是有了图形化的界面,不用输入繁琐的命令。 2. add 和 commit直接到app界面,一旦仓库有文件更改,app界面会罗列出你更新文件的内容,需要你进行commit操作。 3. push处理完所有的commit后就可以进行推送了,直接点击界面右边的push origin 即可。
Chess For Three
Chess For Three这是Codeforces Round 945 (Div. 2) 第一题。 题目链接 题意三个人玩游戏,每局两个人玩。赢得人得2分,输的人得0分。平局每个人得1分。会给你三个人的最终得分,问最多平局多少局。 重点记录这里题确实不难,但是有一个样例因为没有给怎么算的导致我一直以为样例给错了。。。 123 4 56 3分4分5分,最大平局数是6。 我最一开始想的是a和b平局3次,b还剩一局和c平局,这是4次。a和c平局3次,b和c平局2次,这是5次。但是样例给的是6次。 6次的情况应该是c和a平局2次,c和b平局3次,a和b平局1次,这样就是6次。这真的是太amazing了。 题解可以直接暴力枚举a和b,a和c,b和c平局次数,然后判断分数是否合法。除去平局的分数,剩下的分数应该left%2==0。 但是还有结论, min((p1+p2+p3)/2,p1+p2),这里保证p1<=p2<=p3。 先考虑合不合法,三个数加一起如果是偶数就一定合法。 ...
Prison Escape
Prison Escape这是codechef starter 134 div4的第六题。题目链接 题目大意NxM的01矩阵,0代表罪犯,1代表守卫者。罪犯可以上下左右移动,计算罪犯最少需要经过几个守卫者才能逃出这个矩阵。我们要求出这些罪犯里边经过最少守卫者数量的最大值。数据范围:T 1000,N和M...
3 out 1 in
3out1in题目链接 题目大意这是codechef starter 134 div4的第五题。 给你一个数组B,里面包含M个数字,其中M必定为奇数。操作是选出三个数字a,b,c, 这三个数字从数组里剔除,数组中重新加入成员a+b-c。可以看出来每一次操作会让数组少两个元素,问最后剩下一个元素的最大值是多少。其中有多个询问,询问内容是如果只有前k个元素,剩下的最后一个元素最大值是多少。 赛时回顾我在第一次做这道题的时候就直接考虑到了用优先队列。显然最优解是每次选两个最大值,然后减去最小值。原数组我用数组a存储,每次将前k个元素送入优先队列和数组b中,数组b进行排序用来获得最小值,优先队列获取最大值。成功拿到30分的部分分,其他测试会超时。 正解官方题解思路让我恍然大悟。永远记得可以用空间换取时间。既然可以用一个优先队列,那么我们就可以用两个优先队列。虽然我们不知道给出的qurey里k的值是多少,但是我们可以用ans数组记录所有对应k值的答案。 ...
Codeforces Round 944 (Div. 4) 回顾
Codeforces Round 944 (Div. 4) 回顾比赛回顾赛中是AC了前四题,E答案错误,F超时。可以说是做到了最后五分钟,排名是6000多。 比赛链接 官方题解链接 题目分析AB就直接跳过了,纯签到。 C. Clock and StringsC题意思是给出表中两对数字,看每对数字连接的线是否相交。我的思路是只要一条线的一个端点在另一条线的区间内,切另一端在区间外即可断定这两条线是相交的。 为了更好的进行区分,我进行了排序,其中满足a<c a<b c<d。 我觉得不能直接去写,表上的数字是1到12,对于一条线,一个端点是1,另一个端点是10,其中11和12其实是在线的包围内的,所以我给所有小于6的数字加了12,区间变成了6到17,然后判断是否c在a和b之间,d在a和b之外。但是我今天才发现我的判断语句竟然是这样的: 12if((a<c&&c<b)||(a<d&&d<b)) cout<<"YES"<<endl; else...
安装完整版Xcode后我的C++万能库不见了
安装完整版Xcode后我的C++万能库不见了前言昨天因为安装了flutter的原因,因为这个需要完整版Xcode,之前都是安装的命令行版本的,所以直接去苹果应用商店安装了。但是万万没想到的是,完整版Xcode竟然更改了我使用的Clang地址。他更改到了Applications文件夹下的完整版Xcode里面。看来是Xcode自带了Clang然后就直接更改了默认地址。 好巧不巧昨天codeforces Round 944开赛前三分钟我才发现了问题。因为我的万能库引用不能用了。还好我有在博客写过mac电脑vscode的c++运行配置。所以只花了五分钟就添加好了万能库文件。不过我所经历的和上篇文章有所不同。所以在此记录一下。 在完整Xcode里添加万能库文件 同样是在终端里输入echo | g++ -v -x c++ -E -,...
将本机ipv6地址复制到粘贴板脚本
将本机ipv6地址复制到粘贴板脚本准确的来说是将windows主机的ipv6地址复制到粘贴板上的powershell脚本。因为有时候需要远程连接我自己的R9000p,所以与其每次开机去命令行运行ipconfig,不如直接复制到粘贴板里,这样就可以直接打开邮件将地址发送出去。本来想写一个一件发送ipv6地址到指定邮箱的脚本,但是好像很麻烦,就算了。代码由chatgpt生成,再根据我的实际情况改写的。 设备配置windows为win11,由于学校校园网比较特殊,使用的是拨号上网,拨号名称我设置成了DIANXIN。 在命令行中运行ipconfig后会显示很多网络适配器,其中我需要的是: 1234567891011Windows IP ConfigurationPPP adapter DIANXIN:Connection-specific DNS Suffix . :IPv6 Address. . . . . . . . . . . : 240e:360:40b:200:XXXX:XXXX:fc48:XXXLink-local IPv6 Address . . . . . :...
Project 1: Data Structures
Project 1: Data Structures类值的相等判断永远用.equals()而不是==花了近两天的时间终于是把Probject 1 完成了,完成了LinkedListDeque和ArrayDeque两种实现的Deque。在此就不再赘述数据结构的实现方法,代码地址 那么我要写一些什么呢?写一些我遇到的问题和bug。 这个bug实在是令人火大,这本是不应该出现的错误 正如二级标题所说的,类值的相等判断永远用.equals()而不是==。而且值得铭记的是,测试文件一定要扩大数据规模,因为扩大规模真的会发现意想不到的错误。 事情的起因是public boolean equals(Object o)这个函数,对于一个自己实现的数据类,这个方法是很有Override的必要的。因为两种数据类基本一样,这里我只用LinkedListDeque举例。 1234567891011121314151617181920212223242526/*** check if two deques are equal** @param o* @return true if...
Codeforces Round 943 (Div. 3) A-E solutions
Codeforces Round 943 (Div. 3)In this competition, I just got three Accepted.Competition Address A. Maximize?The meaning of the question is to find maximum of gcd(x,y)+y when gives you x.My solution is to have a linear search. Enough to pass this question.12345678910111213141516171819202122232425#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);}int main(){ int T; cin>>T; while(T--){ int...
Spotify美化
基于spicetify-cli对Spotify进行客制化什么是spicetify-cli spicetify仓库地址 官网Doc Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux. 仓库readme明确说明了这是用于定制官方客户端的命令行工具。但是在官网Doc的安装教程里面却没有说清楚,这样会带来很多的麻烦。 在安装之前你必须要做的事情: 确保电脑已经安装了spotify官方客户端,因为spicetify只是美化工具而不包含客户端 确保已经登陆了个人账号,新安装的spotify客户端在登陆之前prefs文件并不会创建,会导致spicetify找不到路径而报错。 默认你已经解决了所有关于网络的问题 macOS安装步骤若安装步骤有问题或者是其他操作系统,你可以直接去官网Doc查看最新的安装步骤。 Spicetify CLI(工具本身) 1curl -fsSL...
为博客添加RSS,sitemap和本地搜索
博客的一些配置总结添加RSS1npm install hexo-generator-feed --save 在_config.yml 里添加:12345678910111213feed: enable: true type: atom path: atom.xml limit: 20 hub: content: content_limit: 140 content_limit_delim: ' ' order_by: -date icon: icon.png autodiscovery: true template:其中limit指源里保存的文章个数,content_limit指summary的长度。如果想要添加RSS图标,可在butterfly主题配置文件_config.yml里,social:后添加fas fa-rss: /atom.xml || RSS || '#f26522',这样RSS图标就会出现在右边头像下边 添加sitemap1npm install hexo-generator-sitemap...