xzy の 未知屋
🍭查看新品🍬
怎么写出一个属于自己的排序算法——桶排序(全) & 计数排序(上)
同步发表于洛谷专栏。 怎么写出一个属于自己的排序算法呢?今天要带你写的是桶排序,顺便写一个在桶排序之上进行优化的排序算法——计数排序。 你在一个偶然的瞬间,发现一个可以不基于比较的排序算法。 我们从头开始遍历待排序数组,统计每个数字的出现次数,统计完毕后遍历计数数组,发现第 $i$ 个数字出现了 $j$ 次,那么就循环输出它 $j$ 次: 12345678int a[maxn], b[maxn]; // 待排序数组和桶数组for (int i = 1; i <= maxn; i++) b[a[i]]++;for (int i = 1; i <= maxn; i++) // 遍历每一个数(注意不是数字){ for (int j = 1; j <= b[i]; j++) // 输出出现了 j 次的 i cout << i << " ";} 恭喜你已经有了桶排序的代码,但是大量学者发现一个问题,只能处理 $0 \le maxn \le 10^7$ 左右的数据,不然会运行时错误(负数)以 ...
重生之我在高一
本文讲述了 xzy 从高三重生之高一的故事。
公告与随笔
公告 2025-xx-xx:启用博客! 随笔 无。
game
123456789101112#include <bits/stdc++.h>#define endl '\n'using namespace std;int main(){ // ios::sync_with_stdio(false); // cin.tie(nullptr); // cout.tie(nullptr); cout << "Hello World!" << endl; return 0;}
【转载于 qwqerty】一种基于积性性质快速计算 lowbit 的方法
本文转载于https://www.luogu.com.cn/article/mgu1aigs。 可惜休闲娱乐分区不能全站推荐( 我们不难打出一下暴力代码: 12345678int lowbit(int x) { int res = 0; while (!(x & 1)) { res++; x >>= 1; } return (1 << res);} 容易证明,$\operatorname{lowbit}(x)$ 是积性函数。看到积性函数,我们首先联想到分解质因数,所以我们可以将 $x$ 分解质因数,计算其质因数之积。 接下来我们考虑质数幂的情况,很显然,除了 $\operatorname{lowbit}(2^k)=2^k$ 之外,其它都是 $0$。所以我们只需要分解质因数,套公式计算即可。代码如下: 1234567891011121314151617181920212223242526int qpow(int x, int y) { int res = 0; while (y) { if ...
题解:P12172 [蓝桥杯 2025 省 Python B] LQ 图形
题解:P12172 [蓝桥杯 2025 省 Python B] LQ 图形 思路 本题考察模拟。 不规则图形不方便输出?没关系,分成两部分(两个矩形)即可,大小分别为 $h \times w$ 和 $w \times (v + w)$。 代码 第一个矩形的输出代码: 123456for (int i = 1; i <= h; i++){ for (int j = 1; j <= w; j++) cout << "Q"; cout << endl;} 第二个矩形是差不多的,只需要调整 $i$ 和 $j$ 的范围即可。 完整代码: 123456789101112131415161718192021222324#include <bits/stdc++.h>#define endl '\n'using namespace std;int w, h, v;int main(){ // ios::sync_with_stdio(false); ...
对于某些事的另一种解释
叠甲:本文仅作娱乐,不做任何依据。 边运动边写作业会无事发生: 从作用分析: 运动使人快乐、写作业使人伤心,互相抵消 从后果分析: 猝死使人伤心、不用写作业使人快乐,互相抵消
题解:P12154 [蓝桥杯 2024 省 Java B] 逃离高塔
题解:P12154 [蓝桥杯 2024 省 Java B] 逃离高塔 思路 一个数的立方数个位仅由该数的个位数决定。因此,我们只需确定哪些个位数的立方结果以 $3$ 结尾并统计以这些个位数结尾的数的出现次数。 因为在 $0$ 至 $9$ 这个范围内,只有 $7$ 的立方数个位是 $3$($7^3=343$)。 然后从 $1$ 到 $2025$ 中每 $10$ 个就会有一个数的个位为 $7$,最小为 $7$,最大为 $2017$。 所以,我们用这些数构成等差数列,首项为 $7$,末项为 $2017$,公差为 $10$。总项数公式为: $$ \text{项数} = \frac{\text{末项} - \text{首项}}{\text{公差}} + 1 = \frac{2017 - 7}{10} + 1 = 202 $$ 因此答案为 $202$。 代码 C++ 代码: 123456789101112#include <bits/stdc++.h>#define endl '\n'using namespace std;int main(){ / ...
题解:CF411C Kicker
题解:CF411C Kicker 思路 队伍一先安排,那么队伍二想要获胜一定安排能踢过队伍一的球员。 先看队伍一,怎么保证队伍一必胜呢?只要队伍一的攻击球员至高无上特别厉害,攻击力要比队伍二任意球员的防守力都要大,那么无论队伍二怎么安排防守都踢不过。同样的,只要队伍一的防守球员至高无上特别厉害,防守力要比队伍二任意球员的攻击力都要大,那么无论队伍二怎么安排攻击都踢不过。队伍二亦然。 结论:只要一个人的攻击力大于对方二人的防守力且另一个人的防守力大于对方二人的攻击力则该队伍获胜,反之亦然。如果两队都没有杰出的球员能同时踢败对方的两位球员,那么就没有保证胜利的安排方案。 当然,队伍二不能套用队伍一的代码,因为队伍二是根据队伍一进行选择的,而以队伍二为基准进行判断时我们并不知道队伍一的安排,所以要把队伍一每一种安排都列举出来。 代码 12345678910111213141516171819#include <bits/stdc++.h>#define endl '\n'using namespace std;int a[2], b[2], c[2], d[2 ...
退谷记
看到大家都在写退役记,可我不想退役,所以就有了退谷记。 上线记录 2025/4/9:发布退谷犇犇 | 发布退谷记。 2025/4/10:拜谢佛祖。 2025/4/11:打入门赛。 2025/4/12:搞博客。 随笔 2025/4/9-1 水题不开 IDE, 红题不开编译器。 橙题靠运气, 黄靠测评机。 绿题全靠打破表, 蓝题全靠飞样例。 紫下测试点, 黑靠抄题解。 2025/4/9-2 也就只有那破红点陪着我了。 2025/4/9-3 再不理我就再也理不了我了。
🐟认真摸鱼中

xzy
An OIer の 404 Profile
个人主页
公告栏
Built by heishao, used by xzy.
最新评论
正在加载中...
网站资讯
文章数目 :
14
本站总字数 :
5030
本站访客数 :
本站总访问量 :
最后更新时间 :
评论复制本文地址
随便逛逛昼夜切换关于我主题设置切换全屏打印页面