算法训练
文章平均质量分 85
温柔说给风
这个作者很懒,什么都没留下…
展开
-
贪心例题汇总
贪心例题1.背包问题2.任务调度问题3.区间调度问题4.简单贪心加模拟5.多解贪心1.背包问题地址: FatMouse’ Trade 题意:有m磅猫粮n只猫,第i只猫有J[i]个Javabean需要你要用F[i]磅猫粮与它交换(可以只交换一部分),问最多能换到多少Javabean题解:像是一个背包问题,转换为背包就是,n个物品每个物品重量为F[i],价值为J[i],放入荷重为m的背包,求最大价值。但本题因为可以只交换一部分,所以不用背包写。只需要根据J与F的比值排序,从大到小累加得答案。代码:原创 2021-07-29 19:57:28 · 158 阅读 · 0 评论 -
Manacher例题【马拉车算法 线性时间求最长回文子串】(题解+代码)持续更新
Manacher详解【马拉车算法 线性时间求最长回文子串】(模板+例题)回文串地址:⭐题意: 求一个字符串中最长的回文子串长度是多少题解:Manacher模板题代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;char str[maxn],new_str[2*maxn];int p[2*maxn];int Manacher(char* str,char* new_str,int* p){/原创 2021-07-12 16:15:36 · 151 阅读 · 0 评论 -
字符串哈希 详解【把每个不同的字符串转成不同的整数】(模板+例题)
字符串哈希• 字符串的hash是通过某种字符串hash函数将不同的字符串映射到不同的数字,配合其他数据结构或STL,进行判重,统计,查询等操作。实现哈希• 一个常用的字符串hash函数是hash[i]=(hash[i-1]*p+idx(s[i]))%mod, 即hash[i]是字符串的前i个字符组成的前缀的hash值,而idx(s)为字符s的一个自定义索引,例如,idx(‘a’)=1,idx(‘b’)=2,……,idx(‘z’)=26。• 例如,p=7,mod=91,把字符串"abc"映射为一个整数原创 2020-09-06 15:02:16 · 2550 阅读 · 0 评论 -
HDOJ 4821【String】(字符串哈希、尺取法)
题目地址:HDOJ 4821【String】• 给定一个字符串S和两个整数L和M,我们称S的一个子串是“可恢复的”,当且仅当• (i)子串的长度为ML;• (ii)这一子串通过串联S的M个“多样化”子串来构造:其中每个子串的长度L;而且这些子串不能有两个完全一样的串。• 如果S的两个子串是从S的不同部分切下来的,则它们被认为是“不同的”。例如,字符串"aa"有3个不同的子串"aa",“a"和"a”。 • 请您计算S的不同的“可恢复”子字符串的数量。• 输入• 输入包含多个测试用例,以EOF结束。原创 2020-09-08 19:26:09 · 131 阅读 · 0 评论 -
Manacher详解【马拉车算法 线性时间求最长回文子串】(模板+例题)
什么是回文串 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 (百度百科)问题 你有一个字符串str,请你找出str中的最长回文子串朴素算法 在没有任何字符串算法基础时,会先想到用for循环遍历找到每个中心位置 ,在比较一对对应字符后,只要可能,该算法便尝试将答案加 。朴素算法实现如下vector<int> d1(n), d2(n);for (int i = 0; i < n; i++) { d1[i] = 1;原创 2021-07-12 15:54:01 · 206 阅读 · 0 评论 -
Codeforces Round #696 (Div. 2) A-D题解
A. Puzzle From the Future题意:给你一个二进制数b,要你构造一个相同长度的二进制数a,使得a和b的位相加的结果c中相邻位置的数字不同,输出最大c对应的a。0110和1101的位相加的结果是121,或者011000和011000的和是020。102>21,012<101,021=21,以此类推。思路:为了得到最大的c,a的第一位数必须是1,以后每一位根据前一位a与b的和进行判断取1还是0。注意b某一位为0时,不能为了c取最大值而是a的对应位置为2.AC代码#in原创 2021-01-21 22:27:41 · 267 阅读 · 0 评论 -
Codeforces Round #698 (Div. 2)A-C题解
A. Nezzar and Colorful Balls题意:个球,分别用整数1,2,…,n编号。数字a1,a2,…,an分别写在这些球上。这些球上的数字形成一个非递减序列,想用最少的颜色给球上色,使以下情况成立:对于任何一种颜色,如果保留带有这种颜色的球并丢弃所有其他球,球上的数字将形成一个严格的递增序列。请确定最少的颜色数量。思路:要想剩余球上的数字将形成一个严格的递增序列,那么同一数字的所有球的颜色都不能一样。所以颜色的种类由最多同一数字的球的数量决定AC代码#include<bit原创 2021-01-29 20:55:09 · 176 阅读 · 0 评论 -
Educational Codeforces Round 103 (Rated for Div. 2)A-D题解
A. K-divisible Sum题意:给出两个整数n和k。要你构造一个由 n 个正整數 a1,a2,…,an 组成的阵列,使 (a1+a2+⋯+an) 之和被 k 整除,且 a 中的最大元素是最小的。输出a中的最大可能元素是多少思路:为了使构成的数组的最大值最小,只需要让数组中的元素尽可能相同即让数字都等于n / k,当n / k无法整除时,那么最大值就是 n / k向上取整(ceil)。但是,当n>k时便无法满足,这个时候我们需要让k倍增,使k刚好大于等于n,最终输出答案即可。AC原创 2021-02-01 05:01:00 · 208 阅读 · 0 评论 -
Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2)ABCD题解
Harbour.Space Scholarship Contest 2021-2022 open for everyone, rated, Div. 1 + Div. 2A. Digits SumB. Reverse StringC. PenaltyD. BackspaceA. Digits Sum地址: A. Digits Sum 题意:找到1到n中有多少数x符合 S(x+1)<S(x),其中S(x)是以十进制数字x的位数之和。例如,S(5)=5,S(10)=1,S(322)=7。题解:可以原创 2021-07-23 13:40:12 · 638 阅读 · 1 评论 -
Educational Codeforces Round 99 (Div. 2)前4题
A题 Strange Functions题意定义一个函数f(x)(x为正整数)如下:将x的十进制表示法的所有数字倒过来写,然后去掉前面的零。例如,f(321)=123,f(120)=21,f(1000000)=1,f(111)=111。 再定义一个函数g(x)=x/f(f(x))(x 也是一个正整数). 你的任务是:对于给定的正整数 n,计算所有数字 x 中 g(x) 的不同值的数目,使 1≤x≤n。输入第一行包含一个整数t(1≤t≤100)–测试用例的数量。每一个测试用例由一行包含一个整数原创 2020-12-07 19:14:44 · 237 阅读 · 0 评论 -
Codeforces Round #697 (Div. 3)A-E题解
A. Odd Divisor题意:判断一个数是否有奇数除数,有就输出yes否则输出no思路:简单题,但要注意题目数据范围较大,要开long long。两种方法:1.对每一个输入的数不断除以2不能除尽则输出yes否则输出no;2.预处理把1e14范围内的所有2^n的值存到一个数组里,没输入一个数,如果不在数组里输出yes否则输出no。方法2 AC代码#include<bits/stdc++.h>using namespace std;long long a[100];void i原创 2021-01-29 11:28:27 · 123 阅读 · 0 评论 -
Codeforces Round #733 (Div. 1 + Div. 2, based on VK Cup 2021 - Elimination (Engine))ABCD题解
Codeforces Round #733 A. Binary DecimalB. Putting PlatesC. PursuitD. Secret SantaA. Binary Decimal地址: A. Binary Decimal 题意:将一个数a拆分成k个10进制的01串,求k的最小值。例如1221=1111+110 此时k为2题解:k为数a中最大的一位数代码:#include<bits/stdc++.h>using namespace std;#define ll l原创 2021-07-20 11:22:18 · 364 阅读 · 5 评论 -
Educational Codeforces Round 111 (Rated for Div. 2) A、B、C题解
A题地址: A. Find The Array 题意:找到一个元素最少的数组a,使得对于任意元素ai,要么ai=1,要么a中存在ai-1或ai-2,且所有元素和为n题解:根据题意将数组第一个元素置为1,每次新加入的元素为上一个元素+2,即1、3、5、7…;这样得到的数组a的前缀和即为长度为k时能达到的最大值代码:#include<bits/stdc++.h>using namespace std;#define ll long long#define Cans cout<&原创 2021-07-15 16:25:36 · 96 阅读 · 0 评论 -
Educational Codeforces Round 102 (Rated for Div. 2)A-D题解
A. Replacing Elements题意:给你一个数组,问你能不能通过任意次一种操作:把数组中任意两个数的和赋值给任意另一个数,把数组中所有变为小于d的数思路:一道水题,对数组从小到大排序后,判断最大的一个是否大于d以及最小的两个数的和是否大于d,两者至少满足其一即可AC代码#include<bits/stdc++.h>using namespace std;const int maxn = 105;int a[maxn];int main(){ int t,n,d原创 2021-01-29 11:34:03 · 212 阅读 · 0 评论 -
Codeforces Round #734 (Div. 3)AB1B2CD题解
Codeforces Round #734 Div. 3A. Polycarp and CoinsB1. Wonderful Coloring - 1B2. Wonderful Coloring - 2A. Polycarp and Coins地址: A. Polycarp and Coins 题意:给出一个整数n,要找到两个数a、b,使得a+2*b=n,且 |a-b| 尽可能的小题解:当n%3=0时,a=b=n/3;当n%3=1时,a=n/3+1、b=n/3;当n%3=2时,a=n/3、b=原创 2021-07-24 10:04:40 · 170 阅读 · 4 评论 -
codefoces刷题记录
Codeforces Round #748 Div. 3 Codeforces Round #748 (Div. 3) Oct/14/2021 A. Elections题意:三个数问每个数A各自加多少能成为最大值。题解:一个数为最大值时,该数不变,另两数加到最大值加1;两个及以上个数同为最大值时,所有数加到最大值加1;代码: AB. Make it Divisible by 25题意:一个数字最少删掉其中几个数能被25整除。题解:从后往前找第一个00、25、50、75,分别计算将它们作为原创 2021-10-15 16:55:56 · 202 阅读 · 0 评论 -
2021牛客暑期多校训练营1
2021牛客暑期多校训练营1D Determine the Photo PositionB Ball DroppingF Find 3-friendly IntegersG Game of Swapping Numbers题目按照通过率排序D Determine the Photo Position地址:Determine the Photo Position 签到题题意:有一个n行m列的01矩阵和一个由2组成的字符串,问用该字符串替换矩阵中的0字符串有多少种方案题解:因为字符串只有一行,所以只原创 2021-07-25 15:42:34 · 157 阅读 · 2 评论 -
2023年第十四届蓝桥杯大赛软件类省赛C&C++大学C 组真题(代码&完整题解)
2023年第十四届蓝桥杯大赛软件类省赛C&C++研究生组真题(包含代码&完整题解)C题-三国游戏 贪心 三个国家初始人数都为0,n个事件,第i个事件若发生每个国家分别加Ai,Bi,Ci人,求最多发生几个事件使得两个国家人数之和小于第三国D题-填充 贪心 填充01串中的?使得互不重叠的 00 和 11 子串最多,输出子串个数E题-翻转 贪心 如果 S 中存在子串 10原创 2024-03-29 17:29:27 · 742 阅读 · 0 评论 -
2023年第十四届蓝桥杯大赛软件类省赛C/C++研究生组真题(代码&完整题解)
2023年第十四届蓝桥杯大赛软件类省赛C&C++研究生组真题(包含代码&完整题解)C题-翻转⭐ 贪心D题-阶乘的和⭐⭐⭐STL-map E题- 公因数匹配⭐⭐⭐数论-质因数F题-奇怪的数⭐⭐⭐⭐数论-位运算G题-太阳⭐⭐⭐计算几何-扫描线H题-子树的大小⭐⭐⭐数据结构-m叉树I题-高塔⭐⭐⭐⭐数论-排列组合,数论-乘法逆元J题-反异或 01 串⭐⭐字符串-回文串原创 2024-03-29 15:42:55 · 2985 阅读 · 2 评论