自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 [leetcode] 1043. 分隔数组以得到最大和 (动态规划)

给一个整数数组 arr,请你将该数组分隔为长度 最多 为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。返回将数组分隔变换后能够得到的元素最大和。用动态规划的思想,让dp[i]表示数组前i个元素的子数组的最大元素之和,最后的答案就是dp[n]。想要求得dp[i],我们可以从右向左遍历k个元素,遍历索引设为j,j的取值范围是。

2023-04-19 15:33:30 83

原创 2020-12-07

#include<stdio.h>#include<string.h>int main(){int n,m,i;char a[75];scanf("%d",&n);getchar();while(n–){gets(a);m=strlen(a);for(i=m-1;i>=0;i–){printf("%c",a[i]);if(i==0)printf("\n");}}return 0;}

2020-12-07 17:32:57 69

原创 算法第一周:scanf、GCD、快速幂

1.scanfscanf的返回值等于成功输入的个数。遇到这个表达式:scanf("%d%d",&a,&b)!=EOF;如果a和b都被成功读入,那么上面表达式的结果为2;如果只有一个读入,那么上面表达式的结果为1;如果a&&b都没有读入,那么上面表达式的结果为0(若a没有读入,则直接放弃b的读入);如果遇到错误或者文件结尾,那么上面表达式的结果为EOF,对应的有符号数时-1;对于没有明确结束标志的题目输入 可以用while(scanf("%d%d",&a,

2020-11-24 18:24:57 134

原创 Floyd算法(多源最短路)

简介Floyd算法是一个经典的动态规划算法,它又被称为插点法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。Floyd算法是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,算法目标是寻找从点i到点j的最短路径。实现原理从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,算法假设Dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,算法检查Dis(i,k) + Dis(k

2020-11-19 19:04:57 457

原创 Just A String (KMP)

题意:何老师手中有一个字符串S,他发现这个字符串有一个神奇的性质,取出一个长为i的前缀(就是由S的前i个字符顺序构成的字符串)prei和一个长为j的后缀(就是由S的后j个字符顺序构成的字符串)sufj之后,总是存在三个字符串A,B,C(可能为空)使得prei=A+B,sufj=B+C, 虽然这听起来像是一句废话。显然三元组A,B,C不总是唯一的,何老师从所有可能的三元组中找到B最长的,很容易知道这样的三元组是唯一的,并且认为prei和sufj的契合度就是f(i,j)=|A||B|2|C|,现在你需要帮何

2020-11-17 16:22:19 231

原创 Codeforces Round #683 (Div. 2, by Meet IT) 题解报告

A.Add Candies题目链接题意:有n个袋子装着糖果,最初第i个袋子装着i个糖果。你希望所有的袋子里都含有相同数量的糖果。执行m操作。在第j次操作中,你将取出一个袋子,并在除选中的袋子外的所有袋子中添加j个糖果。你的目标是找到一个有效的操作序列,使得所有的袋子将包含等量的糖果。思路:一道简单的构造题,通过规律可知对于n袋糖果,只需要操作n次,从第一袋操作到最后一袋即可。(例如三袋时,【1,2,3】,操作第一袋,【1,3,4】,操作第二袋,【3,3,6】,操作第三袋,【6,6,6】,符合题意)

2020-11-16 09:33:57 324

原创 Improve SPAM(拓扑+BFS)

Gym 102428I Improve SPAM题意给你一个有向图,N个点中有1-L个为发送点,剩下的为接收点。点1发送一封邮件给他相邻的点,其他的点接着发送,可能会收到多封邮件,每封发送。问接收点一共接收到了多少封邮件,以及多少个接收点收到了邮件。思路建图,跑一遍bfs可以求出能到达几个接收点,同时优化得到一个连通图。每个接受点受到的邮件数目等于所有上一级发送的邮件数目之和。所以跑一遍拓扑排序即可,每次更新该点可以接收邮件数目ci[edge[i].to] = ci[p] + ci[edge[i]

2020-11-12 19:51:47 130 1

原创 图及深度优先搜索(DFS)和广度优先搜索(BFS)

1.图1.1图的种类图由顶点和边组成,顶点代表对象。图大致上分成两种,边没有指向性的图叫做无向图,边具有指向性的图。我们可以给边附上属性,例如权值(cost),带有权值的图叫做网。1.2 连通图、非连通图、树和森林无向图中顶点连接的边数叫做这个顶点的度,起点和重点重合的路径叫做圈,任意两点之间都有路径的无向图叫做连通图,没有圈的连通图叫做树,没有圈的非连通图叫做森林2.深度优先搜索(D...

2020-03-17 08:03:04 406

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除