首页 > TAG信息列表 > Y2

差分

目录一、一维差分1.一维差分的定义2.一维差分的操作3.一维差分相关的例题二、二维差分1.二维差分的重要操作2.二维差分例题 一、一维差分 1.一维差分的定义 给定一个数组A它的差分数组B的定义为:$$B[i] = A[i] - A[i - 1](2 <= i <= n)$$ 2.一维差分的操作 一维差分可以让我们在一

[LeetCode] 1470. Shuffle the Array

Given the array nums consisting of 2n elements in the form [x1,x2,...,xn,y1,y2,...,yn]. Return the array in the form [x1,y1,x2,y2,...,xn,yn]. Example 1: Input: nums = [2,5,1,3,4,7], n = 3 Output: [2,3,5,4,1,7] Explanation: Since x1=2, x2=5, x3=1, y1=3,

P2130 题解

前言 题目传送门! 更好的阅读体验? 本题是练习 bfs 的好题。 思路 结合代码进行思路讲解。 首先是读入部分,我们可以用 bool 存下地图,节省空间开销。 需要注意,数据比较烂,起始点可能有障碍。 我们可以霸气地把起始点的障碍消掉。 const int N = 1005; bool a[N][N]; int n, m, fx, fy

1026 [NOIP2001]Car的旅行路线 标点建图 勾股定理 floyd

 链接:https://ac.nowcoder.com/acm/contest/26077/1026来源:牛客网 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游。她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中

欧几里得算法和扩展欧几里得算法

欧几里得算法和扩展欧几里得算法 概述 本篇简要介绍欧几里得算法和扩展欧几里得算法 欧几里得算法 欧几里得算法就是辗转相除法,用于求两个数的最大公约数 欧几里得算法: public static int gcd(int a,int b){ return b==0?a:gcd(b,a%b); } 欧几里得算法的证明: 前提:设gcd(a,b) 是

画圆

https://www.acwing.com/problem/content/4502/ 思路: 首先要理解题目的意思,尤其是第一句话。然后分类讨论两种情况何时圆的面积最大。 代码 #include <iostream> #include <cstring> #include <algorithm> #include <cmath> using namespace std; const double eps = 1e-8; in

CF713D Animals and Puzzle

题意: \(n * m\)矩阵,每个点为0或1,每次给定一个矩形区间,问最大能够画出边长为多少的正方形保证正方形内的每一个数都是1. 首先是动规。 f[i][j]表示以(i,j)点位左下角的正方形的大小。则f[i][j]=min(f[i-1][j],f[i][j-1],f[i-1][j-1])+1。 这样可以求出每个点为左下角可以画出的最

[2008年NOIP普及组] 排座椅

[2008年NOIP普及组] 排座椅 思路:本题考察的是贪心和排序 代码如下: #include<bits/stdc++.h> using namespace std; int ak[1005],al[1005];//横排的前k个 、纵排的前l个 int a1[1005],b1[1005];//横纵坐标出现的次数 int main() {       int m,n,k,l,d;       int x1,x2

浅谈差分

1.前言 前置芝士: 同步于 \(luogublog\) 发布。 基本树上操作,lca。(用于树上差分。) 如有错误,欢迎各位大佬指出。(顺便复习一下远古算法。) 2.什么是差分 我们先给定一个数组 \(a\),长度为 \(n\),我们可以构造一个差分数组 \(b\),使得对于任意的 \(i(1\le i \le n)\),\(\displaystyle\sum

Acwing 798.差分矩阵

题目链接:https://www.acwing.com/problem/content/800/ 要睡觉了今早要早起,今晚再写关于二位差分的内容吧   放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 int a[1005][1005],b[1005][1005];//a前缀和数组,b差分数组 4 int n,m,q; 5 6 void insert(int

2022杭电多校第一场部分题解

Dragon slayer 题解: 解法1:可以二进制枚举当前存在哪些墙,然后bfs; 解法2:可以观察到只有删掉墙才会有贡献,相当于边权为1,其他情况边权为0,采用状压01bfs 代码: #include <bits/stdc++.h> //#define int long long int _ = 0, Case = 1; using namespace std; #define all(v) begin(v),e

一种快速判断点在多边形内的算法

由于业务需要, 我总结了一种快速判断点在多边形内的算法。 先说思路: 如图: 如果点在多边形内部,射线第一次穿越边界一定是穿出多边形。 如果点在多边形外部,射线第一次穿越边界一定是进入多边形。 我们可以归纳出: 当射线穿越多边形边界的次数为偶数时,所有第偶数次(包括最后一次)穿

[AcWing 321] 棋盘分割

点击查看代码 #include<iostream> #include<cstring> #include<cmath> using namespace std; typedef long long LL; const int N = 10, M = 20; const double INF = 1e9; int n, m = 8; int s[N][N]; double f[N][N][N][N][M]; double xx; int front_sum(in

【题解】统计子矩阵

试题 F: 统计子矩阵 时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分 【问题描述】 给定一个 N × M 的矩阵 A,请你统计有多少个子矩阵 (最小 1 × 1,最大 N × M) 满足子矩阵中所有数的和不超过给定的整数 K? 【输入格式】 第一行包含三个整数 N, M 和 K. 之后 N 行每行包含 M 个

AtCoder Beginner Contest 258

咕咕咕咕。 E - Packing Potatoes 题意 有无穷多个土豆,第\(i\)个土豆的质量为\(w_i\),给定\(w\)的前\(n\)项,然后\(w_{i + n} = w_i\)。 有一个打包流程,一个袋子有个参数\(x\),不断将土豆放进这个袋子知道袋子中土豆质量和大于等于\(x\),然后封袋并使用一个新袋子继续打包。 要求回答

剑指 Offer 16. 数值的整数次方

思路:递归+快速幂 何为快速幂? 例如x11,普通的求法是x不断自乘,时间复杂度O(n) 这里采用快速幂:指数11转化为二进制1101,也就是不断除以2。 时间复杂度降为O( logn ) 当要计算xn时,先递归计算xn/2,n/2向下取整 n再分奇偶,奇数:为xn = y2 * x;偶数:xn = y2 边界情况:n为0,re

前缀和,差分

前缀和_理解 前缀和就是数学里的数列的前n项和Sn,所以前缀和需要从最开始的元素开始相加。 前缀和_思路 1.创建一个s[n]数组,则s[i]表示前i项数组的和; 2.建议在输入a[n]数组时,就同时处理S[n]数组; 3.S[i] = S[i - 1] + a[i]; 前缀和_使用场景_1 可以用于快速求[i , j]之间所有元素的

亚特兰蒂斯

#include<bits/stdc++.h> using namespace std; #define int long long const int N = 1e4+10; struct Segment{ double x,y1,y2; int d; bool operator < (const Segment &t) const{ return x<t.x; } }seg[N*2]; struct NODE{

cf1551 D2. Domino (hard version)

题意: 给定空的 n×m 棋盘,用 1×2 横骨牌和 2×1 竖骨牌放满棋盘。要求不能重叠且横骨牌的数量恰为 k。 输入 n,m,k。n,m <= 100 思路: n m 不能都为奇数。 若 n 为偶数:先考虑第一列,第一列中被竖骨牌占据的格子数必为偶数,剩下的偶数个格子要放偶数个横骨牌,因此会向第二列 “伸出”

Exams/m2014 q6b

考虑如下所示的状态机,它有一个输入 w 和一个输出 z     假设您希望使用三个触发器和状态码 y[3:1] = 000, 001, ... , 101 分别表示状态 A, B, ... , F。 显示此 FSM 的状态分配表。 导出触发器 y[2] 。 实现下一个状态逻辑 y[2] 。 (这更像是一个 FSM 问题,而不是 Ver

前缀和/差分

前缀和 前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和。 设 $ b [ ] $ 为前缀和数组, $ a [ ] $ 是原数组, 应用 区间求和 一维区间 求解 $ [ L , R ] $ 区间数字之和。 因为$ L < R $ ,所以 $ ans = S [ R ] - S [ L - 1 ] $ ; 对于m次区间和询问:常规做法时间

计算方法4-6章存档

第四章  插值与拟合 给定一系列的点,求多项式函数 可以用n个点确定n个未知量,但此方程组病态,误差极大。 1.插值余项(PPT1 用于估算误差(P76 2.拉格朗日插值多项式 为每个点构造一个格式统一的函数,使得取到该点时值为1,其余点均为0. 一种构造:  取2点,为线性插值,代码: function y=xian

斑点检测

1、斑点概念 斑点通常是指与周围有着颜色和灰度差别的区域。在实际地图中,往往存在着大量这样的斑点,如一棵树是一个斑点,一块草地是一个斑点,一栋房子也可以是一个斑点。由于斑点代表的是一个区域,相比单纯的角点,它的稳定性要好,抗噪声能力要强,所以它在图像配准上扮演了很重要的角色。

第二次Blog-PTA

一、前言:   这次的期中考试相对于来说难度还是比较简单的,但是对于我来说容器的知识记得不是很牢固,所以导致没有满分,但是过后再去写的时候又没有那么难,pta包括期中考试整体方面的题量和难度来说是比较大的,期中考试的题目如果说你知识点不牢固,你有可能做不完,pta的题目难度很大,主要

python-(分段)函数图形绘制

【题目描述】设 ,其中      ,完成下列操作:(1)在同一坐标系下用不同的颜色和线型绘制y1、y2和y3三条曲线;(2)在同一绘图框内以子图形式绘制y1、y2和y3三条曲线。 import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 10, 0.0001) y1 = x ** 2 y2 = np.cos(x * 2)