前缀acwing 795

Acwing. 第122场周赛

比赛链接 A简单输出 题目链接 简单的模拟一下就好了,注意是多组样例就行。 #include<bits/stdc++.h> using namespace std; void solve(){ int n; cin>>n; for(int i=1;i<=n;i++){ cout<<i<<" "; } ......
Acwing 122

acwing 299. 裁剪序列

原题 考虑朴素\(dp\),设\(dp_i\)表示前\(i\)个数划分后的最小答案 可以得到转移: \[dp_i = \min_{j=1}^{i-1}\{dp_j + \max_{k=j+1}^{i}\{a_k \} \} \]计算复杂度\(O(n^2)\),会超时 我们发现对于可能成为答案的状态是 ......
序列 acwing 299

高维前缀和

考虑高维前缀和,可以把每一维前缀和 比如:三维前缀和 for(i=1; i<=a; i++) for(j=1; j<=b; j++) for(k=1; k<=c; k++) f[i][j][k] += f[i-1][j][k]; for(i=1; i<=a; i++) for(j=1; j<=b; ......
高维 前缀

容斥原理应用Acwing890借鉴题解

参考文献 简单的容斥原理介绍请看下图: C++ 代码 简单的容斥原理介绍请看下图: 本题思路: 将题目所给出的m个数可以看成是m位的二进制数,例如 当p[N]={2,3}时,此时会有01,10,11三种情况 而二进制的第零位表示的是p[0]上面的数字2,第1位表示p[1]上面的数字3 所以当i=1时 ......
题解 原理 Acwing 890

基本前缀和算法:一维前缀和、二维前缀和、子矩阵和

1、一维前缀和 以AcWing.795为例,题目要求如下: 输入一个长度为N的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。 输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行包含两个整数l和r,表示一 ......
前缀 矩阵 算法

力扣14.最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在 ......
前缀 14

AcWing.5151.程序调用

AcWing.5151.程序调用 有 \(n\) 个程序,编号 \(1∼n\)。 初始时,这 \(n\) 个程序都在一个调用队列当中,位于队列第 \(i\) 位的是编号为 \(a_i\) 的程序。 每个程序都有一个调用级别,根据程序在队列中的排位,排在第 \(1∼k\) 位的程序属于 \(1\) 级 ......
程序 AcWing 5151

AcWing.5150. 顶牛

AcWing.5149.简单计算 约翰的农场有\(n\)头奶牛,编号 \(1∼n\)。 为了决出谁才是牛中强者,它们之间决定来一场顶牛大赛。 已知,每两头奶牛之间都会有一场一对一对决,对决可能产生以下几种结果:没有牛被顶翻、一头牛被顶翻、两头牛都被顶翻。 所有对决的结果已经用一个 \(n×n\) 的 ......
AcWing 5150

AcWing.5149.简单计算

AcWing.5149.简单计算 给定三个整数 \(x,y,z\),请你计算并输出 \(⌊(z-y)/x⌋*x+y\) 的值。注意,⌊ ⌋ 表示向下取整。 输入格式 第一行包含整数 T,表示共有 T组测试数据。 每组数据占一行,包含三个整数 \(x,y,z\)。 输出格式 每组数据输出一行结果。 数 ......
AcWing 5149

acwing 294 计算重复

原题 首先\(conn(conn(s_2,n_2),m) = conn(s_2,n_2 \times m)\),因此我们可以找一个最大的\(m'\)满足\(conn(s_2, m')\)能由\(conn(s_1, n1)\)生成,然后再通过\(m = \lfloor \frac{m'}{n_2} \ ......
acwing 294

使用反射,根据属性名前缀+编号获取值、设置值

1 /** 2 * 反射 3 * 根据属性名前缀+编号获取值、设置值 4 * 如item + 12, mark +5 5 */ 6 public class HandleProperty { 7 8 /** 9 * 取值 10 * @param object 11 * @param prefix 1 ......
前缀 属性

Acwing393. 雇佣收银员 题解 差分约束

题目链接:https://www.acwing.com/problem/content/description/395/ 解题思路: 差分约束。 为了方便起见,定义第 \(i\) 个时间段为 \(i-1:00\) 到 \(i:00\) 这个时间段。 首先,为了方便开一个额外的点,令 \(R_i\) ......
题解 收银员 Acwing 393

Acwing 5220

Acw 5220 题意 自己看 思路 假设串N长度为\(n\),串H长度为\(m\),遍历串H,对于\([i,i+n-1]\)这一段子串,如果所含字母个数与串N所含字母个数相同,则认为匹配,问题在于 如何判断 排列重合 的问题。字符串哈希。匹配的话直接将这一段的哈希值放入set中,去重,最后set的 ......
Acwing 5220

Acwing.第121场周赛

Acwing.第121场周赛 比赛链接 这次怎么出的这么简单,偷懒了是吧哈哈哈 A. 简单计算 题目链接 #include<bits/stdc++.h> using namespace std; typedef long long ll; void solve(){ int a,b,c; cin>> ......
Acwing 121

C++ 算法竞赛、08 周赛篇 | AcWing 第94场周赛 ⭐

AcWing 第94场周赛 4870. 装物品 - AcWing题库 4870 装物品 4870. 装物品 - AcWing题库 巨简单题 #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; if ( ......
算法 AcWing

acwing 219 剪纸游戏

这一道题就是显然的multi-SG题目了(只是没有明显的后继节点,只能分解节点罢了) 这里无论双方怎么决策,决策图都不可能出现1x某某的网格(原因见蓝书),所以我们在程序中就不要考虑SG[1][某某] 最后的不能分解的节点就是2x2,2x3,3x3(注意不要涉及1x某某哦),我们把这三个节点赋成0即 ......
剪纸 acwing 219

C++ 算法竞赛、07 周赛篇 | AcWing 第120场周赛

AcWing 第120场周赛 竞赛 - AcWing 5146 最大GCD 5146. 最大GCD - AcWing题库 不难发现,最大公约数的条件是 \(GCD(\lfloor \frac{n}{2} \rfloor ,\lfloor \frac{n}{2} \rfloor * 2)\) #inc ......
算法 AcWing 120

C++ 算法竞赛、06 周赛篇 | AcWing 第97场周赛

AcWing 第97场周赛 4944. 热身计算 - AcWing题库 4944 热身计算 4944. 热身计算 - AcWing题库 #include <bits/stdc++.h> using namespace std; int a, b; int main() { cin >> a >> b ......
算法 AcWing

C++ 算法竞赛、05 周赛篇 | AcWing 第85场周赛

AcWing 第85场周赛 竞赛 - AcWing 4791 死或生 4791. 死或生 - AcWing题库 简单题 #include <bits/stdc++.h> using namespace std; int a[3][2]; int n; int main() { cin >> n; w ......
算法 AcWing

前缀和变形 + 哈希表

前缀和变形 + 哈希表 统计趣味子数组的数目 解题思路: 设 \[s_i = \sum_{i = 1} ^ n{nums[i] \% module == k} \]题目求满足$s_r - s_{l-1} \equiv k \pmod {module} $的子数组的个数。 公式转换: \[\begin ......
前缀

前缀和与差分

1.前缀和 一维数组 #include<iostream> using namespace std; const int N=1e5+10; int main() { int n,m,a[N],sum[N]={0}; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++ ......
前缀

C++ 算法竞赛、04 周赛篇 | AcWing 第5场周赛

AcWing 第5场周赛 竞赛 - AcWing 3726 调整数组 3726. 调整数组 - AcWing题库 简单题,判断奇偶数是否同时存在 #include <bits/stdc++.h> using namespace std; int t, m; int main() { cin >> t ......
算法 AcWing

前缀和 与 区间

思想 a ~ b区间可以转换为 0 ~ b - 0 ~ (a - 1) 用这种前缀和的思想,可以快速枚举所有合格条件的自区间。 class Solution: def subarraySum(self, nums: List[int], k: int) -> int: m = dict() m[0] ......
前缀 区间

hdu1400/acwing 291 Mondriaan's Dream

题意描述: 给定一块n*m的区域,用1*2的长方形填充,长方形可以横着或竖着摆,问一共有多少种填充方案 具体思路: 题意没什么好说的,简单易懂,很经典的一类状态压缩问题(在棋盘中求填充方案)。 观察数据,满足n,m都比较小,但是搜索的复杂度大到无法接受,考虑使用状态压缩求解此类问题 首先,肯定是第一 ......
Mondriaan acwing Dream 1400 hdu

Acwing.第 120 场周赛

Acwing.第 120 场周赛 比赛链接 A最大GCD 给定一个正整数 n(n≥2),请你确定两个正整数 a,b,使得 1≤a<b≤n,且 gcd(a,b)尽可能大。 输出 gcd(a,b)的最大可能值。 gcd(a,b)指 a,b的最大公约数。 提示:可以通过给定样例观察一下 n和答案之间的关系 ......
Acwing 120

C++ 算法竞赛、03 周赛篇 | AcWing 第4场周赛

AcWing 第4场周赛 竞赛 - AcWing 3694 A还是B 3694. A还是B - AcWing题库 简单题 #include <algorithm> #include <cstring> #include <iostream> using namespace std; int n; i ......
算法 AcWing

acwing1048、鸡蛋的硬度

好久没做算法题了,偶然看到一道题练练手。(顺便复习一下markdown) 题目: 用m个相同鸡蛋测n层楼,要测出鸡蛋硬度具体能抗几层楼高,问最少要测试几次(即丢几次鸡蛋)。 题目解析: 是一道很简单的题目的延申?考虑一种较为简单的情况:100层楼,2个鸡蛋,此时假设让第一个鸡蛋在x楼落下(显然,1< ......
硬度 鸡蛋 acwing 1048

1:前缀和

###前缀和 问题描述:给定一个长度为n的数组a,有q次询问,每次询问数组a在区间[l,r]的和。 [问题来自这:问题 A: 【模板】前缀和 - ETOJ (eriktse.com)](https://oj.eriktse.com/problem.php?cid=1008&pid=0) 为了方便计算 ......
前缀

C++ 算法竞赛、02 周赛篇 | AcWing 第2场周赛

# AcWing 第2场周赛 [竞赛 - AcWing](https://www.acwing.com/activity/content/competition/problem_list/47/) ## 3626 三元一次方程 [AcWing 3626. 三元一次方程 - AcWing](https ......
算法 AcWing

LeetCode 周赛上分之旅 #44 同余前缀和问题与经典倍增 LCA 算法

> ⭐️ **本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 \[彭旭锐] 和 [BaguTree Pro](https://www.mdnice.com/writing/85b28c4e60354865a423728e668fc570) 知识星球提问。** > > 学习数据 ......
前缀 算法 LeetCode 之旅 经典