EricJeffrey的博客

私信 关注
EricJeffrey
码龄4年
  • 37,763
    被访问量
  • 256
    原创文章
  • 93,134
    作者排名
  • 10
    粉丝数量
  • 于 2016-12-01 加入CSDN
获得成就
  • 获得23次点赞
  • 内容获得20次评论
  • 获得72次收藏
荣誉勋章
TA的专栏
  • 安全
    1篇
  • leetcode
    11篇
  • 后端
    3篇
  • 容器
    14篇
  • 前端
    3篇
  • HTMl-CSS-JS
    5篇
  • Go
    1篇
  • Python
    3篇
  • IoT
    1篇
  • APUE
    4篇
  • Android
    4篇
  • 算法
    40篇
  • C/C++
    20篇
  • 其他
    8篇
  • JavaScript
    3篇
  • Linux
    23篇
  • Windows开发
    1篇
  • flutter
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

服务器被黑记录-问题、探索与检测

问题发现:系统出现了个挖矿的docker容器,删除了但忽略了(根源在此,docker容器的远程端口没有认证,出现了问题)执行sudo或htop命令输出奇怪字符执行touch等创建文件命令,生成的文件读写权限很奇怪问题探索:开始以为是sudo、bash或htop的问题使用strace跟踪调用发现了奇怪的write(1, "\210$\255\373", 4)查看htop、sudo等对应版本源码,发现可能是某些系统lib的问题意识到是共享库出问题了然后发现用touch后其他创建的文
原创
11阅读
0评论
0点赞
发布博客于 2 月前

LeetCode 239 Sliding Window Maximum

LeetCode 239 Sliding Window Maximum思路相当有趣的一道题,除了暴力外有三种解法有序集合使用multiset,初始化前k个数,然后每次查找-删除-添加-取最大值即可。C++里set multiset是有序的,虽然不支持随机访问,但是指定greater模板参数后就可以直接使用*set.begin()获得最大值了。双端队列维护一个双端队列,该队列总是保持如下特性队列中任一位置前的元素总比该位置的大队列最前端元素是最大值队列最大为k上述特性能够保证在O(1)
原创
12阅读
0评论
0点赞
发布博客于 2 月前

LeetCode 295 Find Median from Data Stream

思路使用multiset+pointer,在向multiset插入数据同时更新pointer,确保pointer总是指向中位数或者第一个中位数如果数据个数是偶数个。set,multiset,map的迭代器在插入操作后仍然有效。代码class MedianFinder { multiset<int> data; multiset<int>::iterator mid;public: MedianFinder() {} void addNum(i
原创
7阅读
0评论
0点赞
发布博客于 2 月前

LeetCode 42 Trapping Rain Water

思路很直观的解法是不断找凹形区域然后计算,这个思路可以延伸为阶段式的,使用最大高度的柱子将数组划分为三个部分,左边从左到右、右边的从右到左不断找比当前元素大的然后计算所覆盖区域的值,最大柱子之间的直接计算,这样子需要两三次遍历,但可以更高效。考虑上面所说的从左到右寻找比当前元素大的计算,这样的区域其能容纳的水量一定是其中左边的柱子高度减去中间每个柱子的值,同样从右到左的过程也是,因此即便未遇到比当前元素大的数,只要能够保证比当前元素大的数存在,就可以直接使用从左到右左侧值 - 当前考察柱子高度或者从右到
原创
11阅读
0评论
0点赞
发布博客于 2 月前

LeetCode 312 Burst Ballons

思路首先是brute-force暴力,直接dfs,复杂度O(n!)直接爆炸。然后暴力+记忆化,取一个元素后断开的数组会连起来,状态过于复杂,即便可以记忆化复杂度也很大。既然取的过程没法分解问题,那反过来思考,不断的取出等价于一个空数组不断地放回,放回的过程中,一旦某些元素确定位置,就会把整个数组划分成多个部分,因此也就可以对每个部分单独考虑,这样就把整个问题分成了几个子问题,这是分治和动态规划的前提。继续考虑容易想到,假设已经确定第一个放回的是第k个元素,那最终解即是 1 * nums[k] * 1
原创
19阅读
0评论
0点赞
发布博客于 2 月前

LeetCode 1263 Minimum Moves to Move a Box to Their Target Location

思路推箱子,数据范围比较小,可以bfs套bfs暴力搜索,不过在外层bfs的时候,是否访问过要同时考虑 箱子位置 和 人的位置。代码typedef vector<vector<char>> VCC;struct Pos { int row, col; bool operator==(const Pos &t) { return row == t.row && col == t.col; }};vector&l
原创
14阅读
1评论
0点赞
发布博客于 2 月前

LeetCode 659 Split Array into Consecutive Subsequences

LeetCode 659 Split Array into Consecutive Subsequences思路两遍循环第一遍统计每个字的出现次数第二遍判断当前字符是否可作为某个串的结尾,或一个新串的开头比如[1, 2, 3, 3, 4, 5, 6],第二遍循环时,首先判断1可以作为开头,那么对2和第一个3的访问就可以忽略了,之后对第二个3可以作为一个开头,同样忽略4和5,对最后一个6,他可以作为以5结尾的串的后继,将其作为新结尾即可。需要记录数字的可用个数,以及以上一个紧邻数字结尾的串可用
原创
13阅读
0评论
0点赞
发布博客于 2 月前

LeetCode 1202 Smallest String With Swaps

思路首先要能想到并且发现,对于任何相连的,或者说在一棵树上pairs,比如[[0, 1], [0, 2], [1, 3], [1, 5], [2, 4], [2, 6]],他们可以通过交换产生任意顺序的排列。证明的方法可以通过表示成树的形式然后分析。简单来说,对于任何两个一棵树上的pair[u, v],都可以通过先将u交换到v,再反过来将v换到原来u的位置实现互换。例如[[0, 1], [0, 3]],1和3互换可以通过swap(0, 1), swap(1, 3), swap(3, 0)来实现。有了上述
原创
16阅读
0评论
0点赞
发布博客于 2 月前

LeetCode 413 Arithmetic Slices

思路比较奇怪的题目,实际就是给N个数,求里面的所有长度至少为3的等差数列的个数。例如数组[1, 2, 3, 4, 5]的结果为6,分别是[1,2,3] [2,3,4] [3,4,5] [1,2,3,4] [2,3,4,5] [1,2,3,4,5]。对于长度为N的等差数列,其包含的长度不小于3的等差数列个数是: (N-3+1 + N-4+1 + ... + 2 + 1) = 1 + 2 + ... + N - 2 = (N-1)(N-2)/2,所以双指针找数组中最长的等差数列然后根据长度计算结果即可。(
原创
12阅读
0评论
0点赞
发布博客于 3 月前

LeetCode 1388 Pizza With 3n Slices

思路就像提示里说的,该问题实际上可以描述为,给N个数,从里面选择N/3个数使其和最大,选出的数不能相邻,且不能同时选第一个和最后一个。如果没有最后一个限制条件的话,其实就是个背包问题,定义dp[i][j] = [0~i]选j个数的最大和,然后能够得到dp[i][j] = max(dp[i - 1][j], dp[i - 2][j - 1] + slices[i]),也就是计算dp[i][j]的时候需要考虑是否选slices[i]的问题。然后对于第一个和最后一个不能同时选的问题,可以这么思考:因为不能同
原创
16阅读
0评论
0点赞
发布博客于 3 月前

LeetCode 567 Permutation in String

解法统计s1中字符出现次数countOfLetters,使用双指针,维护s2中双指针之间的字符的出现次数tmpCountOfLetters以及s1中未被访问到的字符数countLeft。对于双指针i,j,后者用来考察在s1中出现的字符,前者用来将不满足的字符剔除考察范围。j指针前移过程:若 s2[j] 在 s1 中出现过,且当前出现次数小于s1中出现次数 将 j 处字符的当前出现次数加一 tmpCntOfLetters[s2[j]]++ 未被访问字符数减一 cntLeft--
原创
11阅读
0评论
0点赞
发布博客于 3 月前

LeetCode 1277 Count of Smaller Numbers After Self

暴搜设从(r, c)向右向下组成的矩阵的值为A(r, c),则有:A(r,c)=A(r+1,c)+A(r,c+1)−A(r+1,c+1)+T(r,c)A(r, c) = A(r + 1, c) + A(r, c + 1) - A(r + 1, c + 1) + T(r, c)A(r,c)=A(r+1,c)+A(r,c+1)−A(r+1,c+1)+T(r,c)其中,T(r, c)表示从(r, c)开始,包含(r, c)的方阵个数若 matrix[r][c] == 1 则 T = 1 + min
原创
11阅读
0评论
0点赞
发布博客于 3 月前

C++线程安全单例

C++中实现单例:隐藏构造函数和析构函数隐藏拷贝赋值和拷贝构造函数 =delete使用静态对象和函数实现单例的唯一访问接口线程安全 - 使用mutex和两次检查为空代码(摘自C++单例详解)/** * 单例类的静态函数`GetInstance`提供了获取单例的唯一接口 * The Singleton class defines the `GetInstance` method that serves as an * alternative to constructor and lets
原创
34阅读
0评论
0点赞
发布博客于 6 月前

Epoll使用简介

简单介绍epoll在网络套接字上的使用。首先是epoll的使用,主要步骤创建epoll实例 - epoll_create1(0)调用epoll_ctl添加、修改或者删除监听套接字。需要使用 epoll_event对象struct epoll_event tmpEvent;tmpEvent.events = EPOLLIN, tmpEvent.data.fd = fd;使用epoll_wait监听那么如果要使用epoll监听TCP连接,可以按照如下步骤:socket() + bind(
原创
48阅读
0评论
0点赞
发布博客于 6 月前

poll使用介绍 - 简单服务器

Linux系统提供了`select, poll, epoll`三种更加高效的IO模型,这里使用一个例子简单介绍一下`poll`在套接字上的使用。基于事件的IO模型允许服务端使用事件触发的方式,在客户端发送请求时触发读取`read`操作,并在写操作`write`不会阻塞的时候写数据。这种IO模型允许使用更少的线程处理更多的客户端连接,能够降低系统负担,提高应用的服务效率。
原创
112阅读
0评论
0点赞
发布博客于 6 月前

使用Docker安装完整Ubuntu容器

文章目录步骤pull镜像 docker pull ubuntu --> image-id使用上述镜像启动容器,名为xxx,后面要用到这个容器 docker run -it --name xxx image-id,替换xxx和image-id现在应该进入终端了,实际就是容器的/bin/bash了。这里需要如下操作更换源,清华源在此,记得选版本以及将https更换为http,因为没有编辑器,需要echo -e 'xxx
xxx
' > /etc/apt/sources.lista
原创
265阅读
0评论
0点赞
发布博客于 7 月前

Ubuntu20.04将用户添加到sudo组并且设置不输密码

直接复制askubuntu的了,找了半天https://askubuntu.com/questions/192050/how-to-run-sudo-command-with-no-password对了,记得重新登入 re-login。I found that the most straight forward thing to do, in order to easily replicate this behavior across multiple servers, was the followin
原创
61阅读
0评论
0点赞
发布博客于 7 月前

Javascript - 使用原生动画与canvas制作抽奖圆盘

HTML5中的canvas提供了使用JS脚本在网页上绘制图形的能力,传统的HTML对象往往只能作为矩形或者圆形容器存在,而直接使用图片又比较复杂,且需要适配不同分辨率。因此,本着试一试也不亏想法,作者使用canvas创建了一个抽奖圆盘,配合动画实现抽奖地效果,整个转盘封装成了一个类,并且提供了抽奖方法。
原创
69阅读
0评论
0点赞
发布博客于 7 月前

LeetCode Maximum Width of Binary Tree

文章目录题目大意思路代码总结题目大意计算一个二叉树每一层宽度的最大值。宽带并不是几个元素,而是最右边元素的位置-最左边元素位置+1.例如下面这个二叉树的最大宽度为3. 1 / \ 3 2 \ \ 3 9 / 6 思路只要标记一下每个节点的位置左孩子:pos*2, 右孩子:pos*2+1),同时记录每一层开始和结束的
原创
28阅读
0评论
0点赞
发布博客于 7 月前

USTC计算数论课程学习记录

文章目录1 大整数因子分解算法1.1 连分数因子分解1.2 二次筛法1.3 数域筛法1.4 Pollard ρ1.5 Pollard p-11.6 P+1算法1.7 椭圆曲线法2 离散对数2.1 小步大步法2.2 Silver-Hellman-Pholig3 模p开平方计算数论学习记录,如有错误,欢迎评论区指正。1 大整数因子分解算法寻找x2≡y2 (mod p)x^2\equiv y^2\ (mod\ p)x2≡y2 (mod p)来分解N。连分数、二次
原创
80阅读
2评论
0点赞
发布博客于 8 月前

nginx 转发请求到 unix-socket

Ubuntu 20.04配置文件位于/etc/nginx/中使用sites-enabled前需要移除其中的default.conf示例:server{ listen 80; location /podmanapi/ { # podman api socket proxy_pass http://unix:/run/xxx/xxx:/; }}参考(前两个官方文档已经非常详细了)http://nginx.org/en/docs/http/ngx_http_
原创
303阅读
0评论
0点赞
发布博客于 8 月前

LeetCode Daily Challenge Sort Colors

文章目录题目大意思路代码总结题目大意对一个数组就地in-place排序,即直接在原数组基础上进行。数组只包含0, 1, 2三个元素。例如:Input: [2,0,2,1,1,0]Output: [0,0,1,1,2,2]进阶: 容易想到统计次数+重填的两次遍历的方法,请你给出个一次遍历+常数空间。思路因为只包含三个元素,因此可以采用不断交换的方式。遇到0,就先和前面的2交换,再和1交换,遇到1就和前面的2交换。这样只需记录并更新已考察的元素中,1和2最早出现的位置即可。另外,更新1, 2位
原创
46阅读
0评论
0点赞
发布博客于 8 月前

LeetCode Daily Challenge Is Subsequence

文章目录题目大意思路代码总结题目大意判断一个字符串s是否是另一个串t的子序列。子序列指将一个字符串删除若干字符后组成的串。例如abc是assdfbsc的子序列。输入限制:0 <= s.length <= 1000 <= t.length <= 10^4两个字符串都只包含小写字母进阶:假如有超过10亿个s串,一个·t·串,怎么做会更好。思路对于一个s和t来说,可以直接从前往后判断,考虑s中的字符在·t·中最早出现位置即可。但是假如·s·数目较大的话,一个一个判断就不
原创
34阅读
0评论
0点赞
发布博客于 9 月前

LeetCode ZigZag Conversion

文章目录题目大意思路代码总结题目大意将一个字符串转换为numRows行的zigzag形式,并按行按列输出转换后的字符串。字符串012345678转换为4行的zigzag后如下所示,输出为0615724830 61 5 72 4 83 更长版本的zigzag0 12 24 361 11 13 23 25 352
原创
50阅读
0评论
0点赞
发布博客于 9 月前

LeetCode Daily challenge - Two City Scheduling

文章目录题目大意思路我的方法代码总结题目大意有2N个人,现将这2N个人送到A, B两个城市,每个人送到不同城市的代价为costs。计算将这2N个人送到不同城市的最小代价,要求每个城市刚好送N个人。思路乍一看有点像动态规划,但是思考后发现有一定的贪心策略在里面。实际上,去A的代价与去B的代价 cost[a] - cost[b] 代表让一个人去B能够节约的钱,反之,cost[b] - cost[a] 代表一个人去A能够节约的钱。而这两组数互为相反数。所以只需计算一组然后选前N个去A,后N个去B。优化,
原创
36阅读
0评论
0点赞
发布博客于 9 月前

LeetCode Daily challenge - Edit Distance 编辑距离

文章目录题目大意思路代码总结题目大意编辑距离,经典动态规划题目。给出针对字符串的三种操作,替换,删除和插入,编辑距离d,表示将字符串a使用上述三种操作转换为b所需要的步骤。思路计算字符串a和b之间的编辑距离d。子问题构造: a的前缀子串和b的前缀子串之间的编辑距离,前缀子串即包含某位置前的所有字符的子串。因为计算a的前缀子串与b的编辑距离时需要考虑b中的所有字符,因此a和b的子串都要考虑。递推公式: 递推式需要考虑a[i]和b[j]是否相同的情况,例如对于hoe和rose,因为两者最后的
原创
50阅读
0评论
0点赞
发布博客于 9 月前

LeetCode Daily challenge - K Closest Points to Origin

文章目录题目大意思路代码总结题目大意找前K小元素,只不过元素是二维的坐标思路很容易想到排序后取前K个,虽然可以但是速度不够快。实际上类似于找第K大(小),可以用划分的方法找,每次随机划分,然后判断接下来从哪儿一边找。STL中有partial_sort和nth_element,尽情AC吧。。。。。代码第二种方法的代码。class Solution {public: vector<vector<int>> kClosest(vector<vector<
原创
58阅读
0评论
0点赞
发布博客于 9 月前

LeetCode Daily challenge - Course Schedule

给出n个课程,以及某些课程的预置课程,某课程的预置课程表示必须先参加预置课程后才能再参加该课程。判断是否可以完成所有的课程。有向图判断是否存在环,DFS,BFS经典题目
原创
42阅读
0评论
0点赞
发布博客于 9 月前

LeetCode Daily challenge - Counting Bits

给一个整数n,计算0~n每个数的二进制表示中1出现的次数: 利用(x & -x)寻找递推关系。
原创
39阅读
0评论
0点赞
发布博客于 9 月前

LeetCode Daily challenge - Possible Bipartition

目录题目大意输入思路代码总结题目大意将N个人划分为两组,每个人可能不喜欢其他人,即不能和不喜欢的分到一组,问是否能够成功划分。输入N和dislike[][2]分别表示人的个数和不喜欢的列表。例如N = 4, dislikes = [[1,2],[1,3],[2,4]],表示4个人,其中1与2,1与3,2与4不能分到同一组。思路类似并查集,因为不喜欢是成对出现的,所以记录每个元素所属的集合以及不喜欢的集合。对于不喜欢列表中的每一对(x, y),如若x,y都未加入任何集合 - 以他们自己为根元素
原创
68阅读
0评论
0点赞
发布博客于 9 月前

使命召唤16吃鸡无错误码闪退解决方案

本文适用于在游戏过程甚至大厅中突然卡顿,然后无任何错误码,提示或警告闪退的情况。对于其他的如DirectX遇到错误,错误码等问题请自行百度。解决方法解决方法来自reddit,原贴地址 wtf_crash_to_desktop,作者也再medium发布了解决方案,亲测可行。电脑配置GTX950M + i54200h(是的笔记本你没看错,1280720 全最低40帧实在是凑合*)cmd管理员 ...
原创
671阅读
0评论
0点赞
发布博客于 1 年前

Android创建一个简易课程表APP

文章目录目标问题与解决设计与实现界面设计实现与代码布局文件代码MainActivity代码ClassInfo类代码目标简单的课程表APP,显示课程,学期以及第几周,效果图如下:问题与解决动态添加控件时,对于可以指定style的构造函数如View(Context, AttributeSet, defStyleAttr: Int, defStyleRes: Int),需要使用new Vie...
原创
2179阅读
4评论
6点赞
发布博客于 1 年前

Go安装以及代理配置

简述Ubuntu系统下安装golang以及配置代理的过程
原创
1388阅读
0评论
0点赞
发布博客于 1 年前

在blackboard上下载xxx课程的所有作业

文章目录在blackboard上下载xxx课程的所有作业需求技术过程问题与解决代码后记在blackboard上下载xxx课程的所有作业需求因为新冠疫情,学校使用blackboard作为网课平台。这个平台的直播做的还可以,但是批改作业实在是不方便。自动加载的慢,每次都要点击进去手动下载贼麻烦。然而网页几乎全是JavaScript动态生成的,分析文件的下载链接比较麻烦,各种奇奇怪怪的字段还有请求...
原创
401阅读
0评论
0点赞
发布博客于 1 年前

使用C++实现kmeans并使用Python可视化聚簇结果

文章目录C++实现过程算法流程数据结构设计代码:Python可视化过程部分截图注: 本文代码及方法仅供参考,请勿直接使用C++实现过程算法流程kmeans - 点作为数据,cluster是点的聚簇BEGIN 选出来 k 个点作为中心点生成聚簇 循环 计算点与聚簇的距离 每个点加入到距离最近的聚簇中 更新聚簇中...
原创
278阅读
0评论
0点赞
发布博客于 1 年前

使用FFmpeg剪辑压缩视频

使用FFmpeg剪辑视频以及压缩(倍速)视频,参考廖雪峰老师的FFmpeg教程,其它博客简书., csdn., csdn…, csdnbbs.剪辑# start - hh:mm:ss# duration - seconds$ ffmpeg -ss [start] -i [inputPath] -t [duration] -c copy [outputPath]# e.g$ ffmpe...
原创
168阅读
0评论
0点赞
发布博客于 1 年前

使用Numpy拟合贝塞尔曲线

贝塞尔曲线: 通过起点、终点以及多个控制点绘制得到的曲线,Photoshop中的钢笔工具就是贝塞尔曲线。另外,CSS中动画的计时函数也有三次贝塞尔曲线,例如常用的`ease - cubic-bezier(0.25,0.1,0.25,1)`, `ease-in-out - cubic-bezier(0.42,0,0.58,1)`,本文使用Numpy拟合三次贝塞尔曲线`cubic-bezier(0.3,0,0,1)`。
原创
1309阅读
2评论
0点赞
发布博客于 1 年前

HarryPotter阅读网站编写记录

文章目录简介动机功能实现翻译翻页动画其它总结简介一个阅读英文版哈利波特的小网站reader,源码放到GitHub上了,感兴趣的可以看看。打开书籍后双击单词能够显示释义(如果有的话),如下图。推荐使用chromium-edge阅读,翻页动画更舒服。动机大概是一两年前吧,因为想看看哈利波特英文原版,就在网上找了epub格式的电子书来看。当时用win10的edge浏览器看epub还是非常舒服的...
原创
222阅读
0评论
0点赞
发布博客于 1 年前

JavaScript - requestAnimationFrame使用

文章目录目的函数原型使用目的由于前端的浏览器兼容性问题,很多比较优雅的动画往往只在某些浏览器中可以使用,而在其它浏览器无效。所有浏览器都兼容的requestAnimationFrame便是用来解决这种问题。它能够按照规定的"路线"对帧进行更新,从而实现动画效果。函数原型window.requestAnimationFrame(callback),callback(DOMHighResTim...
原创
60阅读
0评论
0点赞
发布博客于 1 年前

纯CSS实现加载动画

先上效果图通过一个父div和两个子div即可实现,主要考虑三点两个子div重叠在一起设置父元素position: relative,然后设置子元素position: absolute就可以使子元素的div重合,然后配合left: calc(20% - 3px)使两个子元素的div居中子div的border的设置使用border-radius: 50%使之成为圆形,然后使用bo...
原创
514阅读
0评论
0点赞
发布博客于 1 年前

HTMl - 横向滚动实现

文章目录横向滚动使用flex容器使用column总结横向滚动虽然大多数网页都是垂直滚动的,但对于以页显示地网站来说,横向滚动翻页(就像word的阅读视图那样)往往也是个不错的选择。如下为几种横向滚动的实现方式,不论哪种方式中,overflow-y: hidden都是必须的,该属性会禁用竖直方向的溢出。笔者才疏学浅,如有问题还望评论指正。使用flex容器flex容器详细使用可以参考阮一峰老师...
原创
487阅读
0评论
0点赞
发布博客于 1 年前

jQuery转发插件小记

动机: 国内外许多网站都会使用谷歌CDN的jQuery: https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js,不翻墙的话访问不到。之前在360极速浏览器的商店里面看到了个CDN转发器,能够将jQuery重定向到百度的jQuery库里面,但是已经不能在新版的chrome上运行了,因此参考chrome扩展的API仿照做了个...
原创
92阅读
2评论
0点赞
发布博客于 2 年前

Leetcode 5 15 98 138解题记录

文章目录15 3Sum98 验证二叉搜索树5 最长回文子串138 拷贝带有随机指针的链表刷top-100的题目,最近做了这四道,原题:138, 5, 15, 98.15 3Sum给你一串整数,让你找里面所有和为0的三元组。思路: 暴力的话三循环,时间复杂度高。可以考虑先求任意两个数的和a,然后找剩下的数中值为-a的元素,但是复杂度依旧很高。考虑先确定一个数b,那么接下来的任务就是找和为-b...
原创
39阅读
0评论
0点赞
发布博客于 2 年前

使用runc运行Tomcat容器并分析资源使用量

文章目录使用runc运行Tomcat容器并查看运行状态准备工作runcAlpine Linux文件系统Tomcat配置Config.jsonprocessinit.shhooksprestartpoststop环境变量、权限属性完整config.json, prestart.cpp, poststop.shpoststop.sh分析容器资源使用量使用runc运行Tomcat容器并查看运行状态尽...
原创
92阅读
0评论
2点赞
发布博客于 2 年前

使用runc运行alpine_linux容器

文章目录下载 解压镜像配置 运行已知信息具体过程问题与解决总结上一篇使用runc与oci-image-tool运行容器中虽然成功使用runc运行起来了容器,但遇到了不少问题。本文再次讲述使用runc运行alpine linux容器,并解决上一次出现的相关问题。注: 本文命令均在Ubuntu 18.04x64下运行通过下载 解压镜像skopeo与oci-image-tool分别用来下载与解压...
原创
118阅读
0评论
0点赞
发布博客于 2 年前

高级数据库课程实验记录 - 实现Storage and Buffer Manager

USTC计算机院高级数据库课程实验1记录 - 实现Storage and Buffer Manager,包括缓冲区LRU算法、基于目录的记录操作实现等
原创
629阅读
0评论
1点赞
发布博客于 2 年前

使用runc与oci-image-tool运行容器

文章目录skopeo下载镜像oci-image-tool解压、创建镜像runc运行容器内存使用情况本文描述了如何使用skopeo下载镜像,使用oci-image-tool打包/创建bundle以及使用runc运行容器。参考如何绕过docker运行hello-world,什么是容器的runtime?以及容器镜像规范。环境: Ubuntu 18.04.skopeo下载镜像skopeo需要从源码安...
原创
223阅读
0评论
0点赞
发布博客于 2 年前

Golang配置与runc源码build小记

文章目录golang下载环境变量配置opencontainers/runc配置其它环境: Ubuntu18.04,Golang, runcgolang下载使用sudo apt install golang版本过低,无法使用使用snap太慢,无镜像无代理下载zip解压到/usr/local/可行,参见安装指南环境变量配置全局环境变量在/etc/profile...
原创
88阅读
0评论
0点赞
发布博客于 2 年前

论文 Enabling Data Processing at the Network Edge through Lightweight Virtualization Technologies

文章目录摘要介绍主要工作主要贡献相关工作capillary network中的边缘计算设计边缘计算平台边缘计算平台细节数据处理评估论文 Enabling Data Processing at the Network Edge through Lightweight Virtualization TechnologiesSECON 2016.6Roberto Morabito摘要通过容...
原创
69阅读
0评论
0点赞
发布博客于 2 年前

Linux CGroup记录

文章目录结构查看subsystem创建、管理cgroupsubsystem使用CGroup使用pids-subsystem限制进程数将进程分组,对一组进程进行统一的资源监控和限制。逻辑上,CGroup将系统中的进程组织成一颗一颗独立的树结构。树将进程分组,然后使用subsystem对这些组进程资源限制、统计等操作。参考了Linux Namespace和Cgroup系列文章, Redhat SUB...
原创
92阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 146 LRU Cache

文章目录题目大意思路算法一 - 暴力算法二 - 哈希表+链表算法三 - 哈希表&链表算法三代码算法二代码总结题目大意设计并实现LRU(Least Recently Used,最近最久未使用)缓存算法,支持两种操作get和put。get(key): 获取key的值,不存在为-1put(key, value): 更新key的值或者插入(key, value),若插入前缓存已满,则使用...
原创
32阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 399 Evaluate Division

文章目录题意思路代码题意给出多个形如 a/b=k 的式子以及询问 a/b=?,要求对回答每个询问的结果,若从式子推导不出询问的答案,则返回-1。其中 a, b 为任意字符串,k 为实数。例如:式子:a / b = 2.0, b / c = 3.0询问:a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ? 答案:6.0, 0.5, -1...
原创
39阅读
0评论
0点赞
发布博客于 2 年前

Unix系统数据文件和信息 - APUE

文章目录口令文件 /etc/passwd阴影口令 /etc/shadow组文件 /etc/group附属组 ID其它数据文件登陆账户记录系统标识时间和日期Linux设置时区本文内容来源于Unix高级编程,欢迎评论。口令文件 /etc/passwdpasswd结构包含用户名、密码、用户ID、组ID等信息,Linux在该结构中定义了下列结构:char *pw_name; char ...
原创
50阅读
0评论
0点赞
发布博客于 2 年前

Linux Namespace - 超简单容器构建

文章目录步骤概览运行结果展示构建过程目录准备复制可执行文件创建Namespace,配置文件系统安装busybox并执行shell程序完整代码总结Namespace隔离了进程、网路、用户等系统资源,本文将讲述如何通过Namespace创建一个超简单容器,并在容器内部运行简单的busybox程序。本文内容参考了LinuxNamespace系列(09),虽然目的相同,但本文采用C语言系统调用的方式实现...
原创
149阅读
0评论
0点赞
发布博客于 2 年前

Linux网络虚拟化再实践 - Bridge + NAT

文章目录步骤实现创建`Network Namespace`、虚拟网卡设备`veth`与桥设备`bridge`ip netns、ip link命令简介创建netns、veth、bridge配置桥设备、虚拟网卡设备配置`nat`iptables 简介`nat`表中包含如下四个内置chain:`nat`表中三个(部分)可用的内置target`iptables`命令的选项,只能指定其中一个定义*rule*...
原创
161阅读
0评论
0点赞
发布博客于 2 年前

Linux网络虚拟化 - Network Namespace 实践

文章目录创建 Network Namespace创建、配置虚拟网卡总结Network Namespace能够隔离系统的网络设备, IP地址, 端口等,每个netns有自己独立的网络栈,路由表等。Linux提供了ip netns命令方便我们创建、删除netns或者在给定的netns中执行命令。本文主要介绍使用ip等命令创建netns并使用NAT使配置netns中的网络。参考链接:Namespa...
原创
79阅读
0评论
1点赞
发布博客于 2 年前

Linux Namespaces in operation记录 - part 7

文章目录基础网络Namespace管理Network Namespace 配置Network Namespace的用途总结注:本文绝大部分内容来自Linux Namespaces实践part 7,原文系列文章详细描述了Linux Namespace相关内容,英语过关的建议阅读原文,本文内容主要用来记录学习内容,如有不当之处还请评论区指正。Network Namespace隔离了系统中的网络设备...
原创
46阅读
0评论
1点赞
发布博客于 2 年前

Linux Namespaces in operation记录 - part 6

文章目录User Namespace 与 capabilities一个栗子User Namespace与其它Namespace的结合再看capabilities总结注:本文绝大部分内容来自Linux Namespaces实践part 6,原文系列文章详细描述了Linux Namespace相关内容,英语过关的建议阅读原文,本文内容主要用来记录学习内容,如有不当之处还请评论区指正。User Na...
原创
108阅读
0评论
0点赞
发布博客于 2 年前

Linux Namespaces in operation记录 - part 5

文章目录创建User Namespace一个栗子映射用户与组ID又一个栗子映射规则以及深入探索映射总结注:本文绝大部分内容来自Linux Namespaces实践part 5,原文系列文章详细描述了Linux Namespace相关内容,英语过关的建议阅读原文,本文内容主要用来记录学习内容,如有不当之处还请评论区指正。User Namespace隔离了安全相关的属性,即用户ID、组ID、根目录...
原创
63阅读
0评论
0点赞
发布博客于 2 年前

Linux Namespaces in operation记录 - part 4

文章目录PID Namespace一个例子init进程与信号unshare() 与 setns()又一个例子小结注:本文绝大部分内容来自LinuxNamespaces实践part4 ,原文系列文章详细描述了Linux Namespace相关内容,英语过关的建议阅读原文,本文内容主要用来记录学习内容,如有不当之处还请评论区指正。PID Namespace一个新创建的PID Namespace中...
原创
59阅读
0评论
1点赞
发布博客于 2 年前

Linux 并发编程简介-select,pthread与semaphore

文章目录select函数 - IO多路复用POSIX线程pthread简介创建线程终止线程回收已终止线程的资源分离线程初始化线程的共享变量同步线程 - 信号量生产者消费者模型预线程化服务器总结select函数 - IO多路复用select函数用来监控多个文件描述符上的读/写等事件,下为select相关的宏及函数:#include <sys/select.h>#include &...
原创
486阅读
0评论
2点赞
发布博客于 2 年前

LeetCode 739 Daily Temperatures

文章目录题目思路代码题目给一个大小为n的数组T,要求对i从0-n,计算出从i + 1开始的第一个大于T[i]的数的位置j,并将j-i的值记录下来。例如对于数组:[73, 74, 75, 71, 69, 72, 76, 73],输出数组为:1, 1, 4, 2, 1, 1, 0, 0。注:数组T不为空,且最多包含30000个元素,每个元素的取值范围为[30, 100]。思路因为是找i之后的...
原创
40阅读
0评论
0点赞
发布博客于 2 年前

Linux信号概述

Linux信号(signal)允许进程和内核中断其它进程,例如Ctrl+C会向终端中正在运行的进程发送SIGINT信号,一个进程试图除0时内核会发送给它一个SIGFPE信号,本文概述了Linux系统中与信号相关的函数调用,包括发送信号、处理信号、阻塞信号等,并列举了几个例子阐述相关内容。
原创
61阅读
0评论
0点赞
发布博客于 2 年前

Linux进程控制概述

Linux中进程控制是编写Linux(或Unix)程序时必备的技能,这篇文章概述了Linux中与进程控制相关的函数调用,如fork、execve、waitpid等,并采用例子对函数的使用作了简要说明。
原创
69阅读
0评论
1点赞
发布博客于 2 年前

flutter安卓开发概述

目录UI构建Stateless Widget与Stateful Widget遇到的一些问题Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。这篇文章主要讲述了使用flutter开发的大致流程及可能遇到的问题,关于flutter开发的详细文档,可以参考flutter中文网。UI构建传统的android开发使用 xml 布局文件构建UI,而flutt...
原创
335阅读
0评论
0点赞
发布博客于 2 年前

Alpine Linux的安装配置

Alpine Linux是一款安全、轻量的Linux发行版,基于musl libc and busybox。本文简要描述了Alpine Linux的安装过程以及VMware Player端口映射的配置。
原创
1515阅读
0评论
0点赞
发布博客于 2 年前

创建数字证书以及使用数字签名对UWP应用包签名

目录创建数字签名创建自签名证书确定待打包应用的颁发者(Subject)使用 New-SelfSignedCertificate 命令创建证书导出证书打包应用程序使用SignTool进行签名使用SignTool确定哈希算法对APP进行签名常见错误及解决注:本文主要译自MSDN官方文档,如有不恰当指出欢迎评论区提出。英语OK的建议参考官方链接:Sign an app package using Si...
原创
1691阅读
0评论
0点赞
发布博客于 2 年前

Linux下套接字创建及连接建立简介 - APUE

目录连接过程创建套接字地址服务器开启监听代码客户端连接建立代码套接字地址格式数据传输线程创建代码Unix环境高级编程(APUE)中介绍了套接字socket的使用,本文从开发者使用过程角度简单介绍了服务器开启监听、客户端发起连接、子线程创建的一些过程以及Unix中套接字的地址格式等内容。连接过程创建套接字地址创建套接字地址 sockaddr_in (IPV4), sockaddr_in6 ...
原创
543阅读
0评论
2点赞
发布博客于 2 年前

Chrome插件开发简记

目录manifest清单文件background.js默认执行文件options.html, options.js 选项页面popup.html, popup.js 弹出菜单页面向网页中注入JavaScript与CSS数据存储网页,扩展消息传递建议先看官方参考文档 Overview ,该文档有个简单的入手教程,之后自己尝试开发时可以参考 Chrome Extension API 。另外,扩展文件...
原创
91阅读
0评论
1点赞
发布博客于 2 年前

LeetCode 142 Linked List Cycle II 题解

LeetCode 142 Linked List Cycle II题意思路代码题意判断给出的链表中是否包含环,如果有的话返回环的起始点,否则返回null。如下环起始位置为ca->b->c->d ↑ ↓ f<-e思路双指针一个一次一步,一个一次两步可以进入环中,但问题在于如何找到环的起始位置,下面是从讨论版找到的图,可以参考一下:代码...
原创
59阅读
2评论
0点赞
发布博客于 2 年前

LeetCode 33 Search in Rotated Sorted Array 题解

LeetCode 33 Search in Rotated Sorted Array题意思路代码总结题意给出一个数组,该数组是由一个升序排列的数组以某个轴旋转后得到的。例如4 5 6 7 0 1 2是由0 1 2 4 5 6 7旋转(我认为是交换)后得到的。给你一个目标值target,要求判断数组中是否存在这个值,存在的话给出它的位置,否则返回-1。注: 数组中无重复数组,要求算法时间复杂度...
原创
44阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 19 Remove Nth Node From End of List 题解

LeetCode 19 Remove Nth Node From End of List题意思路方法1 指针数组方法2 当前倒数第n个节点代码题意给一个链表,要求删除链表中的倒数第n个节点并返回链表的首节点,数据保证n有效。要求一次遍历得到结果。思路方法1 指针数组将所有的节点指针值存到数组中,遍历之后通过数组直接访问倒数第n个指针,不过这种方法显然有点不太好。方法2 当前倒数第n个节...
原创
28阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 139 Word Break 动态规划

LeetCode 139 Word Break题意思路代码总结题意给出一个非空字符串s以及一个字典 - 包含多个非空字符串的列表wordDict,判断字符串s能否由字典中的字符串拼出来,字典中的字符串可以使用多次,字典中不包含重复的字符串。其中一个样例如下:input: s = "applepenapple", wordDict = ["apple", "pen"]output: true...
原创
48阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 207 Course Schedule

LeetCode 207 Course Schedule题意有0~n-1共n门课你需要进修,其中一些课程需要在修完其他课程后才能进修,例如(0,1)表示要进修课程0你必须先修完课程1。给出课程的总数以及一个列表表示所有的先决条件,问是否可能修完所有课程。注:课程先决条件可以看作是由一个图的边(edge)组成不会出现重复的边思路假如将每个先决条件(a,b)看作是b到a的有向边,整个...
原创
26阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 309 Best Time to Buy and Sell Stock with Cooldown

LeetCode 309 Best Time to Buy and Sell Stock with Cooldown题意给出一串数组prices,数组中第i个元素代表第i天股票的价格,每天你可以选择购入一张股票或者售出已有股票,但有如下要求:你不能同时参与多个交易,即当你手中有一张股票时你只能在卖出之后才能再次购入股票售出股票后你必须等待一天才能继续购入设计一个算法使受益最大。思路...
原创
55阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 39 Combination Sum

LeetCode 39 Combination Sum题意给出n个互不相同的正整数,找出所有和为target的组合,每个数字可以用多次。思路对于每个数v来说,可以选择取最多k次,k = target / v,也可以选择不取。因此可以使用深搜来解决这个问题。当然如果有做过背包问题的话,可以看到这个问题实际上是动态规划的经典背包问题,具体什么类型我也忘了,不过思路还是比较容易想到的。以输入 ...
原创
42阅读
0评论
0点赞
发布博客于 2 年前

Petri网转换为马尔科夫链算法

Petri网转换为马尔科夫链算法简介Petri网Petri网的概念是德国的Carl Adam Petri早在1962年提出来的。他在他的论文里提出了一个新的信息流模型,这个模型基于系统各部分的异步并发的操作,并把各部分之间的关系用网状的图来描述。Petri网用于描述和分析系统中的控制流和信息流,尤其是那些有异步和并发活动的系统。圆圈表示位置( place ),圆圈中有标识( token ...
原创
825阅读
1评论
1点赞
发布博客于 2 年前

LeetCode 337 House Robber III

LeetCode 337 House Robber III题意给一个二叉树,从中取任意多个数并使这些数的和最大。要求任意两个直接相连的节点不能同时取到。思路1 暴力深搜时间空间复杂度都没有限制,爆搜来一发。首先,假如选了一个节点,那这个节点的直接孩子都不能选,只能选不直接相连的孩子,因此需要引入一个布尔值表示当前节点是否可选;其次对于每个节点,如果可选的话,我们也可以选择不选这个节点,...
原创
42阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 287 Find the Duplicate Number

LeetCode 287 Find the Duplicate Number题意给一个长度为n+1的数组,数组中元素的值再1到n之间(包括1和n),其中有一个元素重复出现了多次,让你求出这个元素。要求时间复杂度小于O(n^2),空间复杂度为O(1),不能修改原数组中的值。思路emmm看讨论版的,英语可以的话建议直接看讨论版高票答案以及高票回复。这个题目很特殊的一点是,数组中每个元素都在1...
原创
33阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 347 Top K Frequent Elements, 22 Generate Parentheses

LeetCode 347 Top K Frequent Elements AND 22 Generate Parentheses347 Top K Frequent Elements题意给一个非空整数数组,求出现次数最多的K个不同的数,题目保证k有效。要求时间复杂度优于O(nlogn)。思路本以为会有O(n)的方法,但思考不出来,看了讨论版之后发现点赞最多的使用的是unordered_m...
原创
35阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 238 Product of Array Except Self 题解

LeetCode 238 Product of Array Except Self 题解题意给一个数组nums,输出一个新数组output,其中output[i]是原数组中除nums[i]以外,其他所有元素的乘积。要求在O(n)的时间内解决并且不使用除法,而且不使用除了返回结果以外的额外空间。思路前缀积 * 后缀积。首先可以判断出的是,结果不会超过int的最大值,否则返回值也不应该是vec...
原创
51阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 647 Palindromic Substrings

LeetCode 647 Palindromic Substrings题意给一个字符串,求该字符串的所有子字符串是回文串的个数。凡是起始下标或结束下标不同的子串,即便他们的值一样,仍认为是不同的子串。思路由小回文串推大回文串 - 利用已知信息。如果采用暴力求解的方法,那么判断每个子串是否是回文串都需要O(n)的时间。事实上,当我们得到一个回文串aba时,可以通过向两边扩展的方法,判断xab...
原创
25阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 581 Shortest Unsorted Continuous Subarray 题解

LeetCode 581 Shortest Unsorted Continuous Subarray 题解题意给定一个数组,找出一个最短的子序列使其满足,只将这个子序列重新排序即可使整个数组有序(升序)。输出这个最短子序列的长度。思路一 排序对比比较容易想到的是将数组排序后与原数组对比。比如样例:未排序 [2, 6, 4, 8, 10, 9, 15]排序后 [2, 4, 6, 8, ...
原创
38阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 406 Queue Reconstruction by Height

LeetCode 406 Queue Reconstruction by Height 题解题意给定一组数列,数列中每个元素为一对数(h, k),其中h表示该元素的值,k表示该元素之前所有元素中,值大于等于当前元素值的个数。这个数列被打乱了,要求重新排列这个数列使其正确。思路一 考虑最大元素对于值为最大值的元素来说(可能多个),倘若将它们按照k从小到大排序,会发现他们的k值其实就是他们的...
原创
114阅读
0评论
1点赞
发布博客于 2 年前

Windows下配置VSCode编写C++

本文主要描述如何在Windows下使用MinGW配置VSCode以编写C++程序,如有错误,还望评论指正。参考链接:官方教程,feynman1999的文章下载并安装VSCode;下载MinGW-w64,当然你也可以下载其他版本的MinGW;打开VSCode,在扩展中搜索C++,安装官方(Microsoft)发布的C/C++扩展,之后重新加载窗口;打开一个文件夹,路径不要包含中文。类似于...
原创
607阅读
0评论
0点赞
发布博客于 3 年前

LeetCode 438 Find All Anagrams in a String 题解

LeetCode 438 Find All Anagrams in a String 题解 - 滑动窗口题意给出一个字符串 s 和一个非空字符串 p,找出 s 中所有 p 的 anagram 的下标。输入的字符串中只包含小写字母。anagram:任意改变原字符串中字符顺序的所有新字符串,包括原串。例如 abc, bac, acb, bca 都是 abc 的 anagram。思路...
原创
59阅读
0评论
0点赞
发布博客于 3 年前

Android自定义View - 百分比扇形图

Android自定义View - 百分比扇形图前两天舍友在网上看到了一个扇形图的自定义View,看到后自己也想借此机会试一下自定义View中Canvas的使用,便写了个简单的扇形图,效果图如下,具体细节还有些不是很完善:GIF动图(以实际运行效果为准):具体的实现方式就是canvas的绘制了,主要参考了 Carson_Ho 的系列:https://www.jianshu.com/p/76...
原创
932阅读
0评论
1点赞
发布博客于 3 年前

Android录音并根据音量大小实现简单动画效果

#Android录音并根据音量大小实现简单动画效果最终效果:录音使用的是Android提供的 AudioRecord,可以在录音的同时判断音量,动画效果使用的是 clipDrawable 对象的 setLevel 方法,具体的过程如下:clipDrawable准备两张图片,一张作为背景(灰色),一张作为前景,用于生产动画效果:新建一个drawable资源文件,其中的属性也...
原创
7601阅读
2评论
2点赞
发布博客于 3 年前

Android简单自定义布局介绍

Android简单自定义布局介绍复用嘛~写一堆同样的布局属性不仅长,还降低可读性,虽然可以定义style,但布局复杂一点就又杯水车薪,好吧style我用的不多,似乎有一些高级的用法不是很了解,但是简单的自定义布局确实会方便许多。定义自定义类继承 View,建议在特定的package(如 com.xxx.xxx.view)下定义自定义布局类,例如:public class CustomTi...
原创
1899阅读
3评论
0点赞
发布博客于 3 年前

简单贝塞尔曲线实现 - Javascript大作业

贝塞尔曲线:似乎是在Windows XP的屏幕保护选项里面看到过贝塞尔曲线,一直对这个名字比较感兴趣,刚好最近想起来了便百度了一下。参考:贝塞尔曲线扫盲是当时第一次看的,讲的挺通俗易懂的;Wiki:wikipedia-Bézier curve;绘制算法:de Casteljau's 算法学习过Photoshop,对里面的钢笔工具印象颇深,看到钢笔工具用的就是贝塞尔曲...
原创
63阅读
0评论
0点赞
发布博客于 3 年前

Linux常用命令

一些常用的Linux命令ls 命令列出当前或指定目录文件及目录-l选项:列出详细信息,形如 drwxrwxr-x 2 …   d 表示目录,之后每三个一组表示 (所有者,所有者所在用户组,其他用户) 的读写执行权限chmod命令更改文件或者目录的格式用法:chmod [OPTION]... MODE[,MODE]... FILE...示...
原创
23阅读
0评论
0点赞
发布博客于 3 年前

CS Academy Reconstruct Sum

题目链接:https://csacademy.com/contest/archive/task/reconstruct-sum题目大意:每个数都可以表示成两个加数的和,例如15 = 6 + 9,或者15 = 11 + 4,对比这两种的进位能够发现,前者最低位是有进位的,后者是没有的。现在给出一个数字S < 1e18,以及长度为s的位数-1的01序列。这个序列从前到后表示从最低位...
原创
37阅读
0评论
0点赞
发布博客于 4 年前

CS Academy Seven-segment Display

题目链接:https://csacademy.com/contest/archive/task/seven-segment-display题目大意:七段显示器能够显示0-9所有数字,不同的数字需要的发光段的个数不同。现在给出K,要求用恰好K个发光段来组成一个最小的数字,数字不允许有前导0,输出最小的数字。解题思路:可以发现8需要的段最多-7个,而其余的需要的段数都要少于7,因此对...
原创
33阅读
0评论
0点赞
发布博客于 4 年前

ZZUOJ 10508: 数列游戏IV

题目链接:http://acm.zzu.edu.cn:8000/problem.php?id=10508题目大意:给定一个序列,长度为N,每次询问为一组区间[Li,Ri],输出Li到Ri中出现恰好两次的不同数的个数.N,M<=2*10^5,序列中元素<=10^9解题思路:考虑用树状数组解决(大概是一种类型的题目)。树状数组一般用来快速计算更新(logN)前缀和,而对...
原创
38阅读
0评论
0点赞
发布博客于 4 年前

CS Academy Dominant Free Sets

题目链接:https://csacademy.com/contest/archive/task/dominant-free-sets/statement/题目大意:给一个包含N个点的集合,集合中的点各不相同。对于点A,B,如果B.X >= A.X 并且 B.Y >= A.Y,那么认为B优于A。问不存在两个点A,B使得A优于B的集合共多少个。结果对1e9+7取余。10^51...
原创
29阅读
0评论
0点赞
发布博客于 4 年前

CS Academy 8 Divisible

题目链接:https://csacademy.com/contest/archive/task/8-divisible题目大意:给出一个大数N,长度不超过1000位。现在要求将N的所有位重新排列,使得其能够被8整除。输出最小的可能解,如果没有解,输出-1. 输出不允许有前导0。解题思路:考虑1,10,100,1000……模8,发现分别是1,2,4,0,0……。也就是说从1000开...
原创
35阅读
0评论
0点赞
发布博客于 4 年前

ZZUOJ 10509: xor运算统计

题目链接:http://acm.zzu.edu.cn:8000/problem.php?id=10509题目大意:给定n个正整数,a1 a2 ... an,从中选取k个数 , ai1ai2ai3... Aik,其中(1<=i1<i2<i3<...<ik<=n),u=ai1^ai2^ai3^... ^Aik,将异或和为u 的序列(i1,i...
原创
30阅读
0评论
0点赞
发布博客于 4 年前

SPOJ PROOT - Primitive Root

题目链接:http://www.spoj.com/problems/PROOT/题目大意:给出一个整数p,p为素数,给出n个数x,判断x是否为p的原根。解题思路:参考:http://www.apfloat.org/prim.html大致思想:如果x是模p的原根,那么 ep(x) = p - 1, 否则ep(x) 整除 p - 1。 而如果从1到p-1判断x的幂是否为1显然...
原创
43阅读
0评论
0点赞
发布博客于 4 年前

一周水题集锦 2017 9.11

http://www.spoj.com/problems/CDRSANJ/解题思路:反正我是没找出来啥规律。http://www.spoj.com/problems/CUBEFR/解题思路:筛子!http://www.spoj.com/problems/APS/解题思路:筛子。。。http://www.spoj.com/problems/ANAR...
原创
22阅读
0评论
0点赞
发布博客于 4 年前

SPOJ PON - Prime or Not

题目链接:http://www.spoj.com/problems/PON/题目大意:判断N是不是素数,N<264-1.解题思路:需要用到拉宾-米勒素性判定。(选自数论书籍)合数的拉宾-米勒测试:设n是奇素数,记n-1=2kq,q为奇数。对不被n整除的某个a,如果下述两个条件都成立,则n是合数。  a): aq!≡ 1 (mod n),  即a的q次方不与1模n...
原创
91阅读
0评论
0点赞
发布博客于 4 年前