笔记
文章平均质量分 59
Buyc
这个作者很懒,什么都没留下…
展开
-
二分答案+贪心
题意: 对于给定的一个长度为N的正整数数列 A ,现要将其分成 M(M≤N)段,并 要求每段连续,且每段和的最大值最小。 关于最大值最小: 例如一数列 4 2 4 5 1 要分成 3 段。 将其如下分段: [4 2][4 5][1] 第一段和为 6,第 2 段和为 9,第 3 段和为 1,和最大值为 9。 将其如下分段: [4][2 4][5 1] 第一段和为 4,第 2 段和为 6,第 3 段和为 6,和最大值为 6。 并且无论如何分段,最大值不会小于 6。 所以可以得到要将数列 4 2 4 5 1 要分原创 2022-01-28 23:04:28 · 575 阅读 · 0 评论 -
哈夫曼树模板
模板出处 哈夫曼裸题: 合并果子 /******************************************************************/ //哈夫曼树 #include <bits/stdc++.h> //#include <cstdio> //#include <cstring> using namespace std; typedef struct { int weight; // 结点权值? int原创 2022-01-23 11:45:04 · 550 阅读 · 0 评论 -
理解哈希函数
哈希函数 #include<bits/stdc++.h> using namespace std; int mod=1000007; int head[1000012]={0},cnt=0,ans=0; string t[10000]; struct data//记录节点的结构体 { string s; int next,num; }a[1000007]; bool find_hash(string s,int sum)//查找函数 { int u=head[sum]; while(u) { i原创 2022-01-23 01:58:09 · 628 阅读 · 0 评论 -
第十二周周结(搜索与回溯)
这周主要学习的是搜索与回溯,二分是上周的内容,但由于上周在做背包的题目,所以就没有总结二分,相较于二分,我感觉搜索与回溯更加复杂一点,所以这周就先总结搜索与回溯。 搜索与回溯 深度优先搜索:深度优先搜索相当于是一条直线从问题的最初找到最后,必须把问题的答案找出来; 广度优先搜索:深度对立,它是从横向来找答案,把每种情况的子情况都考虑一遍。 首先介绍深度优先搜索。 深度优先搜索与递归分不开,我们也可以把这种算法叫做递归回溯法。这种算法的基本思想是:为求得问题的解,先选择某一种可能的情况进行探索,在探索过程中,原创 2021-05-23 13:36:21 · 104 阅读 · 0 评论 -
ACM总结(第四、五周)
这两周主要学习内容是动态规划,但由于自己参加了比赛,所以说学到的东西还是挺多的。首先对于动态规划的题目由于自己前几天没有太多的去学习,以至于现在对动态规划的题目没有思路,还没有摸索到一些规律,所以这两天需要注重一下。其次对我印象最深的一类题是博弈题,这种题目特别有意思,总能通过一些题目发现有趣的规律。最后就是通过这几天的训练,对比赛的题目也有了初步了解。 一、动态规划 对于动态规划,由于自己还不熟练,只总结几个最经典的题目。 1、最长上升子序列 第一次看到这种题目时,自己首先想到的还是贪心,不过最后发现贪心原创 2021-04-10 22:33:16 · 98 阅读 · 0 评论 -
总结报告
一、STL的应用 1、string类 #include #include using namespace std; int main() { string s1,s2; string s3=“hello world”; s1=s3;//字符串复制 s2=s1+s3;//字符串连接 cout<<s1<<endl<<s2<<endl;//输出字符串内容 for(int a=0;a<s1.size();a++) cout<<s1[a]<<原创 2021-03-13 17:48:54 · 91 阅读 · 0 评论