rl

Array Transformer(分块)

前提是你 提交于 2020-01-17 17:08:19
题目大意: 给定一个长度为 n n n 的序列和 m m m 次操作,每次操作设 a n s ans a n s 为在 [ l , r ] [l,r] [ l , r ] 中严格效益v的数的个数,将 a [ p ] a[p] a [ p ] 改为 ( k ∗ a n s ) / ( r − l + 1 ) (k*ans)/(r-l+1) ( k ∗ a n s ) / ( r − l + 1 ) 题解: 可以将操作分为两步: 1.求ans 2.更改数值 分块,块内有序,便于查询ans,更改后与左右进行交换,保证块内有序。 例如,读入完所有的数,用一个 b o l c k bolck b o l c k 数组存下来,排序,就达到了块内有序的要求 for ( int i = 1 ; i <= n ; i ++ ) { scanf ( "%d" , & b [ ( i - 1 ) / block + 1 ] [ ++ b [ ( i - 1 ) / block + 1 ] [ 0 ] ] ) ; a [ i ] = b [ ( i - 1 ) / block + 1 ] [ b [ ( i - 1 ) / block + 1 ] [ 0 ] ] ; } 其次,查询。 如果l,r在一个块内,直接查整个块;否则,把两边的残余块先查了,中间的完整的块就直接lower_bound即可。 int

通过应用程序域AppDomain加载和卸载程序集

▼魔方 西西 提交于 2020-01-14 13:24:04
微软装配车的大门似乎只为货物装载敞开大门,却将卸载工人拒之门外。车门的钥匙只有一把,若要获得还需要你费一些心思。我在学习Remoting的时候,就遇到一个扰人的问题,就是Remoting为远程对象仅提供Register的方法,如果你要注销时,只有另辟蹊径。细心的开发员,会发现Visual Studio.Net中的反射机制,同样面临这个问题。你可以找遍MSDN的所有文档,在Assembly类中,你永远只能看到Load方法,却无法寻觅到Unload的踪迹。难道我们装载了程序集后,就不能再将它卸载下来吗? 想一想这样一个场景。你通过反射动态加载了一个dll文件,如今你需要在未关闭程序的情况下,删除或覆盖该文件,那么结果会怎样?很遗憾,系统会提示你无法访问该文件。事实上该文件正处于被调用的状态,此时要对该文件进行修改,就会出现争用的情况。 显然,为程序集提供卸载功能是很有必要的,但为什么微软在其产品中不提供该功能呢?CLR 产品单元经理(Unit Manager) Jason Zander 在文章 Why isn't there an Assembly.Unload method? 中解释了没有实现该功能的原因。Flier_Lu在其博客里( Assembly.Unload )有详细的中文介绍。文中介绍了解决卸载程序集的折中方法。Eric Gunnerson在文章《 AppDomain

深度强化学习泡沫及路在何方?

泄露秘密 提交于 2020-01-10 15:52:00
一、深度强化学习的泡沫 2015年,DeepMind的Volodymyr Mnih等研究员在《自然》杂志上发表论文Human-level control through deep reinforcement learning[1],该论文提出了一个结合深度学习(DL)技术和强化学习(RL)思想的模型Deep Q-Network(DQN),在Atari游戏平台上展示出超越人类水平的表现。自此以后,结合DL与RL的深度强化学习(Deep Reinforcement Learning, DRL)迅速成为人工智能界的焦点。 过去三年间,DRL算法在不同领域大显神通:在视频游戏[1]、棋类游戏上打败人类顶尖高手[2,3];控制复杂的机械进行操作[4];调配网络资源[5];为数据中心大幅节能[6];甚至对机器学习算法自动调参[7]。各大高校和企业纷纷参与其中,提出了眼花缭乱的DRL算法和应用。可以说,过去三年是DRL的爆红期。DeepMind负责AlphaGo项目的研究员David Silver喊出“AI = RL + DL”,认为结合了DL的表示能力与RL的推理能力的DRL将会是人工智能的终极答案。 RL论文数量迅速增长[8] 1.1 DRL的可复现性危机 然而,研究人员在最近半年开始了对DRL的反思。由于发表的文献中往往不提供重要参数设置和工程解决方案的细节,很多算法都难以复现

最长回文子串--力扣

吃可爱长大的小学妹 提交于 2020-01-10 04:10:33
5种解法: 1.最长公共子串 2.暴力法 3.动态规划 4.中心扩展法 5.Manacher法 以下记录大佬题解: 算法: 什么叫回文串? 如果一个字符串正着读和反着读是一样的,那它就是回文串。 中心扩展算法 我们观察到回文中心的两侧互为镜像。因此,回文可以从它的中心展开,并且只有 2n - 1 个这样的中心。 你可能会问,为什么会是 2n - 1 个,而不是 n 个中心? 因为回文的中心要区分单双。 假如回文的中心为 双数,例如 abba,那么可以划分为 ab bb ba,对于n长度的字符串,这样的划分有 n-1 种。 假为回文的中心为 单数,例如 abcd, 那么可以划分为 a b c d, 对于n长度的字符串,这样的划分有 n 种。 对于 n 长度的字符串,我们其实不知道它的回文串中心倒底是单数还是双数,所以我们要对这两种情况都做遍历,也就是 n+(n-1) = 2n - 1,所以时间复杂度为 O(n)。 当中心确定后,我们要围绕这个中心来扩展回文,那么最长的回文可能是整个字符串,所以时间复杂度为 O(n)。 所以总时间复杂度为 O(n^2) 代码如下: string longestPalindrome(string s) { if (s.length() < 1) { return ""; } int start = 0, end = 0; for (int i = 0;

asp.net 获取访问的url

我是研究僧i 提交于 2020-01-07 21:47:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> HttpContext.Current.Request.Url.ToString() 并不可靠。 如果当前URL为 http://localhost/search.aspx?user=http://csharp.xdowns.com&tag=%BC%BC%CA%F5 通过HttpContext.Current.Request.Url.ToString()获取到的却是 http://localhost/search.aspxuser=http://csharp.xdowns.com&tag=¼¼Êõ ; 正确的方法是:HttpContext.Current.Request.Url.PathAndQuery1、通过ASP.NET获取 如果测试的url地址是 http://www.test.com/testweb/default.aspx , 结果如下: Request.ApplicationPath: /testweb Request.CurrentExecutionFilePath: /testweb/default.aspx Request.FilePath: /testweb/default.aspx Request.Path: /testweb/default.aspx Request

截取访问连接的url

眉间皱痕 提交于 2020-01-06 15:05:41
getRequest() { var url = window.location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if(url.indexOf("?") != -1) { var str = url.substr(1); //alert(str); strs = str.split("&"); for(var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]); //获取中文参数转码<span style="font-family: Arial, Helvetica, sans-serif;">decodeURI</span>,(unescape只针对数字,中文乱码) } } return theRequest; }, xiangqing(){ //通过url取数 var request = new Object(); request = this.getRequest(); var id = request['id']; axios.get(this.ip + '/xinwen/getzhaopinbyid', { params: { id: id } }

59. Spiral Matrix && Spiral Matrix II

南楼画角 提交于 2019-12-28 02:00:55
Spiral Matrix Given a matrix of m x n elements ( m rows, n columns), return all elements of the matrix in spiral order. For example, Given the following matrix: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] You should return [1,2,3,6,9,8,7,4,5] . 思路: 可参考 剑指offer :题20 class Solution { public: vector<int> spiralOrder(vector<vector<int> > &matrix) { vector<int> vec; if(!matrix.size() || !matrix[0].size()) return vec; int row = matrix.size(), col = matrix[0].size(); int rl = 0, rh = row-1, cl = 0, ch = col-1; while(rh >= rl && ch >= cl) { for(int c = cl; c <= ch; ++c) vec.push_back(matrix[rl][c]); if(

分裂基快速傅里叶变换

做~自己de王妃 提交于 2019-12-28 01:58:44
一、功能 计算复序列的分裂基快速傅里叶变换。 二、方法简介 序列 \(x(n)(n=0,1,...,N-1)\) 的离散傅里叶变换定义为 \[ X(k)=\sum_{n=0}^{N-1}x(n)W_{N}^{nk}, \qquad k=0,1,...,N-1 \] 其中 \(W_{N}^{nk}=e^{-j\frac{2\pi nk}{N}}\) ,将 \(X(k)\) 按序号 \(k\) 的奇偶分成两组。当 \(k\) 为偶数时,进行基2频率抽取分解, \(X(k)\) 可表示为 \[ X(2k)=\sum_{n=0}^{N/2-1}[x(n)+x(n+\frac{N}{2})]W_{N}^{2nk} \ , \ k=0,1,...,\frac{N}{2}-1 \] 当 \(k\) 为奇数时进行基4 频率抽取分解,$ X(k)$可表示为 \[ \left\{\begin{matrix}X(4k+1)=\sum_{n=0}^{N/4-1}{[x(n)-x(n+\frac{N}{2})]-j[x(n+\frac{N}{4})-x(n+\frac{3N}{4})]}W_{N}^{n}W_{N}^{4nk}\\ X(4k+3)=\sum_{n=0}^{N/4-1}{[x(n)-x(n+\frac{N}{2})]+j[x(n+\frac{N}{4})-x(n+\frac{3N}{4})]

AVL树之 Java的实现

假装没事ソ 提交于 2019-12-22 01:50:20
AVL树的介绍 AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。 上面的两张图片,左边的是AVL树,它的任何节点的两个子树的高度差别都<=1;而右边的不是AVL树,因为7的两颗子树的高度相差为2(以2为根节点的树的高度是3,而以8为根节点的树的高度是1)。 AVL树的Java实现 1. 节点 1.1 节点定义 public class AVLTree<T extends Comparable<T>> { private AVLTreeNode<T> mRoot; // 根结点 // AVL树的节点(内部类) class AVLTreeNode<T extends Comparable<T>> { T key; // 关键字(键值) int height; // 高度 AVLTreeNode<T> left; // 左孩子 AVLTreeNode<T> right; // 右孩子 public AVLTreeNode(T key, AVLTreeNode<T> left, AVLTreeNode<T> right) { this.key = key; this.left = left; this.right = right; this.height = 0; } } ...... } AVLTree是AVL树对应的类

深度强化学习泡沫及路在何方?

一笑奈何 提交于 2019-12-17 02:24:48
一、深度强化学习的泡沫 2015年,DeepMind的Volodymyr Mnih等研究员在《自然》杂志上发表论文Human-level control through deep reinforcement learning[1],该论文提出了一个结合深度学习(DL)技术和强化学习(RL)思想的模型Deep Q-Network(DQN),在Atari游戏平台上展示出超越人类水平的表现。自此以后,结合DL与RL的深度强化学习(Deep Reinforcement Learning, DRL)迅速成为人工智能界的焦点。 过去三年间,DRL算法在不同领域大显神通:在视频游戏[1]、棋类游戏上打败人类顶尖高手[2,3];控制复杂的机械进行操作[4];调配网络资源[5];为数据中心大幅节能[6];甚至对机器学习算法自动调参[7]。各大高校和企业纷纷参与其中,提出了眼花缭乱的DRL算法和应用。可以说,过去三年是DRL的爆红期。DeepMind负责AlphaGo项目的研究员David Silver喊出“AI = RL + DL”,认为结合了DL的表示能力与RL的推理能力的DRL将会是人工智能的终极答案。 RL论文数量迅速增长[8] 1.1 DRL的可复现性危机 然而,研究人员在最近半年开始了对DRL的反思。由于发表的文献中往往不提供重要参数设置和工程解决方案的细节,很多算法都难以复现