算法学习
主要记录算法习题,欢迎大家指正!
dhsjjwj
这个作者很懒,什么都没留下…
展开
-
算法每日一题——08.23
题目链接#include<bits/stdc++.h>using namespace std;int main(){ int T; cin >> T; while (T--) { int n; cin >> n; cout << n / 2 + 1 << endl; } return 0;}原创 2020-08-23 20:10:46 · 125 阅读 · 0 评论 -
算法每日一题——08.21
题目链接第一次做博弈的题目,自然是不会。。。参考了博客地址#include<bits/stdc++.h>using namespace std;int a[100005];int main(){ int t; cin >> t; while (t--) { int n; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; int first = 1, seco原创 2020-08-21 23:47:06 · 79 阅读 · 0 评论 -
算法每日一题——08.19
题目链接乍一看以为要排序,竟然是个思维题。#include<bits/stdc++.h>using namespace std;/*将和尽量变大,这样才能尽可能的短 */int main(){ int t; cin >> t; while (t--) { int n; cin >> n; int pre_input = 0; int cur_input = 0; bool flag = false; for (int i原创 2020-08-20 18:30:19 · 96 阅读 · 0 评论 -
算法每日一题——08.17
Codeforces_Round92_Div2A#include<bits/stdc++.h>using namespace std;int main(){ int t; cin >> t; while (t--) { int n; cin >> n; int a, b, c; int input; for (int i = 0; i < n; i++) { cin >> input; if (i原创 2020-08-17 14:43:30 · 128 阅读 · 0 评论 -
算法每日一题——08.14
题目链接#include<bits/stdc++.h>using namespace std;int judge_odd(int a){ if (a % 2 == 0) return 0; else return 1;}int main(){ int T; cin >> T; while (T--) { int r, g, b, w; cin >> r >> g >> b >> w;原创 2020-08-14 14:20:25 · 73 阅读 · 0 评论 -
算法每日一题——08.12
第一题题目链接这个题竟然是一个思维题,看标签完全看不出来。。#include<bits/stdc++.h>using namespace std;int a[200005];int main(){ int t; cin >> t; while (t--) { int n; int max = 0; cin >> n; memset(a, 0, sizeof(a)); for (int i = 0; i < n; i++原创 2020-08-12 22:46:05 · 90 阅读 · 0 评论 -
算法每日一题——08.11
题目链接思路:存储每种长度的木板的数量。并将数量大于等于4和数量大于等于2的木板分别存储于不同的集合中。将数量小于2的木板放到另一个集合中。之后每进行一次操作,则对相应长度的木板的数量做出修改,并修改其集合,每次操作后,检测集合中的木板长度是否满足组成一个正方形、一个长方形的要求。代码明天补添加链接描述...原创 2020-08-12 15:51:35 · 141 阅读 · 0 评论 -
算法每日一题——08.09
题目链接明明是最简单的题,但是写了三十几分钟(-_-||)#include<bits/stdc++.h>using namespace std;int a[52];int b[52];int min(int a, int b){ return a >= b ? b : a;}int main(){ int t; cin >> t; while (t--) { int n; cin >> n; int min_candy原创 2020-08-11 22:24:12 · 96 阅读 · 0 评论 -
算法每日一题——08.08
题目#include<bits/stdc++.h>using namespace std;#define MAXN 200010int ton[MAXN],in[MAXN];//存拓扑序和入度 struct node{ int x,y;};int n,m;queue<int>q;vector<node>ask;//存无向边 vector<node>ans;//存结果 vector<int>e[MAXN];//存边 bool原创 2020-08-08 09:16:13 · 101 阅读 · 0 评论 -
算法每日一题——08.07
题目链接#include<bits/stdc++.h>using namespace std;int min(int a, int b){ return a >= b ? b : a;}int judge(string str, char opt){ if (str.length() == 1 ) { if( str.at(0) == opt) return 0; else return 1; } else { int len = st原创 2020-08-07 17:55:22 · 86 阅读 · 0 评论 -
算法每日一题——08.05
题目链接只需要从最后找出一个序列#include<bits/stdc++.h>using namespace std;int a[200004];int main(){ int t; cin >> t; while (t--) { int n; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; int i; for (i = n - 1; i >原创 2020-08-06 22:49:52 · 112 阅读 · 0 评论 -
算法每日一题——08.04
codeforces1388a最小的三个nearly prime是6 10 14,所以输入的数字只有大于30才可以。#include<iostream>using namespace std;int main(){ int count; cin >> count; while (count) { int input; cin >> input; if (input <= 30) cout << "No" <&原创 2020-08-04 18:24:58 · 129 阅读 · 0 评论 -
算法每日一题——08.03
每日一题给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-strings著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出原创 2020-08-03 12:42:23 · 140 阅读 · 0 评论 -
算法每日一题——08.02
第一题给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树1/ \2 5/ \ \3 4 6将其展开为:1\2\3\4\5\6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。/** * Definition for a binary tree no原创 2020-08-02 10:09:11 · 104 阅读 · 0 评论 -
算法每日一题——07.31
每日一题魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/magic-index-lcci示例1:输入:nums = [0, 2, 3, 4, 5]输出:0说明: 0下标的元素为0示例2:输入:nums = [原创 2020-08-01 13:40:21 · 186 阅读 · 0 评论 -
算法每日一题——08.01
每日一题你有 k 个升序排列的整数数组。找到一个最小区间,使得 k 个列表中的每个列表至少有一个数包含在其中。我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c,则区间 [a,b] 比 [c,d] 小。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/smallest-range-covering-elements-from-k-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2020-08-01 13:40:05 · 187 阅读 · 0 评论 -
算法导论 思考题 4-5
这题实在没什么思路,网上找了一下答案。基本思路是这样的:如果检测结果两块都是好的,则随意拿出来一块参与下一轮检测;一好一坏或者都是坏的,则一块都不拿;如果两两检测完剩余一块,也拿进来参与下一轮检测。如果一开始就能够确定好的芯片多于坏的,则可以保证每轮检测结束好的芯片都多于坏的,一直到最后如果剩2块芯片,则两块肯定都是好的;剩3块芯片就再检测一次,如果结果都是好的,就随意取一片必定是好的;如果结果都是坏的,则剩下的那块肯定是好的。来证明一下上面的结论:设有x组好芯片,y组一好一坏的芯片,z组坏芯片,一转载 2020-06-27 15:39:53 · 323 阅读 · 1 评论 -
算法学习——搜索算法(一)
文章目录问题一问题一在某些特殊情况下,可以采用如下广度优先搜索方法来寻找图中两点u 和v间最短路径:从u 出发进行广度优先搜索,当第一次搜索到v 时,则将当前u,v 之间路径输出; 请写出这种方法输出是u 到v 之间最短路径的条件,并且用一个例子说明为什么违背了该条件则这种方法不能求出最短路径。...原创 2020-04-14 21:41:01 · 709 阅读 · 0 评论 -
算法学习——贪心算法(二)未完成
文章目录判断题问题一问题二问题三题目四题目五判断题能够用贪心算法求解的问题一定能用动态规划求解 --------F贪心算法需要满足两个条件,贪心选择性和最优子结构,动态规划算法需要满足最优子结构和重复子问题,满足贪心算法两要素的问题不一定满足动态规划算法的两个要素。问题一设有n个正整数,将它们连接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343,连成的最大整...原创 2020-04-09 19:00:11 · 1308 阅读 · 0 评论 -
算法学习——贪心算法(一)没完成
文章目录问题一伪代码问题二问题分析正确性分析时间复杂性分析问题三问题四问题五分析问题六问题一设x1, x2, …., xn是实数轴上的n个点,尝试用单位长度的闭区间覆盖这些点,设计贪心算法求解需要多少单位长度闭区间?伪代码sort(x)//将各点按照横坐标从小到大排序length = getLength(x)sum = 0maxX = x[0] - 1for i = 0 to le...原创 2020-03-30 17:41:30 · 578 阅读 · 0 评论 -
算法学习-动态规划(二)
文章目录问题一:四维动态规划算法伪代码时间复杂度分析问题二:类似矩阵链乘算法伪代码算法时间复杂度问题三问题四算法伪代码问题一:四维动态规划乌龟棋:乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型 的卡片,见样例),每种类...原创 2020-03-25 23:51:55 · 782 阅读 · 0 评论 -
算法学习——分治算法(二)
文章目录问题一:求不被支配的点问题思路时间复杂度分析问题一:求不被支配的点对于平面上的两个点p1=(x1, y1)和p2=(x2,y2),如果x1<=x2且y1<=y2,则p2支配p1,给定平面上的n个点,请设计算法求其中没有被任何其他点支配的点问题思路将平面上的点按照横坐标的平均值mid进行划分(也可以使用中位数,这样时间复杂度更稳定),横坐标小于等于mid的点,放到poi...原创 2020-03-25 08:24:48 · 722 阅读 · 0 评论 -
算法学习-分治法(一)
文章目录问题一:最大子数组问题问题分析算法伪代码时间复杂度分析问题扩展一问题分析问题扩展二问题描述问题一:最大子数组问题问题分析我们的目标是找出一段连续的时间[A, B],使得price[B]- price[A]差值最大。将股票的价格数组转换成A[i]表示price[i]- price[i - 1],则问题转换成A数组的最大子数组问题将问题更新,给定一个数组A[left…right],求...原创 2020-03-23 17:56:38 · 425 阅读 · 0 评论