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...
Project 0: 2048
Project 0: 2048在这里贴一个线上2048的网站,link整体代码仓库:github TASK 1: emptySpaceExists(Board b)简单来说就是检测面板上是否还有没有数的地方。直接O(n)遍历。123456789101112/** Returns true if at least one space on the Board is empty. * Empty spaces are stored as null. * */public static boolean emptySpaceExists(Board b) { int length = b.size(); for(int i = 0; i < length; i++) { for(int j = 0; j < length; j++) { if(b.tile(i,j)==null) return true; } } return...
shell 相关
Lecture 1: Course Overview + The Shell (2020)对应中文网站 date 查看时间 echo Hello\ World 输出Hello World echo $path 查看电脑有哪些路径 which echo 查看echo命令会执行哪里的文件 pwd Print Working Directory,即打印当前工作目录 cd ./home 打开当前目录下home文件夹 ls “list” 的缩写,表示列出目录中的文件和子目录 cd ||cd ~ take you home cd - 返回刚才所在文件夹,常用于cd ~ 后 ls -l 长格式显示目录内容,包括文件权限、所有者、文件大小、最后修改时间等 mv file.txt newfile.txt 重新命名文件 mv file.txt directory/ 移动文件到指定目录中 cp file.txt directory/ 复制文件到指定文件夹 cp file.txt directory/newfile.txt 复制文件到指定文件夹并重命名 rm file.txt...
tarjan算法
tarjan 算法(Tarjan’s strongly connected components algorithm)很棒的解释视频 简述算法Tarjan 算法是一种用于查找图中强连通分量的算法,由 Robert Tarjan 在 1972 年提出。强连通分量是指在有向图中,如果从顶点 u 到顶点 v 以及从顶点 v 到顶点 u 都存在一条路径,那么顶点 u 和顶点 v 是强连通的。 Tarjan 算法的核心思想是通过深度优先搜索(DFS)遍历图,并使用堆栈来追踪搜索过程中的顶点。在遍历的过程中,对每个顶点进行标记,记录其在搜索树中的深度和最小后向边的深度。如果发现某个顶点的后继节点指向了一个已经被访问过的顶点,那么这个顶点及其所有后继节点构成一个强连通分量。 Tarjan 算法的关键点在于维护一个栈,用来保存正在搜索的节点。当 DFS 遍历过程中发现一个节点的所有后继节点已经搜索完毕,并且该节点是当前 DFS 搜索树中的根节点时,可以将该节点以及其所有后继节点弹出栈,并将它们标记为一个强连通分量。 Tarjan 算法的时间复杂度为 O(V + E),其中 V...
verbal advantage level 2 1-20
word 1-10word 1: advocate 提倡,拥护,主张Similarly, many are now aware of this polarized notion of the field and some have begun to advocate possible alternatives. word 2: delegate 委托,托付However, these delegates saw their efforts as serving purposes beyond profit generation. word 3: unprecedented 前所未有的,史无前例的With the surge of population and economic activity during the past two generations or so, the environment has come under unprecedented stress. word 4: poignant 尖锐的,强烈的,酸楚的The women’s stories are...
mac电脑vscode的c++运行配置
最近换了电脑,vscode的环境是重新配的,遇到了些许问题。 1. Code Runner 对于C++的一些函数不识别这是因为code runner默认执行命令里没有添加c++17的选项。解决方案: 打开vscode设置,搜索code runner,找到Code-runner: Executor Map,点击edit in settings.json。 Find the cpp and add -std=c++17 after cd $dir && g++ Like this "cpp": "cd $dir && g++ -std=c++17 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt" 2. Code Runner 运行C++是在OUTPUT里运行的,不能通过键盘输入数据解决方案:打开vscode设置,搜索code runner,勾选Code-runner: Run In Terminal3. vscode...
java面试准备整理(二)
1. 缓存雪崩、缓存穿透、缓存击穿在实际中如何处理名词解释: 缓存雪崩(Cache Avalanche):指在缓存中大量的缓存条目在同一时间段内失效或者过期,导致大量请求直接访问底层存储系统(如数据库),从而造成系统性能急剧下降或者崩溃的现象。 缓存穿透(Cache Penetration):指恶意或者非法的请求直接穿过缓存层,访问底层存储系统,因为缓存层无法命中任何缓存数据。通常是由于查询不存在的数据或者恶意构造的查询条件导致。 缓存击穿(Cache...
java面试准备整理(一)
1. java面向对象有哪些特征面向对象的三大特征:封装、继承、多态 2. ArrayList和LinkedList的区别都实现了List接口。ArrayList是基于索引的数据接口,底层是数组。LinkedList(链表)是以元素列表的形式存储数据。 3. 高并发中的集合有哪些问题1. 第一代线程安全集合类Vector、Hashtable。使用synchronized。效率低下。 2. 第二代ArrayList、HashMap。使用12Collections.synchronizedList(list);Collections.synchronizedMap(m); 3. 第三代1234java.util.concurrent.*ConcurrentHashMapCopyOnWriteArrayListCopyOnWriteArraySet Java 中的高并发环境下使用集合可能会遇到以下问题: 线程安全性问题:Java 中的大多数集合类(如 ArrayList、HashMap...
verbal advantage level 1 41-50
word 41-50word 41: cantankerous 脾气坏的,爱争吵的They are often obstinate and cantankerous, and as a result they are unwanted by their relations. word 42: flippant 轻率的,无礼的He was very flippant in parts of his speech and completely callous in other parts of it. word 43: subjugate 征服,镇压Nearly 1, 000 years have passed since we were conquered or subjugated by external force. word 44: wry 扭曲的,歪斜的It is characterized by a lot of wry humour, some of which had me spontaneously laughing aloud. word 45: urbane...
洛谷P1655 斯特灵数java
小朋友的球题目链接 题目描述@发源于 小朋友最近特别喜欢球。有一天他脑子抽了,从口袋里拿出了 $N$ 个不同的球,想把它们放到 $M$ 个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝试编程实现,但由于他天天不好好学习,只会上 B 站看游泳教练,于是他向你求助。 输入格式多组数据,每行两个数 $N,M$。 输出格式每组数据一行,表示方案数。 样例 #1样例输入 #1124 21 1 样例输出 #11271 提示 对于 $20\%$ 的数据,满足 $N,M \leq 10$; 对于 $100\%$ 的数据,满足 $1 \leq N,M \leq 100$,一个测试文件最多有 $10$ 组测试数据。 题解斯特灵数 BigInteger因为实在不想写C++高精,或者说我已经不用写C++高精了,所以选择java或者python去解决问题更明智一些。简单记录一下java中BigInteger的使用方法。在 Java 中,BigInteger 是不可变的类,这意味着一旦创建了一个 BigInteger 对象,它的值就不能被改变。BigInteger 类是...
verbal advantage level 1 21-40
word 21-30word 21: creed 信条,信仰It takes in anybody regardless of religion, colour, or creed. word 22: tawdry 廉价而花哨的,俗艳的A person may wear tawdry clothing or have a tawdry reputation. word 23: peevish 易怒的,坏脾气的She glared down at me with a peevish expression on her face. word 24: arduous 费力的,艰难的We must have patience in doing arduous work. word 25: personable 英俊的,漂亮的,好看的Jeremy excepted, the men seemed personable. word 26: resolute 坚决的,果断的Voters perceive him as a decisive and resolute international...