钾肥喵的窝

我在 CODING 部署的 Hexo 博客

0%

题面

https://www.luogu.com.cn/problem/P1781

基本思路

记录编号, 比较(三百行的高精度板子在招手)票数。

踩的坑

虽然是水题, 但是可以拿来熟悉语法啊, 所以(自撰一良方,服之)决定用STL来写, 遂翻车。

第一个坑是关于Lambda表达式的, 参数的数据类型填错了, 导致CE, 所以说数据类型要对应。

第二个坑是string的比较运算符, 查阅资料可以知道, string重载的比较运算符是通过strcmp()实现的。 下面放出glibc对strcmp()的实现。

阅读全文 »

题面

https://www.luogu.com.cn/problem/P1177

什么是快速排序

快速排序是运用分治思想的最坏时间复杂度为O(n2), 期望时间复杂度为O(nlgn)的排序算法。

下面简述步骤: > 首先设定一个分界值,通过该分界值将数组分成左右两部分。 > 将大于或等于分界值的数据集中到分界右侧,小于分界值的数据集中到分界左侧。直至左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。 > 分别对左右两边的数据进行快速排序。

阅读全文 »

题面

https://www.luogu.com.cn/problem/P1017

进制转换

很简单: 除R取余, 逆序输出(不会吧, 不会吧, 不会还有人这个都记不住吧)

负数进制转换

这个题目坑就坑在这里, 没说清楚负数进制的操作细节

那么我们就只能从样例中获取细节, 模拟一遍(你猜我折腾了几遍)就知道了

观察这组样例:

1
2
3
4
Input:
28800 -16
Output:
28800=19180(base-16)
我们发现基本原理还是 除R取余, 逆序输出, 不过余数为负数的时候需要借位 比如膜了一次-16之后是-1800, 再膜-16就是-8, 商是112, 这个时候我们向商借一个1, 也就是说余数变成了-8 -(-16) = 8, 商变成了113

阅读全文 »

看到P1932时就想写高精度了, 但是因为种种原因(单纯因为懒和废)一直没有写. 因为实践课的附加题需要用到高精度, 于是就开始了漫长的爆肝之路(前前后后肝了接近五天).

主要参考: https://www.luogu.com.cn/blog/user24922/solution-p1932 增加了对负数运算的支持, 并且修复了一个bug.

因为代码比较长, 为了控制篇幅, 正文基本不会贴代码.

大整数的存储结构

很显然, 自带的数据类型并不够用, 所以我们需要自己造一个新类型.

既然支持负数运算, 那么一个标志位自然是必不可少的.

接着就需要存数据了, 显然, 有了标志位, 直接存绝对值会更方便, 所以我们直接开个 long long 数组(用有符号的便于加减法运算)来存就好了.

阅读全文 »

题面

https://ac.nowcoder.com/acm/contest/9692/D

读题

首先要明确后导零(顾名思义, 很显然就是 p 进制下末尾连续0的个数).

题面中有一句话很重要: + 为了简化问题,p 保证为素数. 有了这个保证, 我们要考虑的范围就小了很多.

算法

首先我们转换一下问题, 求后导零的个数实际上就是对 n! 进行因数分解, 然后求其中 p 因子的个数(这个时候你就发现素数多么和蔼可亲了). 参照一下进制转换的过程就可以很容易的得出上述结论.

阅读全文 »

题面

https://ac.nowcoder.com/acm/contest/9692/E

解题

首先研究 k|gcd(i, j) . 很显然, 如果该式成立, 那么 k 必然是 i, j 的公因子, 也就是说 i, j 都是 k 的倍数. 所以我们所求的就是符合要求的数对的个数, 根据数学知识 1 ~ n 中有 a = n / kk 的倍数, 1 ~ m 中有 b = m / kk 的倍数, 符合要求的数对个数就是 a * b .

踩的坑

别问, 问就是不开long long见祖宗.

阅读全文 »

起因是在阮行止大佬的博客看到一篇文章: https://ruanx.net/selenium/ 但是Python和Selenium我都不会啊,而且哈工大和忽忽悠的系统差别较大。

于是发挥优良传统: 抄代码! 在CSDN上找到一篇文章: https://blog.csdn.net/wjl_zyl_1314/article/details/107036245 这篇文章也是代码的主要来源。

开搞之前

自动打卡需要几步? > + 自动登录 > + 自动填写信息 > + 自动提交 > + 信息反馈

阅读全文 »

3.员工管理系统v1,实现一个员工信息管理系统,员工信息包括:姓名、工号、工资. 姓名为不超过30个字符的字符串,工号是长度为5的字符串,假设员工数量不超过100人. 功能包括: > (1)员工信息增加; > (2)员工信息删除; > (3)查询员工信息:通过工号或者姓名 > (4)输出所有员工信息,按照工资排序,按照工号排序.

数据的存储

用三个指针数组分别存储各项信息就好了(现在用结构体就超纲了). 需要注意的是存入数据前要申请内存. 删除数据后要释放内存.

阅读全文 »

发生甚么事了?

噢,原来是左天,一个高中同学问我能不能写个点名器,我说可以.

为什么选Qt

Win32 到处都能跑,但是太麻烦,果断放弃.

MFC 比 Win32 方便一点,但是入门同样麻烦,查了半个小时资料,弃之.

EasyX 容易上手,但是大部分控件需要自己实现,弃之.

Qt 容易上手,工作量小(才不会说是因为方便抄代码和改代码).

点名器的基本原理

我们给每个名字编号,于是点名的过程就变成了一个生成随机数的过程,所以点名器就相当于一个随机数生成器.

阅读全文 »

欢迎使用 CODING DevOps 静态网站 部署 Hexo 应用! 您可以到这里查看更多的 Hexo 的 文档

这是你的第一篇文章。

快速开始

新建文章

1
$ hexo new "My New Post"

相关帮助: 写作

本地运行

1
$ hexo server

相关帮助: 服务器

部署到线上

1
$ git add . && git commit -m 'new post' && git push