自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 leetcode 697. 数组的度

20210220 每日一题节后复健思路:简单暴力,因为数据范围很小所以直接开50000大小的三个数组就可以了,一个记录某个数第一次出现的地点,一个记录当前最后一次出现的地点,一个记录该数出现的次数。只需要考虑一次循环中间,更新最大次数的时候记录最小长度作为答案就可以了。class Solution {public: int first[50000],last[50000],app[50000]; int maxlen=0,ans=500000; int findShortes

2021-02-20 12:07:58 96

原创 Leetcode 1423. 可获得的最大点数

20210206 每日一题思路:比较简单的想法是无论是选多少个,都是左边连续选一部分,右边连续选一部分。提前算好从左到右和从右到左的前缀和,然后只要遍历一遍左边连续选多少就可以了。代码:class Solution {public: int maxScore(vector<int>& cardPoints, int k) { vector<int> lsum,rsum; int len = cardPoints.size();

2021-02-06 11:54:41 130

原创 Leetcode 1208. 尽可能使字符串相等

20210206 每日一题 滑动窗口思路:比较简单的滑动窗口的题目。只要一路从左向右滑,设置两个指针就好了,一左一右。超标时左指针向右滑动到合适范围即可。代码:class Solution {public: int equalSubstring(string s, string t, int maxCost) { int ans=0; int current=0; int len=s.length(); int left=0,r

2021-02-06 11:27:15 119

原创 Leetcode 424. 替换后的最长重复字符

20210202 每日一题思路:一维的滑窗,考虑从左到右滑动,一旦不符合条件的时候,从左收缩窗口大小。困惑:后面看了一下官方题解,为什么答案可以在外面维护,直接返回。代码:class Solution {public: int characterReplacement(string s, int k) { int maxn = 1; int left=0; int right=0; int num[26];

2021-02-02 14:33:13 121

原创 Leetcode 888. 公平的糖果棒交换

20210201 每日一题思路:很简单的题目。列一下数学式子就可以了。sumA-x+y=sumB+x-y。sumA是Alice的和,sumB是Bob的和,x是Alice给出的值,y是Bob给出的值。然后就只要循环A数组或者B数组,看另一方数组有无符合的值。用二分的话,复杂度应该是nlgn。代码:class Solution {public: vector<int> fairCandySwap(vector<int>& A, vector<int>&

2021-02-01 16:04:19 91

原创 Leetcode 724. 寻找数组的中心索引

20210128每日一题题面:找到数组中的一个位置,左边和等于右边和。思路:想法比较简单暴力,从左累加一遍,从右累加一遍,顺便判断哪个位置右边的累加和等于左边的就好了(不要忘记考虑n-1作为答案的效果)。然后处理一下特殊情况,比如n=0。代码:class Solution {public: int pivotIndex(vector<int>& nums) { int sumleft[10000+10],sumright[10000+10];

2021-01-28 06:24:50 127

原创 Leetcode 1579. 保证图可完全遍历

20210127 每日一题题面:给定3种边,type3是AB都能走的,1是只能A走,2是只能B走。问在保持图联通的情况下,最多可以删掉多少边。思路:type3是最好的,所以优先考虑type3中有多少边可以保留。如果走完type3已经连通了,那么直接返回答案就好了。(type3中不重要的边和其他两种边。)如果此时图不连通,那么就单独考虑A和B,它们各自的情况就是一个独立空间下type3的问题,只不过此时type变成了1或2.然后反思一下:我写的真的太太太冗余了,需要再好好写一下。垃圾代码:class

2021-01-27 21:05:42 70

原创 Codeforces Round #697 (Div. 3)

本来昨晚想写的,但是后来有事情耽搁了。今天打算补一下的,但是突然cf不知道出啥问题了,提交不了。等晚些好了,再继续写吧。文章目录A 题 Odd DivisorB 题 New Year's NumberC 题 Ball in BerlandD题A 题 Odd Divisor题意:t次询问,给一个n(1e14),问是否有奇数因子。思路:很简单,只有2的幂次方的数不符合,提前打一下就可以。#include <iostream>#include <bits/stdc++.h>u

2021-01-26 16:37:49 167

原创 Leetcode 1128. 等价多米诺骨牌对的数量

20210126 每日一题题面:给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 ac 且 bd,或是 ad 且 bc。在 0 <= i < j < dominoes.length 的前提下,找出满足 dominoes[i] 和 dominoes[j] 等价的骨

2021-01-26 07:14:04 161

翻译 2018MCM A.Multi-hop HF Radio Propagation题目翻译和评审总结

Multi-hop HF Radio propagation背景HF无线电信号的工作原理:电离层和地球间的多次跳跃反射(只反射低于MUF最大有用频率的波)反射波的强度和信号保真的距离取决于反射面的特点MUF受限制于季节,时间时刻和太阳情况解决的问题是:海洋反射出的波的问题经验之谈是:相较于平静的海洋(即光滑面),汹涌的海洋(类似于粗糙面) 反射(波的高度,形状,频率都快速在改变,波...

2021-01-25 23:41:55 365

原创 Distributed System 分布式学习笔记(尝试持续更新ing)

写在开头:因为下学期有分布式的课程,想提前了解一下,所以看了一部分书和网课。因为资源大部分都是外文的,感觉篇幅很长,再看可能很难回忆起来,就想顺手写个博客记录一下。因为totally green hands,所以肯定会有一些大问题,如果看到的话,欢迎指正。Concurrent and Distributed System是剑桥大学的一门课。公开的视频资源好像只有分布式系统这一块,可以上B站看:剑桥大学Distributed System。比较简短,只有8个lecture。图书资源在L1中有给出,我看的是

2021-01-25 23:18:59 365 2

原创 并查集

UNION-FIND 并查集Dynamic Connectivity动态连通性问题两种操作:Union command 合并Find/connected query 两个对象之间是否存在一条路径(直接/间接相邻)并查集用于解决和连通块相关的问题Union-find data type 数据结构public class UFUF(int N)初始化并查集数据结构(有N个对象)void union(int p, int q)连接对象p和qboolean conne

2021-01-25 09:15:01 72

原创 959. 由斜杠划分区域

2021-1-25 每日一题在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。返回区域的数目。思路:首先需要思考题目转换,这是求连通块个数的题目。因为是连通块个数问题,所以用并查集解决。然后就只要考虑几个问题就好了:1.最小单位应该是多大?这里应该是一个单位的正方形被X划分成四个部分。把单位取的尽可能小,这样的话斜杠和反斜杠的情况比较容易统一。2.怎么合并?2.1 单位正方形内的合并。此正方形对

2021-01-25 09:12:41 125

原创 POJ 3414 Pots

不是书上的题目,但不知道为啥在BFS那边标记了一下。看了一下是一道挺好的广搜的题目。题意:给定两个壶,第一个壶的容量为A,第二个的容量为B,然后给定想要的容量为C。一共有三种操作,Fill把壶装满,Drop把壶倒空,POUR把一个壶的水倒到另外一个壶中。问需要的最少操作数和操作序列。思考:这是一道六状态的BFS的题目。往常做的最简单的BFS是四状态的迷宫问题,从一个点考虑上下左右四个方位走路的问题,然后问最短步数或者最短步数对应的路径。然后这里这道题其实可以装换成六状态的问题,原来迷宫当中的x,y坐标可

2021-01-24 11:16:33 146 1

原创 POJ - 2386 Lake Counting

题面:给定一个N*M的区域,如果是W代表有水。水是可以八个方向联通的,问有多少个连通块。想法:简单的dfs。首先循环判断每个点可不可以走(符号是’W’的先前没有访问过的格子),然后进行深搜(考虑往四面八方走)。书中给的想法是不用vis记录状态,走过的W直接变成.。code:#include <iostream>#include <cstdio>using namespace std;int n,m;int cnt;char maze[1010][1010];boo

2021-01-24 07:46:24 74

原创 POJ1852 Ants

因为很久没有想题目了,所以开始复健,把基本买的算法书,先刷一遍。《挑战程序设计竞赛》和紫书等算法书的习题可以参考vj上的:挑战ICPC编程 https://vjudge.net/group/challenge本题题面:在一根给定长度的棍子上有n只蚂蚁,给定他们的位子,不告诉行走的方向。如果两只蚂蚁相撞就会各自转向。蚂蚁每单位时间走1,当它们走到棍子两端的时候,就会掉下去。问它们掉下去的最早和最晚时间。想法:就是思维题。最简单的情况:如果只有一只蚂蚁/如果不考虑相撞,两个时间无非就是往左走和往右走的

2021-01-19 15:45:20 102

原创 2020CSP-J普及组复赛(民间数据)B 优秀的拆分(power)

优秀的拆分(power)开始找一些CSP的题目,准备明年保研前能够出个好点的成绩。555还是太垃圾了。题意:动态增加的一个序列,动态提问第x个大的数是多少。比较特殊的是,每次增加一个数字以后,询问的第x个,可能是原来的x或者原来的x+1个。我们就可以考虑动态维护一个递减队列用于存放前x个大的数,动态维护n-x大小的递增队列用于存放那些不在获奖线内的数。然后当我们添加一个新数的时候,我们可以考虑如果当前不增加新的名额,那么如果前x大的当中的最小数比这个数大,就放入递增队列中,将递增队列中最小的数字放

2020-11-08 21:20:36 1176 1

原创 操作系统导论:第四章

操作系统导论:第四章写在前面:英文原版和作业代码可以前往http://pages.cs.wisc.edu/~remzi/OSTEP/下载或者在线阅览。相关的代码下载下来可以用tar xvzf指令进行解压。不出意外,希望能把相关的作业完成以后,用学习日志记录下来。本书序言部分(第2章)就大致介绍了书的组成,也就是学习部分。包括三部分:虚拟化,并发和持久性。虚拟化部分又分为两部分,CPU和...

2020-03-04 15:35:12 2566

原创 ECF入门(下)

上一次聊了聊fork,接下来我们看一看signal首先讲一下LINUX中的一部分下面会用到的信号:2 SIGINT 来自键盘的中断9 SIGKILL 杀死程序11 SIGSEGV 无效的内存引用(段故障)14 SIGALARM 来自alarm函数的定时器信号17 SIGCHILD 一个子进程停止或终止接下来来看几个下面会用到的函数:kill函数#include &lt...

2019-12-07 21:50:48 212

原创 系统级I/O入门

一切皆文件。(本篇中的例子若非特殊说明,使用的都是abcde.txt,文件内容就是abdce)Linux shell创建的每个进程开始时都有三个打开的文件(在头文件<unisted.h>中定义):0:标准输入1:标准输出2:标准错误文件操作有:open,read,write,stat,dup2,close,lseek;每个Linux文件都有一个类型:普通文件,目录,套接...

2019-11-30 18:59:44 159

原创 CSAPP静态库

静态库所有的编译系统都提供一种机制,将所有相关的目标模块打包成为一个单独的文件,成为static library——静态库相关的函数可以被编译为独立的目标模块,然后封装成一个单独的静态库文件。然后应用程序可以通过在命令行上指定的单独的文件名字来时用这些在库中定义的函数。在链接时,链接器将只复制程序引用的目标模块:1.减少了可执行文件在磁盘和内存中的大小。2.应用程序员只需要包含...

2019-11-17 12:42:28 182

原创 CF599 div2 B2. Character Swap (Hard Version)(string)

B2. Character Swap (Hard Version)题目意思:有两个长度为n的字符串,然后问能否经过调换(调换动作只能发生在两串之间,一串上的字符不能互换)实现两串相同。能的话,输出调换的方法。解题思路:假设两串分别为a和b,如果前i-1完全相同,i不同的话。有两种考虑:1.从b的i+1个字符开始找和bi相同的字符,和ai做交换。2.从a的i+1个字符开始找和bi相同的字...

2019-11-13 13:06:44 154

原创 CF599 div2 A. Maximum Square(模拟)

A. Maximum Square题目意思:有k个询问。然后每次给n个长度为ai的木板组,问题是从其中挑出部分木块把他们相邻排放能构成的最大正方形边长是多少。解题思路:是一道很简单的模拟。然后就是把n个木块sort一下,最大的正方形肯定是几根相近长度的木板合在一起的。然后接下来就算一下从1到n个木板分别向后选择能做到的最大边长。那么答案就应该是min(n-i+1,a[i])前者是正方形的...

2019-11-12 13:23:51 214

原创 CF598 div3 E. Yet Another Division Into Teams(贪心+DP)

CF598 div3 E. Yet Another Division Into Teams题目意思:学校有n个人,然后让他们组队,至少三个人才能组成一个队伍。每个人有一个值ai代表能力,一个队伍的d值就是队员能力最大值减去最小值。问你怎么安排队伍,使得所有队伍的d值相加最小。解题思路:首先要差值最小,所以肯定要把能力相近的人放一起。所以一开始的处理用了stl里的pair,pair自带两个值...

2019-11-12 10:52:35 200 1

原创 CF598 div3 C.Platforms Jumping (贪心)

CF598 div3 C.Platforms Jumping (贪心)是的,没错,这套题前四题都是greedy题目意思:就是有一条长度为n的河流,人再0点,要抵达n+1点,度过这条河流。提供了m块板,人最远跳d个长度。第一行给了n,m,d,第二行给了m块木板各自的长度。在人起跳之前安排好木板放置的位置,然后问你人是否能过河,能的话给出木板排放的样子。就是如果该段没有放板子,那么就是0;放了...

2019-11-11 20:20:57 165

原创 CF598 div3 D. Binary String Minimizing(贪心)

CF598 div3 D. Binary String Minimizing(贪心)题目意思:给定一串长度为n的01序列,然后可以有k次交换操作,操作就是可以交换相邻的两个数字,同一位置可以交换多次。问能得到的最小字典序的序列长啥样。解题思路:还是贪心求解,记录了每个0出现的位子,然后看在现有的可操作数下,能不能把他调到上一个0的后面,如果不能,就把现有次数用完就结束了,最后打印一下。然后...

2019-11-10 11:00:31 151

原创 CF598 div3 B.Minimize the Permutation(贪心)

题目意思:就是有n个数,然后每个位子都有一次和上一个位子换一下数字的机会(当然第一位就肯定不可以)。所以n个数字一共能换n-1次。然后问至多按这个规则交换的话,能生成的最小字典序的排序是多少?解题思路:首先肯定是贪心,因为要生成字典序最小么,所以尽可能把小的排在前面。其实挺简单的,不知道为啥,脑子抽了,还卡了一段时间。用一个a数组来记录给的数字序列,然后我用loc数组记录了每个数字的位置。...

2019-11-08 21:04:35 205

原创 CF598 div3 A. Payment Without Change(贪心)

A. Payment Without Change题目的意思是有a个价值为n和b个价值为1的硬币,能否用他们组成S贪心选择,总是尽可能用价值大的硬币,因为另外一个是1.

2019-11-07 22:27:46 148

原创 ECF入门(上)

fork()指令One call,Two return.返回值若为0,说明当前在子进程中;返回值大于0,说明在父进程中,返回值为其子进程的PIDgetpid()返回当前进程的IDwaitpid(pid_t pid,int *statusp,int options)pid: pid>0时只等待进程ID为pid的子进程结束 pid=-1时等待其所有的子进程中的任何一...

2019-11-06 23:42:03 996

原创 ELF入门

Executable and Linkable FormatELF有两种视图,对应不同的目标文件ELF的链接视图对应可重定位的目标文件ELF的执行视图对应可执行的目标文件main.c程序在这里插入代码片...

2019-11-06 13:16:33 335

空空如也

空空如也

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

TA关注的人

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