算法
文章平均质量分 54
算法相关的内容。
源文雨
千载何方归梦,棹舟星河波开。
展开
-
C语言 intel架构处理器下利用gcc内联汇编 fcos 指令 实现三角函数计算小程序
Intel提供了丰富的浮点运算指令,下面就来实际试试看吧。原创 2022-10-30 23:30:54 · 451 阅读 · 0 评论 -
C语言 intel架构处理器下利用gcc内联汇编 xlat 指令 实现转换1字节十六进制数字到十进制
最近发现英特尔处理器有一个从bx指向的内存索引一个字节替换到al的xlat指令,遂编写此简单的转换程序以作练习。由于一次只能查找一字节,而紧凑bcd码最大占用2字节,因此需要用xlat索引2次。原创 2022-10-02 18:48:07 · 625 阅读 · 0 评论 -
C语言 x86_64处理器下利用gcc内联汇编实现打印char的二进制编码
由于汇编语言针对特定机器,因此给出大端/小端机器下的2种不同代码实现思路使用shlb依次移出每一位到CF使用setb将CF的值转移到cl将rcx左移/循环右移8位,视机器不同而不同重复上述操作8次64位小端机器char* chr2bin(uint8_t ch, char buf[8*sizeof(char) + 1]) { buf[8*sizeof(char)] = 0; uint64_t a; asm( "xorq %0, %0\n\t" .原创 2021-07-03 00:03:27 · 704 阅读 · 2 评论 -
安卓Kotlin 简易 ByteArray 先入先出(FIFO)队列
用法很简单,只需引入如下工具类,然后相应方法即可。ByteArrayQueue.kt//Fumiama 20210601//ByteArrayQueue.kt//FIFO队列class ByteArrayQueue { private var elements = byteArrayOf() val size get() = elements.size fun append(items: ByteArray) { elements += items .原创 2021-06-01 20:14:05 · 1253 阅读 · 1 评论 -
python实现利用QQ群成员长截图抽签
参见GitHubqq-mikuji QQ抽签利用QQ群成员截图进行抽签,生成成员的数字顺序要求截图最好选择按加群时间排序或其他可以尽可能减少背景杂色的排序方式,并裁去标题栏。电脑qq截图也可(包括macqq)。 最优情况 容许情况(可能出错) 开始抽签1. 克隆代码git clone https://github.com/SakuraACGN/qq-mikuji.git2. 输入命令进行抽签cd qq-mikujipython3 ./mikuji.py [图片路径.原创 2021-03-05 23:18:33 · 2401 阅读 · 1 评论 -
Kotlin 计算哈希并转换为十六进制字符串
以sha-1的计算为例ByteArray转十六进制字符串函数fun toHexStr(byteArray: ByteArray){ with(StringBuilder()) { byteArray.forEach { val hex = it.toInt() and (0xFF) val hexStr = Integer.toHexString(hex) if (hexStr.length == 1) append("0").append(hexStr) else.原创 2021-02-09 20:46:24 · 1701 阅读 · 0 评论 -
Python实现 Preflow Push (Push-Relabel) 算法求最大流 并用Cython优化提速
原生python运行速度很慢,只要数据量大于500,求解就变得十分困难五组测试数据测试用例的第一行为图的节点数和边数,第二行为最大流算法的起始节点和中止节点,剩余所有行均为有向加权边,其中前两个数字代表边的两个端点,后一个数字代表边的权重。·测试用例1(将txt压缩为xz后使用base16384转为文本)赍薥潨一伹筫弘倀噀忀一丐臖嫎七倀栗币瀰丢礁凹僺藘熐珃箖孨舉詹瑷俶嘴奊懫羾姨羖盾眅芽贁蒎膝悢艵戧婝榬繣哧譹侽烿犎滃幗徤俊俿圐嫌綉殾穫嫻带潶宜疹讥及煷洟側廫盃渍制谳珲澼瘀侄买縐丁誀妇礜徟褂一一丑杚.原创 2020-12-26 21:01:45 · 1028 阅读 · 1 评论 -
Python实现 Edmonds-Karp算法求最大流 并用Cython优化提速
原生python运行速度很慢,只要数据量大于100,求解就变得十分困难五组测试数据测试用例的第一行为图的节点数和边数,第二行为最大流算法的起始节点和中止节点,剩余所有行均为有向加权边,其中前两个数字代表边的两个端点,后一个数字代表边的权重。·测试用例1(将txt压缩为xz后使用base16384转为文本)赍薥潨一伹筫弘倀噀忀一丐臖嫎七倀栗币瀰丢礁凹僺藘熐珃箖孨舉詹瑷俶嘴奊懫羾姨羖盾眅芽贁蒎膝悢艵戧婝榬繣哧譹侽烿犎滃幗徤俊俿圐嫌綉殾穫嫻带潶宜疹讥及煷洟側廫盃渍制谳珲澼瘀侄买縐丁誀妇礜徟褂一一丑杚.原创 2020-12-26 20:43:20 · 733 阅读 · 0 评论 -
python 使用 Dijkstra算法解决 温差最小路径 问题
问题描述一些村庄由许多条小路连接,由于每条小路处于不同的地理位置,因此每条小路上的温度是不一样的。村民们要前往另一村庄时,对这条路径的绝对温度没有要求,但若一条路径的最大温度与最低温度之间的温差过大,会导致感冒。请你找出两个村庄间的温差最小的路径。输入第一行是一个正整数q,表示测试例数量。对每个测试例第一行有2个整数n(1<n≤400)和m(m≤2000),表示有n个村庄和m条小路。接下来m行都是3个正整数,分别是小路起始村庄号,小路终止村庄号,小路上的温度T(T≤2000000)。原创 2020-11-28 19:08:13 · 708 阅读 · 1 评论 -
python 使用 最大生成树 解决 营救问题
使用并查集优化的Kruskal算法实现原创 2020-11-28 18:47:18 · 1068 阅读 · 11 评论 -
Python 利用heapq和并查集实现kruskal算法求解最小生成树 MST 并用graphviz直观表示
heapq实现了小顶堆,主要用在快速选出最小边。并查集用在快速判断是否成环。注意⚠️ 你电来的同学????????????????可以参考思路,但切勿直接拷贝代码,因为我也要交报告。谢谢合作????。代码实现#!/usr/bin/env python3#kruskal.py#fumiama 20201027import sys, timefrom heapq import heappop, heappushfrom graphviz import Digraphclass原创 2020-10-29 11:08:23 · 437 阅读 · 1 评论 -
Python 利用heapq实现prim算法求解最小生成树 MST 并用graphviz直观表示
heapq实现了小顶堆,主要用在快速选出最小边注意⚠️ 你电来的同学????????????????可以参考思路,但切勿直接拷贝代码,因为我也要交报告。谢谢合作????。代码实现#!/usr/bin/env python3#prim.py#fumiama 20201027import sysfrom heapq import *from graphviz import Digraphdot = Digraph(comment='Gragh2Print')dot.edge_原创 2020-10-28 00:07:10 · 405 阅读 · 0 评论 -
Python 实现求两点间所有路径的算法 并使用 graphviz 图形化展示路径
题目设计并实现求两点间所有路径的算法代码应能读取规定格式的TXT文档作为输入,格式如下:5 7 #第一行:图的节点数N,边数V1 2 #后续V行: 图中每一条边的起点、终点1 52 32 43 43 54 52 5 #最后一行:待求解目标的起点、终点代码应以直观的形式输出所有可行路径,以便于结果检查。例如:2->1->5...2->4->3->5或2 1 5...2 4 3 5等等检查时,我们将通过不同的图输入来检查代码的原创 2020-10-01 17:23:20 · 3967 阅读 · 9 评论 -
使用 Cython 高效实现 对整型(int)列表(List)的 归并排序(MergeSort)
考虑到由于python执行效率不高,使用纯py实现MergeSort归并排序并没有太大价值,因此选择 Cython(语法类似Python) 。它可以把代码编译成调用了 Python 源码的 C/C++ 代码,从而提高执行效率由于代码最终被编译为py库,所以需要先根据官方说明文档编写以下配置代码# cython: language_level=3# merge_sort_setup.pyfrom distutils.core import setupfrom Cython.Build impor.原创 2020-09-24 21:29:49 · 793 阅读 · 0 评论 -
类比base64设计的base16384简介
由16384个汉字作为编码表的Base16384,输出的文本编码为utf16be。能节省更多空间且更容易发现二进制文件的规律。原创 2020-04-16 14:54:43 · 1432 阅读 · 0 评论 -
C语言波兰表达式求值
利用一个操作数栈,从表达式末尾遍历,遇到数字则入栈,遇到运算符则依次出栈两个数进行运算,然后将结果入栈。这样扫描完整个表达式之后,栈中剩下的即为表达式的值。原创 2020-04-14 23:10:27 · 4750 阅读 · 0 评论 -
C语言利用哈夫曼树压缩文本文件
利用最优二叉树(也称哈夫曼树)可以对文本进行编码, 从而实现压缩。原创 2020-04-13 17:12:04 · 10121 阅读 · 2 评论 -
C语言利用堆筛选前1000大元素
利用一个小顶堆,先填满1000个元素,此后的元素加入时,先与top比较,若比top大,则用它代替top,并重新使其符合小顶堆。原创 2020-04-11 00:26:38 · 2744 阅读 · 0 评论 -
CDOJ 300 木杆上的蚂蚁
碰撞后掉头与碰撞后穿过对方,且名字互换这两种情况等价。原创 2020-04-03 17:38:40 · 1986 阅读 · 0 评论 -
CDOJ 1969 校门外的树
对区间序列按左端点进行排列,之后去重叠,再减去此区间上的值即可原创 2020-04-03 12:02:02 · 213 阅读 · 0 评论 -
C语言简单大数加法
使用逢十进一思想计算大数相加原创 2020-04-02 23:20:02 · 546 阅读 · 0 评论 -
CDOJ 1805 矩阵
小明发现了一种特殊的N×M的矩阵,矩阵里的元素都是1或−1。假设Ai为第 i 行 (1 ≤ i ≤ N) 所有元素的乘积,Bj 为第 j 列 (1 ≤ j ≤ M) 所有元素的乘积。喜欢搞事情的小明突发奇想,想知道有多少个不相同的,大小为N×M的矩阵使得所有Ai, Bj都是K的矩阵(K=1 或者 -1)。当且仅当两个矩阵存在一个元素不相同时两个矩阵不相同。原创 2020-04-02 00:23:07 · 1203 阅读 · 0 评论 -
CDOJ 1256 昊昊爱运动
循环对于程序的运行速度有很大阻碍,应尽量避免使用过多循环。原创 2020-04-02 16:23:02 · 581 阅读 · 0 评论 -
C语言实现简易base64解码
C语言 简易 base64 解码原创 2020-03-29 14:41:23 · 345 阅读 · 0 评论 -
用C语言实现base64解密(包括二进制文件)
用C语言实现base64解密(包括二进制文件)原创 2019-08-19 21:40:19 · 1610 阅读 · 0 评论 -
简易的用C语言实现base64编码之代码(支持图片等二进制文件)
简易的用C语言实现base64编码之代码(支持图片等二进制文件)原创 2019-08-19 13:37:55 · 733 阅读 · 0 评论