- 博客(11)
- 收藏
- 关注
原创 基于Numpy实现的仿真量子计算机(使用说明与源码)
可以保证10位机仿真实验的秒级响应速度。数据类型介绍量子态:np.array([[α],[β]]),α、β为复数但α的虚部是零,两者模长的平方之和与1的差在1e-16数量级态空间:np.array([[a0],[a1],[a2],…,[an]]),a1到an都是复数,n=2^x-1,所有元素模长的平方和与1的差在1e-16数量级zero_qubits(N) 获取由N个|0>态量子态组成的向量one_qubits(N) 获取由N个|1>态量子态组成的向量。
2023-01-26 23:12:07
741
原创 第十届蓝桥杯B组省赛灵能传输题解
第十届蓝桥杯B组省赛灵能传输题解题目分析问题转化令Sk=∑i=1kaiS_k=\sum_{i=1}^k{a_i}Sk=i=1∑kai选中某个"高阶圣堂武士"aia_iai的结果是Si−1+ai,Si−aiS_{i-1}+a_i,S_i-a_iSi−1+ai,Si−ai即swap(Si,Si−1)swap\left(S_i,S_{i-1}\right)swap(Si,Si−1)设原前缀序列为S0,S1,S2,...,SnS_0,S_1,S_2,...,S_nS0,S1
2022-04-08 11:40:37
612
原创 第十一届蓝桥杯B组省赛平面切分题解
第十一届蓝桥杯B组省赛平面分割题解题目分析欧拉定理 封闭几何体的面数=边数-顶点数+2可以考虑数学归纳法证明。若对于画了若干直线的平面:1、顶点就是直线的交点2、边就是链接顶点的线段3、面就是除了顶点与边剩下的东西把无穷远处的直线端点捏到一起形成的集合体的面数与原图面数相同。将刚才制造的点减去后本题使用:面数=边数-顶点数+1求解只说思路,细节见代码注释顶点两条直线相交解方程组就好。边数一条直线上会被n个不同的点会被分成n+1段,所以一个顶点加一条边。去重要考虑超过两条直
2022-04-06 14:46:33
1169
原创 第十一届蓝桥杯B组省赛子串分值和题解
第十一届蓝桥杯B组省赛子串分值和题解问题分析对于ababc各字符上次出现的位置为(-1就是没出现过)a b a b c-1 -1 0 1 -1最近独立域大小为dom(i)(现在的位置减去上次出现的位置)a b a b c-1 -1 0 1 -11 2 2 2 5将 i 处字符的贡献计为con(i),贡献为con(i-1)+dom(i)原因如下图,新添加的子串中减去当前元素就上上次添加的。并且元素只对完全在独立域内的字串的分值有贡献(分值+1)
2022-04-05 18:02:55
510
原创 第十二届蓝桥杯B组省赛双向排序题解
题目分析以123456789为例如果我们将第4位之前的元素降序排列432156789然后对任何位置后的元素升序排列都不会影响到最后的56789如果接下来的若干次操作都没有使得>=4的位置n前面的元素降序排列,那么对n之前的元素降序排列将会撤销之前的所有操作,设n=6我们会得到654321789同理设i>=m,对小于m的元素降序排列将撤回许多操作,直到遇到操作"对i前的元素降序排列"。还可以发现对于较大的n操作"将n前的元素降序排列"将会吸收若干连读的"将m前的元素降序排列"操..
2022-02-23 17:58:53
1519
原创 第十二届蓝桥杯B组省赛括号序列题解
问题分析首先要把括号序列的合法性表示出来定义变量C初始值为0从左向右遍历序列,发现左括号C=C+1,发现右括号C=C-1最终C==0且C不曾为负值则序列合法类似的,我们可以定义左括号合法性定义变量C初始值为0从左向右遍历序列,发现左括号C=C+1,发现右括号且C>0时C=C-1,否则C不变化如果最终C==0则左括号合法右括号合法性定义变量C初始值为0从右向左遍历序列,发现右括号C=C+1,发现左括号且C>0时C=C-1,否则C不变化如果最终C==0则右括号合法.
2022-02-22 21:26:18
2710
1
原创 第十二届蓝桥杯B组省赛杨辉三角形题解
题目分析:有三种方法(第三种才满分过了)方法一、首先想到的是利用杨辉三角中每个数都是上面两个的和的性质在O(M)复杂度内求出前M项的同时数出数字的所在位置,对于输入数字N最坏情况为O(N^2)。方法二、其次是利用第m行第n列的值为C(m-1,n-1)的性质,进行搜索,从1开始,小了向下并尝试靠向中间,大了向左,最后可以在O(N)时间复杂度查到过程如图11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6..
2022-02-17 13:55:47
3099
原创 第十二届蓝桥杯B组省赛砝码称重题解
第十二届蓝桥杯B组省赛砝码称重题解题目分析题目有点像01背包,所以尝试使用动态规划来解决。将砝码一个个放入时,用数组F[i,w]存放命题"前i个砝码可称出重为w的物品"的真假性,简称存放可行性。最后遍历F[n,w]即可数出可称出物品的数量。数据结构用W[i]存放第i个砝码的重量(下文中第i个砝码与W[i]是一个意思)F[i,j]用来动态规划状态转移方程的设计虽然天平两边都能放东西考虑起来不容易,但如果先规定砝码只能放在右边问题就会简单很多,然后尝试用只右边的情况导出两边都放的情况。只
2022-02-16 11:49:57
1095
原创 希尔排序与堆排序超详解(附理解性实验与指导+完整C代码)
希尔排序、堆排序算法总结摘要希尔排序堆排序实验指导/*先送一个漂亮的排序算法,给有缘读到本文的读者这个算法是研究希尔排序的增量序列时偶然发现的,与希尔排序的原理类似,但发生了质变。就叫“七上八下排序”吧。。*/void sort(int* arr,int length){ int gap=length,temp; while(gap){//间距为零退出 for(int i=0;i+gap<length;++i) {//真就一层循环,O(n)
2021-08-10 20:48:03
851
1
原创 win10中bochs仿真linux0.11环境快速搭建方法
win10中bochs仿真linux0.11环境快速搭建方法 步骤如下步骤如下一、去http://oldlinux.org/Linux.old/bochs/下载 linux-0.11-devel-040923解压后点击Bochs-2.1.1.exe安装bochs二、找个好地方把刚才解压得到的linux-0.11-devel-040923放好。要备份(万一把环境搞坏了可以替换!)三、然后把bochsrc-hd.bxrc用记事本打开找到# BOOT:# This defines you
2021-04-06 13:24:59
696
原创 蓝桥杯“字串排序“题解
蓝桥杯"字串排序"题解正文开始该方法对所有测试数据通过问题描述小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。例如,对于字符串 lan 排序,只需要 1次交换。对于字符串 qiao 排序V,总共需要 4 次交换。小蓝的幸运数字是 V,他想找到一个只包含小写英文字母的字符串,对这个串中的字符进行冒泡排序,正好需要 V 次交换。请帮助小
2021-03-25 18:30:01
10807
15
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人