const

BZOJ 2707: [SDOI2012]走迷宫( tarjan + 高斯消元 )

本小妞迷上赌 提交于 2020-02-28 09:09:33
数据范围太大不能直接高斯消元, tarjan缩点然后按拓扑逆序对每个强连通分量高斯消元就可以了. E(u) = 1 + Σ E(v) / degree(u) 对拍时发现网上2个程序的INF判断和我不一样(他们2个的INF判断也不一样).....然而都A掉了....我觉得应该是他们写错了,我的做法应该没错的(正反2遍dfs,GDOI2015day1t1大冒险)(求打脸 ------------------------------------------------------------------------ #include<cmath> #include<stack> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn = 10009; const int maxb = 209; const double eps = 1e-8; int N, S, T, deg[maxn]; int dfn[maxn], low[maxn], sz[maxn], CK; int scc[maxn], Scc[maxn][maxb], Id[maxn], n; bool F[maxn]; stack<int> stk; double ans[maxn], mat

OSG 添加读写类别 要点记录

a 夏天 提交于 2020-02-28 08:19:58
源码文件夹中 osgPlugins 文件夹中, 每个子文件夹都有一个CMakeLists.txt 把文件名放到SET(TARGET_SRC下面 osgPlugins目录下有个CMakeLists.txt 添加一行: ADD_PLUGIN_DIRECTORY(...) REGISTER_OSGPLUGIN(扩展名, 类名) 这句不能写在.h文件中 必须写在cpp文件中, 否则出现重定义错误 需要文件读取的话, 需要重写这个接口函数: virtual ReadResult readNode(const std::string&, const Options*) const; 来源: oschina 链接: https://my.oschina.net/u/235558/blog/3158061

对象的新增方法

巧了我就是萌 提交于 2020-02-28 07:10:09
本文为学习笔记; 原文链接 <<<<转载请注明原文出处! Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符( == )和严格相等运算符( === )。它们都有缺点,前者会自动转换数据类型,后者的 NaN 不等于自身,以及 +0 等于 -0 。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。 ES6 提出“Same-value equality”(同值相等)算法,用来解决这个问题。 Object.is 就是部署这个算法的新方法。它用来比较两个值是否严格相等,与严格比较运算符( === )的行为基本一致。 Object.is('foo', 'foo') // true Object.is({}, {}) // false 不同之处只有两个:一是 +0 不等于 -0 ,二是 NaN 等于自身。 +0 === -0 //true NaN === NaN // false Object.is(+0, -0) // false Object.is(NaN, NaN) // true ES5 可以通过下面的代码,部署 Object.is 。 Object.defineProperty(Object, 'is', { value: function(x, y) { if (x === y) { // 针对+0 不等于 -0的情况

C/C++中的变量与常量

删除回忆录丶 提交于 2020-02-28 06:15:11
C/C++中的变量 在定义变量时,C与C++ 有明显的区别。这两种语言都要求变量使用前必须定义,但是C(和许多其他传统过程语言)强制在作用域的开始处就定义所有的变量,以便在编译器创建一个块时,能够给所有的这些变量分配空间。(这个说法已经是老皇历了,现在的编译器即使是不在开始处定义变量也是可以做优化的,所以写C程序时完全可以像C++那样在任何方便的地方定义变量)。在C/C++中变量与函数在内存中是分开存放的。 全局变量 全局变量时在所有函数体的外部定义的,程序的所有部分(甚至其他文件中的代码)都可以使用。全局变量不受作用域的影响,总是可用的(即全局变量的生命期一直到程序的结束)。如果在一个文件中使用extern关键字来声明另一个文件中存在的全局变量,那么这个文件可以使用这个数据。全局变量会被分配在内存的堆上。 局部变量 局部变量出现在一个作用域内,是局限于一个函数的。局部变量经常被称为自动变量(automatic variable),因为是进入作用域时自动生成,离开作用域时候自动消失。关键字auto可以显示的说明这个问题,但是局部变量默认为auto,所以没有必要声明为auto。局部变量的内存中会被放在栈上。 寄存器变量:是一种局部变量。关键字register告诉编译器“尽可能快地访问这个变量”。加快访问速度取决于实现,但是,正如名字所暗示的那样子

静态常量字符串(类成员)

白昼怎懂夜的黑 提交于 2020-02-28 06:10:01
我想要一个类的私有静态常量(在这种情况下是形状工厂)。 我想要些类似的东西。 class A { private: static const string RECTANGLE = "rectangle"; } 不幸的是,我从C ++(g ++)编译器中收到各种错误,例如: ISO C ++禁止初始化成员“ RECTANGLE” 非整数类型'std :: string'的静态数据成员的无效的类内初始化 错误:将“ RECTANGLE”设为静态 这告诉我,这种成员设计不符合该标准。 您如何在没有使用#define指令的情况下拥有私有文字常量(或也许是公共的)(我想避免数据全局性的丑陋!) 任何帮助表示赞赏。 #1楼 您必须在类定义之外定义静态成员,然后在其中提供初始化程序。 第一 // In a header file (if it is in a header file in your case) class A { private: static const string RECTANGLE; }; 然后 // In one of the implementation files const string A::RECTANGLE = "rectangle"; 您最初尝试使用的语法(类定义内的初始化程序)仅适用于整数和枚举类型。 从C ++ 17开始,您还有另一个选择

学习ES7+ES8

霸气de小男生 提交于 2020-02-28 06:03:30
es6 语法:http://es6.ruanyifeng.com/#docs/async 作者: 阮一峰 撰文为何 身为一个前端开发者,ECMAScript(以下简称ES)早已广泛应用在我们的工作当中。了解ECMA机构流程的人应该知道,标准委员会会在每年的6月份正式发布一次规范的修订,而这次的发布也将作为当年的正式版本。以后的改动,都会基于上一版本进行修改。所以,我们这次就基于ES6的版本对ES7、ES8版本的新增以及修改内容,做一次简要的总结,方便我们快速开发。 ES7新特性 ES7在ES6的基础上添加了三项内容: 求幂运算符(**) 、 Array.prototype.includes() 方法、函数作用域中严格模式的变更。 Array.prototype.includes()方法 includes() 的作用,是查找一个值在不在数组里,若在,则返回 true ,反之返回 false 。 基本用法: ['a', 'b', 'c'].includes('a') // true ['a', 'b', 'c'].includes('d') // false Array.prototype.includes() 方法接收两个参数: 要搜索的值和搜索的开始索引 。当第二个参数被传入时,该方法会从索引处开始往后搜索(默认索引值为0)。若搜索值在数组中存在则返回 true ,否则返回

Next框架基础

て烟熏妆下的殇ゞ 提交于 2020-02-28 04:56:11
老规矩:脚手架快速搭建基本环境。很多都是重复的,所以省了很多代码。 路径跳转两种方式: 1.link标签式跳转。 2.Router跳转,可把方法分离出来。 import React from 'react' import Link from 'next/link' import Router from 'next/router' const Home = () => { function gotoA(){ Router.push('/jspangA') } return( <> <div>我是首页</div> <div> <Link href="/jspangA"> <a> <span>去JspangA页面</span> <span>前端博客</span> </a> </Link> </div> <div><Link href="/jspangB"><a>去JspangB页面</a></Link></div> <div> <button onClick={gotoA}>去JspangA页面</button> </div> </> ) } export default Home 传递参数通过query(?id=1),通过router.query.属性名,通过以下代码展示: import React from 'react' import Link from 'next/link'

Linux下exec函数族详解

筅森魡賤 提交于 2020-02-28 04:50:32
对于exec函数族来说,它的作用通俗来说就是使另一个可执行程序替换当前的进程,当我们在执行一个进程的过程中,通过exec函数使得另一个可执行程序A的数据段、代码段和堆栈段取代当前进程B的数据段、代码段和堆栈段,那么当前的进程就开始执行A中的内容,这一过程中不会创建新的进程,而且PID也没有改变。 一般exec函数族的用途有以下两种: 1. 当进程不需要再往下继续运行时,调用exec函数族中的函数让自己得以延续下去。 2. 如果当一个进程想执行另一个可执行程序时,可以使用fork函数先创建一个子进程,然后通过子进程来调用exec函数从而实 现可执行程序的功能。 通过man命令来看一下exec函数族: 首先exec并不是一个函数名,之所以叫函数族就说明它有很多个不同的函数,但是这些函数的功能是一样的,只不过参数不同使用的方式也略不相同。那么在man命令下看到的exec函数原型是这样的: #include <unistd.h> extern char **environ; int execl(const char *path, const char *arg, .../* (char *) NULL */); int execlp(const char *file, const char *arg, .../* (char *) NULL */); int execle(const

ES6入门(七) 数组的扩展

≯℡__Kan透↙ 提交于 2020-02-28 04:34:10
数组的扩展 1.复制数组 扩展运算符提供了复制数组的简便写法。 const a1 = [1, 2]; // 写法一 const a2 = [...a1]; 2. 合并数组 扩展运算符提供了数组合并的新写法。 const arr1 = ['a', 'b']; const arr2 = ['c']; const arr3 = ['d', 'e']; // ES5 的合并数组 arr1.concat(arr2, arr3); // [ 'a', 'b', 'c', 'd', 'e' ] // ES6 的合并数组 const newArr = [...arr1, ...arr2, ...arr3] console.log(newArr) // [ 'a', 'b', 'c', 'd', 'e' ] 3.Array.from() Array.from 方法用于将两类对象转为真正的数组 类数组对象的属性名必须为数值型或字符串型的数字,要将一个类数组对象转换为一个真正的数组,必须具备以下条件: 1、该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组 2、该类数组对象的属性名必须为数值型或字符串型的数字 该类数组对象的属性名可以加引号,也可以不加引号 const obj = { 0: 1, 1: '22', 2: false,

[Security] Web Security Essentials

烈酒焚心 提交于 2020-02-28 04:25:04
In this course, we'll learn how to exploit and then mitigate several common Web Security Vulnerabilities: Man in the Middle (MITM), Cross Site Request Forgery (CSRF), and Cross Site Scripting (XSS). The goal of this course is to introduce you to these attacks from the point of view of an attacker, and then as the defender of a sample application, and to gain first hand experience with how these attacks works. You'll also learn several security "rules of thumb" along the way and discover modern defenses against these attacks that drastically reduce their likelihood of succeeding! By the end of