include

最小生成树(模板+入门题)

点点圈 提交于 2020-04-02 23:39:38
最小生成树 加权图是一种为每条边关联一个权值(可表示成本、时间等)的图模型。这种图能表示许多场景,如航空图中边表示航线,权值表示距离或费用。在航空图中,通常的问题是如何使距离或费用最小化。 我们可以通过加权无向图的最小生成树来解决这个问题。 图的生成树:是它的一颗含有其他所有顶点的无环连通子图。一幅加权无向图的最小生成树(MST)是它的一颗权值最小的生成树(树中所有边的权值之和最小)。 我们会一起学习计算最小生成树的两种经典算法:Prime算法和Kruskal算法。 首先有几个注意点: 只考虑连通图 边的权值可以表示距离、时间、费用或其他变量 边的权重可能是0或负数 所有边的权重都不相同 我们要在一幅加权连通无向图中找到它的最小生成树。 首先定义一下 加权无向图的数据结构 最小生成树算法:Prim算法和Kruskal算法 Prim算法: Prim算法 模板: 1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <string> 5 #include <math.h> 6 #include <algorithm> 7 #include <vector> 8 #include <stack> 9 #include <queue> 10 #include <set> 11 #include

全志Linux Tina编译demoOmxVdec错误

被刻印的时光 ゝ 提交于 2020-04-02 18:28:43
测试裸流 Making install in demoOmxVdec make[6]: Entering directory '/home/liuxueneng/WorkCode/Homlet-Tina-H2_H3/out/dolphin-p1/compile_dir/target/libcedarx/libcedarx/demo/demoOmxVdec' CXX demoOmxVdec-demoOmxVdec.o In file included from ./demoOmxVdec.cpp:12:0: ./OmxCodec.h:4:23: fatal error: OMX_Types.h: No such file or directory compilation terminated. Makefile:576: recipe for target 'demoOmxVdec-demoOmxVdec.o' failed make[6]: *** [demoOmxVdec-demoOmxVdec.o] Error 1 make[6]: Leaving directory '/home/liuxueneng/WorkCode/Homlet-Tina-H2_H3/out/dolphin-p1/compile_dir/target/libcedarx/libcedarx/demo

E - Igor In the Museum

南笙酒味 提交于 2020-04-02 15:02:41
给你一个n*m的方格图表示一个博物馆的分布图. 每个方格上用'*'表示墙,用'.'表示空位. 每一个空格和相邻的墙之间都有一幅画. (相邻指的是上下左右相邻). 你可以从一个空格的位置走到相邻的空格位置. 现在你给你若干个(xi,yi)形式的询问,表示你现在在(xi,yi)这个位置(保证为空位)出发,问你从这个点出发你能看到多少幅画. Input 第一行有3个整数n,m,k(3<=n,m<=1000,1<=k<=min(m*m,100000) ). 接下来有n行每行m个字符,每个字符为'.'或者'*'. 紧接着k行,每行两个整数xi,yi. Output 对于k个询问,输出相应的答案. Examples Input 5 6 3*******..*.********....*******2 22 54 3 Output 6410 Input 4 4 1*****..**.******3 2 Output 8思路:这个题dfs,bfs都可以写,我用的是bfs.博物馆中每个相连的空地可以是一部分,用一个计数器给这些部分做标记,并用vectory存放第几部分可以看到几副画,bfs搜索这些部分可以看到几幅画。bfs时只需要在搜索时遇到墙了就ans加一。注意题目给出的数很大,注意超时。 1 #include <cstdio> 2 #include <fstream> 3 #include

STL中vector的初始化

我与影子孤独终老i 提交于 2020-04-02 07:36:36
vector可用于代替C++中的数组,一般一致认为应该多用vector,因为它的效率更高,而且具备很好的异常安全性。而且vector是STL推荐使用的默认容器,STL中向量是使用数组实现的,因此向量具有顺序表的特点,可以快速随机存取数据。向量是一种数据类型的对象的集合,每个对象根据其位置有一个整数索引值与其对应,类似于数组。 使用向量之前,必须包含相应的头文件: #include<vector> using std::vector 同时也应当注意,vector是一个模板类,而非数据类型。所以在定义对象时必须说明vector保存的对象类型。以下给出一些初始化的例子: 1 vector<int> v; //定义向量对象 2 vector<int> v(v1); //定义向量对象v,并且用v1初始化 3 vector<int> v2(n,i); //定义向量对象v2,包含了n个值为i的元素 4 vector<int> v3(n); //定义向量对象v3,其中包含了n个元素值为0的元素 接着介绍一种使用数组初始化向量元素的方式,这种方式在刷题时非常常见,有必要掌握: 1 #include "stdafx.h" 2 #include <stdio.h> 3 #include <string.h> 4 #include <iostream> 5 #include <vector> 6

1D1D动态规划优化初步

℡╲_俬逩灬. 提交于 2020-04-02 05:22:49
再学习一下动态规划的基本优化方法… 首先这篇文章应该大家都看过吧…没看过的自行百度 关于实现的思路文章里都给好了…这篇就主要给一点题目啥的 (P.S. 电脑重装了,如果博客发出来有一些奇怪的问题不要在意) 模型一,即决策单调性优化 ①玩具装箱 bzoj1010 题目自己看去 用dp[x]表示装前x个的最小费用,sum[x]表示C的前缀和。 可以发现dp[i]=min{dp[j]+(i-j+sum[i]-sum[j]-1-L)^2} (0<=j<i) 这样似乎还是不够美观,我们令p[i]=i+sum[i],g=L+1。 dp[i]=min{dp[j]+(p[i]-p[j]-g)^2} (0<=j<i) 美观了一点… 这样硬肛是O(n^2)的,感觉很不兹磁啊… 首先:四边形不等式 当函数w(i,j)满足w(a,c)+w(b,d)<=w(b,c)+w(a,d)且a<=b<c<=d时我们称w(i,j)满足四边形不等式。 假如我们用w(j,i)表示(p[i]-p[j]-g)^2,那么(打表)可以发现w是满足四边形不等式的。 什么?讲道理? w(a,c)+w(b,d)-w(b,c)-w(a,d)=2g(p[c]-p[a]+p[d]-p[b]-p[c]+p[b]-p[d]+p[a])+p[a]^2+p[c]^2+p[b]^2+p[d]^2-p[b]^2-p[c]^2-p[a]^2-p[d]^2

kd-Tree 【专题@AbandonZHANG】

半腔热情 提交于 2020-04-02 03:34:58
刚开始学习,介绍先搁着~等理解透彻了再来写~~~ 我是学习的mzry1992(UESTC_Izayoi ~)------ http://www.mzry1992.com/blog/miao/kd%E6%A0%91.html 先去看mzry1992大牛博客里的讲解吧。。。 再附两篇论文:(看英文看得好爽。。。~@.@) 《An intoductory tutorial on kd-trees》  ★(里面就介绍了kd-tree和nearest neighbour algorithm(最近邻算法)、Q nearest neighbour(Q近邻) ) 《Range Searching Using Kd-Tree.》 kd-tree入门题:    HDOJ 2966 In case of failure (最近邻,模板~)   查找平面点最近点的距离(此题中是距离的平方) /* HDOJ 2966 KD-Tree模板 */ #include #include #include #include #include #include #include #include #include #include #include #define MID(x, y) ( (x + y)>>1 ) using namespace std; typedef long long LL; //KD

C2143: 语法错误 C4430: 缺少类型说明符 - 假定为 int 原因是没有包含头文件(含糊不清,以备查)

我与影子孤独终老i 提交于 2020-04-01 08:32:48
1>e:\最新_carinfo_能运行_修改后\trunk\vss\inc\ccarinfoadd.h(96) : error C2143: 语法错误 : 缺少“;”(在“*”的前面) 1>e:\最新_carinfo_能运行_修改后\trunk\vss\inc\ccarinfoadd.h(96) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>e:\最新_carinfo_能运行_修改后\trunk\vss\inc\ccarinfoadd.h(96) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 当工程比较大时,包含很多时,我现在的体会是.h里定义的对象,可以把包含在stdafx.h里这样(不用包含在.h里,在cpp里有#include"stdafx.h",可以自动在头文件里识别): // stdafx.h : 标准系统包含文件的包含文件, // 或是经常使用但不常更改的 // 特定于项目的包含文件 #pragma once #ifndef VC_EXTRALEAN #define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料 #endif // 如果必须将位于下面指定平台之前的平台作为目标,请修改下列定义。 //

DirectShow配置问题

别说谁变了你拦得住时间么 提交于 2020-04-01 08:28:20
首先我安装的是Microsoft DirectX 9.0 SDK (Summer 2004),并且还得安装。net版本才能编译并进行第一步配置。 下面是配置过程: 1,使用VC向导生成一个具体项目,如Win32 Dynamic-Link; 2,包含头文件streams.h; 3,在VC的菜单中选择Project|Settings|C/C++,在弹出的对话框中的Category中选择Code generation,然后在Calling convention中选择_stdcall; 4,使用多线程语言运行时库,即在VC的菜单中选择Project|Settings|C/C++,在弹出的对话框中的Category中选择Code generation,然后在Use run-time library中,Debug版选择Debug Multithreaded,Release版选择Multithreaded。 5,配置必要的链接库文件,即在VC的菜单中选择Project|Settings|Link,在弹出的对话框中的Category中选择General,然后在Object/library modules中输入如下代码: Debug版本 strmbasd.lib, msvcrtd.lib, winmm.lib Release版本 strmbase.lib, msvcrt.lib, winmm.lib

Django 子程序

泄露秘密 提交于 2020-04-01 06:36:47
在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。 Django的视图编写是放在子应用中的 创建子应用   python manage.py startapp 子应用名称 #manage.py是创建工程时自动生成的管理文件   admin.py 文件跟网站的后台管理站点配置相关。   apps.py 文件用于配置当前子应用的相关信息。   migrations 目录用于存放数据库迁移历史文件。   models.py 文件用户保存数据库模型类。   tests.py 文件用于开发测试用例,编写单元测试。   views.py 文件用于编写Web应用视图。 注册安装子应用   创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。   在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,初始工程中的INSTALLED_APPS如下:    添加好应用后在子应用程序内创建好设定路由文件,路由文件名可以自定义 路由文件: from django.urls import path,re

Codeforces Round #570 (Div. 3)

穿精又带淫゛_ 提交于 2020-04-01 04:29:31
E. Subsequences (easy version) 本题和H题唯一的不同点是数据范围。 你有一个长度为 n n的字符串。你可以选择它的任意一个子序列。子序列定义为可以将这个字符串删去若干个字符得到。特别的,空串也是一个子序列。 对于一个长度为 m m的子序列,选出它的花费是 n-m n − m,也就是你需要删掉的字符数量。 你的任务是选出来 k k个本质不同的子序列,使得总花费最小。输出这个最小花费。 如果选不出 k k个,输出 -1 − 1。 思路: 因为本题的数据量比较小,所以我们可以采取BFS去模拟整个的过程。 利用bfs与set结合,队列存储当前字符串,每次删除一个字符,若set不存在,更新队列与set。 bfs先从删除少的字符串开始,保证了代价最小效率最优。 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 5 #include <set> 6 #include <queue> 7 8 #define LL long long 9 using namespace std; 10 const int MAXN = 200005; 11 12 int n,k; 13 set<string> st; 14 queue<string> q; 15