算法笔记
文章平均质量分 75
算法笔记习题
My_jewel
这个作者很懒,什么都没留下…
展开
-
最短路径,迪杰斯特拉算法,三维坐标
题目传送门 题目描述 已知了飞行器的起点和终点以及n个休息站的坐标,问起点到终点的最短路径是多少? 限制:飞行器不能长期飞行,必须中途在某结点下停下休息。(即连续飞行距离应不大于m) 欧涛师兄很想在师妹面前大展身手,你能帮助他解决这个问题吗? 输入描述 第一行输入两个数,整数n和浮点数m 第二行输入六个浮点数x1,y1,z1,x2,y2,z2。分别代表起点坐标(x1,y1,z1)和终点坐标(x2,y2,z2) 紧接着下面n行,每行依次输入三个浮点数,代表休息站的坐标(ai,bi,ci),休息站编码依次为1,原创 2020-11-08 17:21:29 · 517 阅读 · 2 评论 -
HDU2680(Dijkstra)超级源点与超级汇点
题目传送点这里 题意:给n个车站,m条路径,s为终点 给w个起点,问起点至终点s的最短路径 注意:from station p to station q (单向边) #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int inf = 10000000; const int maxv = 1010; int n,m,s,G[maxv][maxv]; int d原创 2020-05-11 17:19:10 · 402 阅读 · 0 评论 -
HDU 1241 简单深搜
http://acm.hdu.edu.cn/showproblem.php?pid=1241 DFS思想 DFS(u){//访问顶点u vis[u] = true;//设置顶点u已经被访问 for(从u出发能到达的所有顶点v) // 枚举从u出发可以到达的所有顶点v if vis[v] == false DFS(v);//递归访问v } DFSTrave(G){//遍历图G for(G的所有顶点u)//对G的所有顶点u if vis[u] == false //如果u未被访问原创 2020-05-10 09:06:46 · 161 阅读 · 0 评论 -
pat1028
题目入口 代码如下 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; struct student{ char id[10]; char name[10]; int grade; }stu[100010];...原创 2020-04-14 20:00:10 · 69 阅读 · 0 评论 -
进制转换
题目描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。 输入 多组数据,每行为一个长度不超过30位的十进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数) 输出 每行输出对应的二进制数。 样例输入 985 211 1126 样例输出 1111011001 11010011 10001100110 #include<cstdio> #incl...原创 2020-04-06 15:16:36 · 232 阅读 · 0 评论 -
进制转换
数制转换 题目描述 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。 不同进制的表示符号为(0,1,…,9,a,b,…,f)或者(0,1,…,9,A,B,…,F)。 输入 输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。 输出 可能有...原创 2020-04-06 09:42:25 · 250 阅读 · 0 评论 -
常见的日期处理手段
常见的定义如下 int month[13][2] = {{0,0},{31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}}; char monthname[13][15] = {{},{"January...原创 2020-04-05 10:16:49 · 99 阅读 · 0 评论 -
PTA-乙级1004——成绩排名
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 n 第 2 行:第 1 个学生的姓名 学号 成绩 第 3 行:第 2 个学生的姓名 学号 成绩 … … … 第 n+1 行:第 n 个学生的姓名 学号 成绩 其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之...原创 2020-04-01 19:51:34 · 178 阅读 · 2 评论 -
《算法笔记》3.3小节——入门模拟->图形输出——输出梯形
题目描述 输入一个高度h,输出一个高为h,上底边为h的梯形。 输入 一个整数h(1<=h<=1000)。 输出 h所对应的梯形。 样例输入 5 样例输出 代码如下 #include<cstdio> #include<cstdlib> int main() { int h,i,j,temp; while(scanf("%d",&h)==1)...原创 2020-03-31 21:33:26 · 267 阅读 · 0 评论 -
《算法笔记》3.2小节——入门模拟->查找元素——查找
题目描述 输入数组长度 n 输入数组 a[1…n] 输入查找个数m 输入查找数字b[1…m] 输出 YES or NO 查找有则YES 否则NO 。 输入 输入有多组数据。 每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。 输出 如果在n个数组中输出YES否则输出NO。 样例输入 6 3 2 5 4 7 8 2 3 6 样例输出...原创 2020-03-29 19:23:33 · 137 阅读 · 0 评论 -
《算法笔记》3.2小节——入门模拟->查找元素——查找学生信息
题目描述 输入N个学生的信息,然后进行查询。 输入 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下: 02 03 01 04 输出 输出M行,每行包括一个对...原创 2020-03-29 17:22:54 · 163 阅读 · 0 评论 -
《算法笔记》3.2小节——入门模拟->查找元素——学生查询
题目描述 输入n个学生的信息,每行包括学号、姓名、性别和年龄,每一个属性使用空格分开。最后再输入一学号,将该学号对应的学生信息输出。 输入 测试数据有多组,第一行为样例数m。对于每个样例,第一行为学生人数n(n不超过20),加下来n行每行4个整数分别表示学号、姓名、性别和年龄,最后一行表示查询的学号。 输出 输出m行,每行表示查询的学生信息,格式参见样例。 样例输入 1 4 1 李江 男 21 2...原创 2020-03-29 13:37:14 · 180 阅读 · 0 评论 -
《算法笔记》3.2小节——入门模拟->查找元素——统计同成绩学生人数
题目描述 读入N名学生的成绩,将获得某一给定分数的学生人数输出。 输入 测试输入包含若干测试用例,每个测试用例的格式为 第1行:N 第2行:N名学生的成绩,相邻两数字用一个空格间隔。 第3行:给定分数 当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。 输出 对每个测试用例,将获得给定分数的学生人数输出。 样例输入 4 70 80 90 100 80 3 6...原创 2020-03-28 21:09:28 · 113 阅读 · 0 评论 -
《算法笔记》3.1小节——入门模拟->简单模拟——锤子剪刀布
题目描述 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入 输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空...原创 2020-03-28 15:15:02 · 90 阅读 · 0 评论 -
《算法笔记》3.1小节——入门模拟->简单模拟——部分A+B
题目描述 正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。 现给定A、DA、B、DB,请编写程序计算PA + PB。 输入 输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。 输出 在一行中输出PA + PB的值。 样例输入 ...原创 2020-03-28 13:21:52 · 124 阅读 · 0 评论 -
《算法笔记》3.1小节——入门模拟->简单模拟——数字分类
题目描述 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…; A3 = 被5除后余2的数字的个数; A4 = 被5除后余3的数字的平均数,精确到小数点后1位; A5 = 被5除后余4的数字中最大数字。 输入 每个输入包含1个测试用例。每个测试用例先给出一个...原创 2020-03-28 11:03:37 · 123 阅读 · 0 评论 -
《算法笔记》3.1小节——入门模拟->简单模拟——A+B和C
题目描述 给定区间[-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开始)。 ...原创 2020-03-27 20:54:11 · 177 阅读 · 0 评论 -
《算法笔记》3.1小节——入门模拟->简单模拟——Shortest Distance
题目描述 The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits. 输入格式 Each input file contains one test ...原创 2020-03-27 20:13:11 · 194 阅读 · 0 评论