【算法笔记--三分查找】教程文章相关的互联网学习教程文章

【算法笔记】B1040 有几个PAT【代码】

1040?有几个PAT?(25?分)字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 现给定字符串,问一共可以形成多少个 PAT? 输入格式: 输入只有一行,包含一个字符串,长度不超过10?5??,只包含 P、A、T 三种字母。 输出格式: 在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。 输入样...

【算法笔记】B1047 编程团体赛【代码】

1047?编程团体赛?(20?分)编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。 现给定所有队员的比赛成绩,请你编写程序找出冠军队。 输入格式: 输入第一行给出一个正整数 N(≤10?4??),即所有参赛队员总数。随后 N 行,每行给出一位队员的成绩,格式为:队伍编号-队员编号 成绩,其中队伍编号为 1 到 1000 的正整数,队员编号为 1 到 10 的正整数,成绩为 0...

算法笔记第一天【代码】

变量类型: 1)int:绝对值在10^9范围内的整数都可以定义为int型。 2)long long:如果long long型赋大于 2^31-1 的值,则需要在初值后面添加 LL 否则会编译错误。 3)对于浮点型来说,碰到浮点型数据都应该用double来存储。 4)在C语言中,必须添加stdbool.h头文件。 位运算符: 一般的,无穷大的数 INF 可以设置成如下语句:const int INF = (1 << 30)- 1; const int INF = 0x3fffffff;常见数据类型变量的scanf格式符数据类型 ...

【算法笔记】B1024 科学计数法【代码】

1024?科学计数法?(20?分)科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。 输入格式: 每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字...

【算法笔记】B1018 锤子剪刀布【代码】【图】

1018?锤子剪刀布?(20?分)大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10?5??),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,...

算法笔记7.1 栈的应用【图】

1.自己实现栈的clear,size,empty,pop,top TOP本质上为最大元素的下标,栈空时为-1#include<iostream> #include<stack> using namespace std;const int MAXSIZE=1000;struct Stack{int st[MAXSIZE];int TOP; Stack(){//初始栈空 TOP=-1; }void clear(){TOP=-1;}int size(){return TOP+1;}bool empty(){if(TOP==-1) return true;else return false;}void push(int x){st[++TOP]=x;}void pop(){TOP--;}int top(){return st[TOP];}};v...

【算法笔记第6.9节 algorithm 】问题 A: 求最大最小数【代码】

题目描述 先输入N,表示数的个数,然后输入N个数,求这N个数的最大值和最小值。N<=10000,输入的数的绝对值不大于10^6 样例输入4 2 0 1 2 样例输出2 0 多组测试数组#include<stdio.h> #include<algorithm> using namespace std; int main() {int n;while(scanf("%d",&n)!=EOF){int a[10010];for(int i=0; i<n; i++)scanf("%d",&a[i]);sort(a,a+n);printf("%d %d\n", a[n-1], a[0]);}return 0; }

【算法笔记第6.9节 algorithm 】问题 B: 全排列

题目描述 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有a < b < ... < y < z,而且给定的字符串中的字母已经按照从小到大的顺序排列。 输入 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。 输出 输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义:已知S = s1s2...sk , T = t1t2...tk,则S < T 等价于,...

【算法笔记第6.8节 pair 】问题 A: 重心在哪里【代码】

题目描述 每个人都知道牛顿发现万有引力的故事。自从牛顿发现万有引力后,人们用万有引力理论解决了非常多的问题。不仅如此,我们也知道了每个物体都有自己的重心。 现在,给你三角形三个顶点的坐标,你能计算出三角形的重心吗? 输入 题目包含多组测试数据。第一行输入一个正整数n,表示测试数据的个数,当n=0时,输入结束。 接下来n行,每行包含6个数字x1,y1,x2,y2,x3,y3,表示三角形三个顶点的坐标。 输出 对于每组输入,输...

【算法笔记第6.5节 queue 】问题 A: C语言-数字交换【代码】

题目描述 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。 输入 10个整数 输出 整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格) 样例输入2 1 3 4 5 6 7 8 10 9 样例输出1 2 3 4 5 6 7 8 9 10 进行交换时,若最大值在a[0],最小值在a[9],两次交换相当于不变。故在进行其中一个交换时,要考虑,另一个的位置会不会随着变化 。 例...

【算法笔记第6.6节 priority_queue 】问题 A: 任务调度(有点难)【代码】

问题 A: 任务调度 时间限制: 1 Sec 内存限制: 32 MB 提交: 102 解决: 72 [提交][状态][讨论版][命题人:外部导入] 题目描述 读入任务调度序列,输出n个任务适合的一种调度方式。 输入 输入包含多组测试数据。 每组第一行输入一个整数n(n<100000),表示有n个任务。 接下来n行,每行第一个表示前序任务,括号中的任务为若干个后序任务,表示只有在前序任务完成的情况下,后序任务才能开始。若后序为NULL则表示无后继任务。 输出 输...

【算法笔记】B1012 数字分类【代码】

1012?数字分类?(20 分)给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A?1?? = 能被 5 整除的数字中所有偶数的和; A?2?? = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n?1???n?2??+n?3???n?4???; A?3?? = 被 5 除后余 2 的数字的个数; A?4?? = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位; A?5?? = 被 5 除后余 4 的数字中最大数字。输入格式: 每个输入包含 1 个测试用例。每个测试用...

【算法笔记】B1010 一元多项式求导【代码】

1010?一元多项式求导?(25 分)设计函数求一元多项式的导数。(注:x?n??(n为整数)的一阶导数为nx?n?1??。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。 输入样例: 3 4 -5 2 6 1 -2 0输出样例: 1...

【算法笔记】B1011 A+B 和 C【代码】

1011?A+B 和 C?(15 分)给定区间 [?2?31??,2?31??] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。 输出格式: 对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。 输入样例: 4 1 2 3 2 3 4 2147483647 0...

算法笔记B1006.换个格式输出整数【代码】

1006 换个格式输出整数 (15 分) 让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。 输入格式: 每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。 输出格式: 每个测试用例的输出占一行,用规定的格式输出 n。 输入样例 1: 234 输出样例 1: BB...