摘要:
##算法描述 插值查找是二分查找的优化 适用条件:数据量大,待查找的数组是均匀分布的 下面是python代码 def insertValuesearch(a,targetValue): left = 0 right = len(a)-1 if targetValue>a[right] or targ 阅读全文
摘要:
#一、数据结构绪论基本概念 ####1.名词解释: 数据:对客观事物的符号表示 数据元素:数据的基本单位,可由若干个数据项组成 数据项:数据的不可分割的最小单位 数据对象:性质相同的数据元素的集合,是数据的子集 数据结构:相互之间存在特定关系的数据元素的集合(关系描述数据元素之间的逻辑关系) 物理结 阅读全文
摘要:
PAT B1040 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 现给定字符串,问一共可以形成多少个 PAT? ###输入格式: 输入只有一行,包含 阅读全文
摘要:
问题:给定a(a<109)、b(b<106)、m(1<m<109),计算ab%m,时间复杂度为O(b) 使用快速幂思想计算 一、递归写法,时间复杂度O(logb) 终止条件为:a0=1 递归公式为: 若b为奇数,ab=a**a^(b-1)^ 若b为偶数,ab=a^(b/2)**a(b/2)^ #in 阅读全文
摘要:
木棒切割问题 大意:给N根木棒,通过切割至少得到K段长度相同的木棒,长度相同的木棒最长能有多长 思路:已知结论,长度相同的木棒长度越长,切割得到的K越小,可以二分法,即求最后一个满足“k<=K”的L,可转换为第一个满足“k>K”的位置,再减一 #include<stdio.h> #include<a 阅读全文
摘要:
###大概题意 给定N个开区间,从中尽可能选择多的开区间,使得这些开区间两两没有交集 ###思路 如果有区间包含的情况,则选择小的区间,能容纳更多不包含的区间 去除区间包含的情况,将所有区间按照左端点从大到小排序,总是选择左端点最大的区间 #include<cstdio> #include<algo 阅读全文
摘要:
PAT B1020 思路:总是选择单价最高的月饼出售,可获得最大利润 将月饼按单价由高到低排序,开始枚举。如果当前需求量大于月饼的库存,收益增加为该月饼的总售价,需求量减去该月饼的库存;如果当前需求小于月饼的库存,收益增加为当前需求量乘以该月饼鹅单价,需求量减为0,退出循环。 #include<cs 阅读全文
摘要:
问题:n*n的棋盘上放置n个皇后,使得n个皇后不能互相攻击(不能在同一行、同一列、同一对角线上) 思路(暴力):枚举1-n的全排列,判断每个全排列是否合法 #include<cstdio> #include<cstring> #include<algorithm> using namespace s 阅读全文
摘要:
大概题意: 给出N个字符串(由三个大写字母组成) 再给出M个查询的字符串 问每个查询字符串在N中出现的次数 思路:将字符串看作26进制转化为十进制,用HashTable查找出现次数 #include<stdio.h> #include<string.h> int hashfun(char s[],i 阅读全文
摘要:
题目: 题目大意: 输入:考场数、一个考场的选手数、选手的编号和分数 输出:选手的总人数、选手的编号、选手的总排名、选手所在的考场号、选手所在的当地排名(分数相同的排名相同) 思路:定义一个结构体,输入时用sort函数对结构体进行排序,确定选手所在考场的排名;输出时,确定选手的总排名 #includ 阅读全文