
C/C++
文章平均质量分 60
相关算法学习
愤怒的小火柴人
只敲蘑菇不敲码
展开
-
hdu 4911 归并排序求逆序对数
文章目录前言一、题目二、题目分析三、代码前言下午hdu oj又再次登不上了,终于在晚上又能登上了,来一波归排~一、题目伟大的传送门二、题目分析一道以归并排序为板子的题,需讨论以下两种情况(设有cnt个逆序对):1.cnt<=k,即逆序对的数量不大于最大交换次数k,所以进行了k次交换后,最少的逆序对数为0;2.cnt>k,让k次交换都发生在逆序的相邻数上,则剩余逆序对数为cnt-k;此求取逆序对的程序完全套用了归并排序的模板,相比之下多了一个cnt+=mid-i+1;三、原创 2021-07-27 19:26:35 · 498 阅读 · 0 评论 -
Eratosthenes埃氏筛
埃氏筛文章目录埃氏筛前言一、埃氏筛简介二、使用步骤1.引入库2.读入数据总结前言一、埃氏筛简介埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn a原创 2021-07-26 20:24:17 · 598 阅读 · 0 评论 -
POJ 2388 快排
快排求mid文章目录快排求mid前言一、题目1.题意:2.输入:3.输出:二、代码分析三、代码前言今天又是在黑皮书刷题的一天(伟大的黑皮书),poj2388一道快排问题,for循环排序会TLE,所以学一波快排~一、题目伟大的传送门1.题意:给个n,给n个数,输出mid2.输入:52 4 1 3 53.输出:3二、代码分析快排:利用强大的分治法进行排序,分治法即将一个问题划分成一个个小的子问题再逐个解决。首先选择一个基准,将大于基准的数放于右边,小于基准的数放于左边,再原创 2021-07-27 18:12:26 · 823 阅读 · 0 评论 -
POJ 1089 区间覆盖问题
POJ 1089文章目录POJ 1089前言一、题目1.题意:2.输入:3.输出:二、题目分析三、代码前言今天又是刷题的一天,区间覆盖问题,贪心搞定,程序员们晚安~一、题目传送门1.题意:给你一个n,n个线段,再输入每个线段left和 right,求这些线段最多覆盖的距离下,按左边界升序输出每个区间2.输入:55 61 410 106 98 103.输出:1 45 10二、题目分析题目给出了每条线段的左右点l,r;先按左边界递增排序,然后先以第一个区间为底,原创 2021-07-26 22:49:27 · 378 阅读 · 0 评论 -
hdu4864 Task
hdu4864 Task一、题目地址二、题目分析三、AC代码一、题目地址hdu 4846(点击跳转)二、题目分析题目分别给了任务和机器的两种属性x,y,为达到最大任务完成数,可以将任务的所需时间xi按降序排列,即优先考虑时间长的任务,时间相同的按级别yi递减排序。在进行处理时,循环遍历每个任务,找出满足其时间需要的集合,并记录对应级别y出现的次数,然后从当前任务对应的级别开始遍历,题中最大级别100,从时间上满足的集合中选出级别最小满足的机器,这样在该集合中可以留下较大级别的机器,便于下个任务使用。原创 2021-07-25 23:11:44 · 203 阅读 · 0 评论 -
hdu2037 针对简单活动安排的贪心问题
hdu 2037 今年暑假不AC???文章目录hdu 2037 今年暑假不AC???前言一、题目二、题目大意三、代码分析四、代码前言又是刷黑皮书上题的一天,唉,谁的暑假不AC????一道还算简单的贪心算法题,适合小白练手一、题目传送门一匹二、题目大意给你一个节目开始start和结束end时间,好不容易等到放假,你当然是想看的节目越多越好,所以要输出最多可以看的节目数量。三、代码分析按节目最早结束时间递增排序,每次选出最早结束的节目,剪掉与其冲突的节目(可以试试一起看完,如果你的暑原创 2021-07-26 21:27:24 · 192 阅读 · 0 评论 -
Chess Tournament (巧用思维)
文章目录前言个人理解前言开始一脸茫然…后来偷看了大佬的博客感觉超级nice,推一波传送门个人理解感觉大佬的博客已经讲解的非常详细了,输出的结果只要满足:1)整个方阵关于j=i这条线对称,加减号相反,因为横轴纵轴都表示玩家,2:4="+“相当于2赢了4,但相同,4:2=”-"相当于4输给了2,所以对称相反2)对于使用策略2的玩家所在的行每行必然有至少一个“+”;其余自由分配“-”;…大佬讲得太详细,上一遍AC的代码解释吧#include<iostream>#include&原创 2021-10-13 20:36:33 · 369 阅读 · 0 评论 -
hdu 2069 动态规划_所有硬币组合
文章目录前言一、题目二、解决一波1.不完全解决方案分析2.不完全解决方案代码前言又双叒是一道硬币问题,别问,问就是硬币,安排一波~一、题目伟大的传送门简述:给你五个面值1,5,10,25,50(没错,就认识这五种面值),再给你一个总金额s,求出可以凑成金额s的硬币的所有组合的数量,要求数量在100以内。(天天凑钱数,手机支付它不香吗)二、解决一波1.不完全解决方案分析所谓不完全,就是为了更好地理解dp而忽略num<=100这个限制。(其实就是怕秃…T_T)题目让求出组合种类的数.原创 2021-07-29 11:48:10 · 330 阅读 · 0 评论 -
动态规划打印最少硬币的组合
文章目录前言一、题目分析二、代码前言硬币问题深入一波~一、题目分析在知道凑成总金额s所需的最少硬币数量后,想要打印此时硬币组合。增加一个记录表Min_path[i],在进行对最少硬币数量打表的同时,记录每个金额 i 其组合的最后一枚硬币,即对于每一个总金额i,Min_path[i]用于存储其组合中最后一枚硬币,再通过总金额s-Min_path[i],可求出对于剩余金额的最少硬币组合中的最后一枚硬币,直到s=0,结束。例:输入s=71)Min_path[7]=5 (输出一个5) s=s原创 2021-07-28 21:30:16 · 352 阅读 · 0 评论 -
hdu 2602 0/1背包问题
文章目录前言一、题目二、使用步骤1.引入库2.读入数据总结前言头一次看0/1背包,黑皮书上讲的比较深奥,后来看了看代码,努力分析了一下,发现和之前写过的硬币问题基本思想都差不多,感觉自己已经能摸到点头绪了,努力AC一波~提示:以下是本篇文章正文内容,下面案例可供参考一、题目示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimpo.原创 2021-07-29 18:10:12 · 302 阅读 · 0 评论 -
hdu 1159 动态规划求最长公共子序列
文章目录前言一、题目二、使用步骤1.引入库2.读入数据总结前言用dp求的最大公共子序列,AC一波~一、题目示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnin原创 2021-08-01 18:16:21 · 276 阅读 · 0 评论 -
hdu 1024 求子序列最大和问题(动态规划+滚动数组优化)
文章目录前言一、题目二、题目分析解决前言黑皮书上推的一道题,一直没理解题意,以为划分成m段就是将所有划分成m段而不能有剩余,最后才发现应该是从序列中取出m段然后使其和最大,啊这…找规律吧~一、题目传送门Sample Input:1 3 1 2 32 6 -1 4 -2 3 -2 3Sample Output:68二、题目分析解决通过以上分析可以求出递推式:dp[i][j]=max(dp[i][j-1],tmp)+a[j];tmp=max(圈1中的最大值)【循环时求出原创 2021-07-30 10:58:46 · 291 阅读 · 0 评论 -
动态规划解决硬币问题
文章目录前言一、题目分析二、代码前言算是一枚小白吧,写博客主要是为了巩固知识,毕竟本人就是:学了忘忘了学,学了还得忘,忘了还得学…今天最后一道题,动态规划解决硬币问题,明天要写打印硬币问题的最佳结果,看黑皮书上要逆推…(秃头…)…明天加油!!!一、题目分析简单硬币问题,之前用贪心做过,现在刚学动态规划,努力一波~给你五个面值(1,5,10,25,50)的钱,给你一个money,求凑够money的最少硬币数量。1)当只用1分硬币时i=0,Min[0]=0,表示金额为0,硬币数量为0,初始化.原创 2021-07-27 22:42:09 · 730 阅读 · 1 评论 -
hdu4576 动态规划+滚动数组
文章目录前言一、题目二、解决1.分析2.代码前言又是一道动态规划+滑动数组的题,代码采用了异或操作,来标明两行数据,即现在要求的dp和需要用到的上一组dp。AC一波~一、题目传送门Sample Input3 1 1 215 2 4 4120 0 0 0Sample Output0.50000.2500二、解决之前也写过两道动态规划+滑动数组的题,再来一道!1.分析每组数据都是从1开始,即开始时必然经过1,则dp[0][0]=1.0。定义的dp[now][i原创 2021-07-31 20:54:22 · 249 阅读 · 0 评论 -
hdu1257 动态规划求最大递增子序列(LIS)长度
文章目录前言一、题目二、解决1.分析2.代码前言这次是的代码自己思考的占了90%,有进步的一匹,感觉自己又可以了,现在已经基本掌握了动态规划的基本思想,加油!!!(代码是自己写的,样例也是自己推出的,如果有错误,有疏漏,拜托一定要告诉我,参考使用)一、题目给你一个n,输入n个数,对这n个数求LIS长度,正在学动态规划,那就搞一波~样例:71 4 5 3 2 7 81 2 3 2 2 4 5573 5 4 1 6 2 91 2 2 1 3 2 44二、解决1.分析原创 2021-08-01 19:35:31 · 241 阅读 · 0 评论