首页 > TAG信息列表 > Mmax

LeetCode 53: 最大子序和

动态规划解法一 class Solution { public: int maxSubArray(vector<int>& nums) { int s = nums.size(); if (s == 1) { return nums[0]; } int mmax = nums[0]; for (int i = 1; i < s; i++) { n

力扣 无重复字符的最长子串

题目:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 解题思路: 采用动态规划解法,dp[i]表示[0, i]这个区间,以s[i]为结尾的的最长子串的长度。那么 dp[0] = 0, 只有一个

【题解】剑指 Offer II 008. 和大于等于 target 的最短子数组(双指针)(不定长度滑动窗口)

题目链接  力扣 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输入:target = 7, nums =

【leetcode】1026. Maximum Difference Between Node and Ancestor

   Given the root of a binary tree, find the maximum value v for which there exist different nodes a and b where v = |a.val - b.val| and a is an ancestor of b. A node a is an ancestor of b if either: any child of a is equal to b or a

cf1607 G. Banquet Preparations 1(贪心)

https://codeforces.com/contest/1607/problem/G 题意: 给定数组a[],b[]和整数m。每个盘子里有ai个白球和bi个黑球。现要从每个盘子里拿走m个球,使得剩下的所有白球的和与所有黑球的和的差的绝对值最小。题目保证每个盘子里的球数不少于m 思路: 假设从每个盘子里拿 \(x_i\) 个白球和

字符串哈希

题目链接 P3370 【模板】字符串哈希 题目描述 如题,给定 \(N\) 个字符串(第 \(i\) 个字符串长度为 \(M_i\),字符串内包含数字、大小写字母,大小写敏感),请求出 \(N\) 个字符串中共有多少个不同的字符串。 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转PJ试炼场:) 输入格式 第一

YBTOJ 小白逛公园

题面:洛谷传送门 题目的算法要素:线段树&返回值为结构体的线段树 题目分析: 线段树的单点赋值+区间查询(查询区间内和最大的一段序列)。 因为某一段区间内和最大的一段序列是从它的小区间中合并出来的,需要不断与其他区间比较,且小区间内的最大序列不一定是大区间内的最大序列的一部分。

本质串 暴力hash

#include<bits/stdc++.h> using namespace std; typedef unsigned long long mm; const int m=2e5+50; mm l,r,t[m],a[m],b[m],zxd=10;int v[m],n,num[m],d=0,k,mmax=0; map<pair<mm,mm>,bool>q; inline int read(){ int x=0,f=1; char ch=getchar(

黑妹的游戏I-裴蜀定理

https://ac.nowcoder.com/acm/problem/16766 大意:给出3个数a,b,c,每次任取两个数作减法,得到的数如果不存在,则加入,然后继续执行操作。 思路:得到的数一定是,那么要方程有解,ans就一定是gcd(a,b,c)的倍数,并且ans要小于max(a,b,c). //a*x+b*y+c*z = gcd(a,b,c) #include <bits/stdc++.h>

LeetCode #3 无重复字符的最长子串

3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所

I Hate It HDU - 1754

原题链接 考察:线段树 or 树状数组 思路:         套模板即可. 注意:build函数里,赋值不是赋值a[u],而是a[l].l、r是1~n范围内.u是线段树结点编号. 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 using namespace std; 6

LLC_Parameter_Design

clear;clc; Uin=300; %unit: V Uomin=40000; %unit: V Uomax=120000; %unit: V P=1600; fr=60000; m=10; Io=0.03; %unit: mA U

[LeetCode] 1031. Maximum Sum of Two Non-Overlapping Subarrays 两个不重叠的子数组的最大和

Given an array A of non-negative integers, return the maximum sum of elements in two non-overlapping (contiguous) subarrays, which have lengths L and M.  (For clarification, the L-length subarray could occur before or after the M-length subarray.) Fo

1316 你能知道这是几进制数?

1316 你能知道这是几进制数? 题目描述 有个比较特别的随机数生成器,你输入一个十进制数N,他会生成一个0到N-1之间的M进制数,但是你不知道这是一个M进制数,问你能猜测这是几进制数,升序输出所有的可能? 输入要求 第一行一个N(1< N < 10^9),代表输入的十进制数,第二行是一个小于10位的数(字符串

ACwing 680剪绳子

题目描述: 有N根绳子,第i根绳子长度为LiLi,现在需要M根等长的绳子,你可以对N根绳子进行任意裁剪(不能拼接),请你帮忙计算出这M根绳子最长的长度是多少。 输入格式 第一行包含2个正整数N、M,表示原始绳子的数量和需求绳子的数量。 第二行包含N个整数,其中第 i 个整数LiLi表示第 i 根绳子的

算法第二章上机实践报告

题目: 最大子列和问题 问题描述: 给定K个整数组成的序列{ N​1​​, N​2​​, ..., N​K​​ },“连续子列”被定义为{ N​i​​, N​i+1​​, ..., N​j​​ },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5,

2019省赛再现

C题: 这道题卡了三个多小时,主要原因是特殊样例思考的不全面。最大距离除了可以在最后一次循环中取到以外,也可能在第一次循环中取到。例如所给的第一个样例,就是在最后一次循环取到最大值,此时我们只需要用循环一次以后距离的最终值*(k-1)+循环一次的最大值即可。如果是在第一次循环取到

Leetcode 1031 Maximum Sum of Two Non-Overlapping Subarrays (滑动窗口)

Leetcode 1031 题目描述 Given an array A of non-negative integers, return the maximum sum of elements in two non-overlapping (contiguous) subarrays, which have lengths L and M. (For clarification, the L-length subarray could occur before or after the M-length

Luogu P5020 货币系统

Luogu P5020 货币系统 先把\(a\)数组排一下序。 从最小的数开始选,显然最小这个数必须选,然后利用完全背包的思想,从\(a_i\)到最大值筛选一遍,将可以组成的打上标记。 在判断后面的数字时,如果已经被标记过了,就不再选,没有被标记过就标记一下,再筛选一次数(即再做一次完全背包)。 #includ

HDU - 1231 最大连续子序列(基础dp)

最近刷题突然发现vj上还有几道很久以前的attempt题没有解决,所以就当水题把这些题补了.... 原题链接 题意: 求给出序列的最大连续子序列,同时输出其区间 (如果有相同的最大值区间,输出 i , j 最小的区间) 思路: 求最大连续子序列:递推公式 dp[i] = max ( arr[i] , dp[i-1] + arr[i] ) ,

Luogu P1290 欧几里得的游戏/UVA10368 Euclid's Game

Luogu P1290 欧几里得的游戏/UVA10368 Euclid's Game 对于博弈论的题目没接触过多少,而这道又是比较经典的SG博弈,所以就只能自己来推关系…… 假设我们有两个数\(m,n\),我们先把\(m\)设为较大值,\(n\)设为较小值。现在我们把它分成三种情况: 1.若两数为倍数关系,当前操作的一方赢。 2.