二维

仓库选址(二维前缀和)

人走茶凉 提交于 2020-03-26 04:45:29
链接: https://ac.nowcoder.com/acm/contest/4462/G 来源:牛客网 时间限制:C/C++ 4秒,其他语言8秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 牛能在某小城有了固定的需求,为了节省送货的费用,他决定在小城里建一个仓库,但是他不知道选在哪里,可以使得花费最小。 给出一个 m × n的矩阵,代表下一年小城里各个位置对货物的需求次数。我们定义花费为货车载货运输的距离,货车只能沿着水平或竖直方向行驶。 输入描述: 首先在一行中输入 T,T≤10 ,代表测试数据的组数。 每组输入在第一行给出两个正整数 n,m,1≤n,m≤100 ,分别代表矩阵的宽和高。 接下来m行,每行n个不超过1000的数字,代表矩阵里的元素。 输出描述: 每组输入在一行中输出答案。 输入 3 2 2 1 1 1 0 4 4 0 8 2 0 1 4 5 0 0 1 0 1 3 9 2 0 6 7 0 0 0 0 0 0 0 1 0 3 0 1 2 9 1 2 1 2 8 7 1 3 4 3 1 0 2 2 7 7 0 1 0 0 1 0 0 0 0 0 0 0 输出 2 55 162 备注: 送货时只能单次运输,若该位置需要3次,货车必须跑3次。 即使该位置需要被送货,我们仍然可以选择该位置作为仓库。

plt画图工具(二维图形)

我怕爱的太早我们不能终老 提交于 2020-03-23 06:26:13
1.直线图 import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("Matplotlib demo") plt.xlabel("x axis caption") plt.ylabel("y axis caption") plt.plot(x,y) plt.grid(True) plt.show() View Code plt.grid设置网格线 2.散点图 plt.scatter(x,y,marker='o',color='r') color 颜色参数 b(blue) g(grenn) r(red) c(cyan) m(magenta) y(yellow) k(boack) w(white) marker 点的图形样式 3.柱状图 plt.bar(x, y, color='green',width=0.8) width柱子的宽度 plt.barh(x,y)垂直的柱状图 4.饼图 plt.pie([5,6,7], labels=['a','b','c'],autopct='%0.f%%',shadow=True) 5.多图形式 import matplotlib.pyplot as plt import numpy as np # Plot

三维图形概述

守給你的承諾、 提交于 2020-03-21 00:53:13
原文 三维图形概述 通过 Windows Presentation Foundation (WPF) 中的三维功能,开发人员可以使用标记代码和程序代码对三维图形进行绘制、转换和动画处理。 开发人员可以合并二维和三维图形以创建丰富的控件,提供复杂的数据图解,或者增强用户对应用程序界面的体验。WPF 中的三维支持并非旨在提供功能齐全的游戏开发平台。本主题概述了 WPF 图形系统中的三维功能。 本主题包括下列各节。 二维容器中的三维 三维坐标空间 照相机和投影 模型和网格基元 向模型应用 Material 照亮场景 变换模型 对模型进行动画处理 向窗口中添加三维内容 相关主题 二维容器中的三维 WPF 中的三维图形内容封装在 Viewport3D 元素中,该元素可以参与二维元素结构。 该图形系统将 Viewport3D 视为一个像 WPF 中的许多其他元素一样的二维可视化元素。 Viewport3D 充当三维场景中的窗口(即视区)。 更准确地说,它是三维场景所投影到的图面。 在传统的二维应用程序中,当您需要使用 Grid 或 Canvas 之类的另一个容器元素时,可以使用 Viewport3D 。 尽管您可以将 Viewport3D 与同一个场景图中的其他二维绘图对象结合使用,但是您不能在 Viewport3D 内部渗透二维和三维对象。 本主题重点讲述如何在 Viewport3D

Leetcode 74.搜索二维矩阵

不羁岁月 提交于 2020-03-18 23:55:59
搜索二维矩阵 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 两次二分搜索 1 class Solution{ 2 public: 3 bool searchMatrix(vector<vector<int>> &matrix, int target){ 4 if (matrix.empty() || matrix[0].empty()) return false; 5 if (target<matrix[0][0] || target>matrix.back().back()) return false; 6 int left = 0, right = matrix.size() - 1; 7 while (left <= right){ 8 int mid = (left + right) / 2; 9 if (matrix[mid][0] == target) return true; 10 else if (matrix[mid][0]<target) left = mid +

hdu3480 Division(斜率优化+二维DP)

血红的双手。 提交于 2020-03-15 09:24:59
点击打开链接 题意:给你一些数,把这些数分成M组,每组的花费是这组的 (max-min)^2。求最小花费 思路: 斜率优化+二维DP f[i][m] 表示将前i个分作m个集合所得最小消费 首先应该排序,假设1,2,3,5,4 第四个数是5,花费一定比是4大。【贪心】 f[i][m] = min{f[j][m-1]+(a[i]-a[j+1])*(a[i]-a[j+1])}; 排序是为了让a[i]-a[j+1]总是最小的 若有j>k,且决策j优于决策k则有: f[j][j-1]-f[k][j-1]+sq(a[j+1])-sq(a[k+1]) <= 2*(a[j+1]-a[k+1])*a[i] 先进行m循环枚举f[][m],每一层维护一个单调队列即可。 乘除耗费时间悬殊,如果直接除这个题就超时了。 代码: 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 #define mem(a) memset(a,0,sizeof(a)) 5 #define mp(x,y) make_pair(x,y) 6 const int INF = 0x3f3f3f3f; 7 const ll INFLL = 0x3f3f3f3f3f3f3f3fLL; 8 inline ll read(){ 9 ll x=0

第一个随笔

ε祈祈猫儿з 提交于 2020-03-15 06:25:51
  确定了以后努力的方向——二维图像处理。   本人虽工作了两三年,其实也就是刚刚脱离门外汉的水平,所以此博客并无高深的长篇大论。   设立此博客目的有二,其一为督促自己总结积累,其二为和志同道合人士探讨。   本人程序猿一枚,使用C++开发,以后的内容应该是windows、C++和Qt。如果以后真的牛逼了,可以看看Linux。博文应该是以二维图像处理为主,可能会翻译,可能会转载,我想更多的应该是读书笔记。   希望我能坚持更新,到第十个博文的时候,我会回来更新此次随笔。 来源: https://www.cnblogs.com/kingwonder/archive/2012/11/27/2791702.html

石墨烯、二硫化钼和黑磷

好久不见. 提交于 2020-03-13 07:51:29
通常情况下,胶带不会被看作是一种具有科学突破性的进展。但是当英国曼彻斯特大学物理学家安德烈·盖姆(Andre Geim)和康斯坦丁·诺沃肖罗夫(Konstantin Novoselov)(两人在2010年获得诺贝尔物理学奖)2004年与同事在《科学》杂志发表了他们的研究成果——即用透明胶带从一块石墨烯上剥落碳原子的单原子薄片,这一研究缓缓拉开了材料学革命的序幕。 自上述曼彻斯特研究团队发表其研究成果的11年来,相关领域的研究成果呈指数增长,去年,全球研究人员发表的关于石墨烯的研究成果超过1.5万项。这种现象很合乎情理:石墨烯是迄今为止制作的最轻材料,它的强度是钢的100倍,比铜的导电性、柔韧性更好,而且很大程度上是透明的。研究人员设想了未来以石墨烯为基础建造的每样产品,如从下一代计算机芯片和柔性显示器到蓄电池和燃料电池。 然而,石墨烯可能不会通过其自身作为一种理想材料来实现未来的巨大影响,而是通过它衍生的产物。尽管石墨烯有着许多令人眼花缭乱的优点,但它也有缺点,尤其是不能充当半导体——这是微电子的基石。现在,化学家和材料学家正在努力越过石墨烯,寻找其他的材料。他们正在合成其他两种兼具柔韧性和透明度,而且拥有石墨烯无法企及的电子特性的二维片状材料,他们已经把其中一些转变为具备轻量性和柔韧性的快速电子和光学设备,他们希望,这些材料可以作为未来产业的支柱。 石墨烯,打开二维材料新视野

[LeetCode] 74. 搜索二维矩阵

淺唱寂寞╮ 提交于 2020-03-08 09:31:48
题目链接 : https://leetcode-cn.com/problems/search-a-2d-matrix/ 题目描述: 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例: 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 示例 2: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 13 输出: false 思路: 一句话解释: 二维数组转一维,用二分法 详细解释, 二维变成一维,就是按照二维数组顺序,依次变成一维数列,所以有如果一个数在一维坐标位置是 loc ,那么它在二维坐标就是 [loc/col][loc%col] 时间复杂度: \(O(log(mn)) = O(log(m) + log(n))\) 代码: class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: if not matrix:

对一个二维的vector进行排序,让二维vector以包含的数组的第一个数字的大小排序

南笙酒味 提交于 2020-03-06 11:08:55
# include <iostream> # include <vector> # include <algorithm> using namespace std ; /* 对一个二维的vector进行排序,让二维vector以包含的数组的第一个数字的大小排序 */ int main ( ) { vector < vector < int >> ans ; ans . push_back ( { 6 , 7 , 8 } ) ; ans . push_back ( { 5 , 6 } ) ; sort ( ans . begin ( ) , ans . end ( ) , [ ] ( vector < int > a , vector < int > b ) { return a [ 0 ] < b [ 0 ] ; } ) ; return 0 ; } 来源: CSDN 作者: 白月光__编程小萌新 链接: https://blog.csdn.net/burningdzb/article/details/104689758

leetcode240 搜索二维矩阵 II

本秂侑毒 提交于 2020-03-04 21:54:09
题目: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]] 给定 target = 5,返回 true。 给定 target = 20,返回 false。 思路: 二分法。 先获取当前矩阵的最大值和最小值,即左上角的值和右下角的值 为(x1,y1)和(x2,y2)。当x1 = x2 且 y1 = y2时,说明矩阵为一个点。 求mid值,即 ( (x1+x2)/2 , (y1+y2)/2 ) 将mid值与target进行比较,来决定接下来取查询那些范围 · 如果target = mid 说明找到了目标值 · 如果target < mid,说明以mid为最小值的那块矩阵,不会有target, target在其他范围 · 如果target > mid,说明以mid为最大值的那块矩阵里,不会有target, target在其他范围里面 接下来对其他范围进行递归查询 代码: class Solution { public