Codeforces Round #345 (Div. 1) C. Table Compression

原题C. Table Compressiotime limit per tes4 secondmemory limit per tes256 megabyteinpustandard inpuoutpustandard outpuLittle Petya is now fond of data compression algorithms. He has already studied gz, bz, zip algorithms and many others. Inspired by the new knowledge, Petya is now developing the new compression algorithm which he wants to name dis.Petya decided to compress tables. He is give...阅读全文

扎克伯格把钢铁侠的智能助手造出来了,说句话就能控制整个豪宅!

Facebook 创始人马克·扎克伯格是一个喜欢挑战自己的人。2015 年,他立志每周都读一本新书。而今年,他给自己的挑战更加有技术含量:搭建一个人工智能系统,就像《钢铁侠》里的 “Jarvis” 那样,理解语音/文字指令,去控制家里所有的电器…你猜怎么样?他还真完成了。今天扎克伯格专门发了一篇博文,详细介绍 Jarvis 是怎样搭建起来的。这台 Jarvis “人工智能电脑”能做的事情,其实已经远超过市面上任何一个同类或类似产品:它支持文字和语音指令,能控制空调温度高低、调整灯光明暗,也能从网上搜歌自动播放,还能烤面包、给他家迷之画风的“野兽”自动喂食。就是这坨跟墩布一样的东西…而且大家都知道,扎克伯格在时尚方面非常省事儿,一年到头就是一件灰色的 T 恤——不知道的是他连“从衣柜里拿出 T 恤”的功夫都省了!因为他组装了一门大炮,用 Jarvis 控制,每天早上接收命令朝他打出一件新...阅读全文

深度优先搜索之栈解迷宫(C++)

在之前的一篇关于搜索的文章中《广度优先搜索算法队解迷宫问题》有提到深度优先搜索(dfs)算法,其中有一种就是本篇文章提到的实现方法:利用栈解迷宫;《广度优先搜索算法队解迷宫问题》中利用栈解迷宫有一个bug,比如:在x点出发,向右走直到尽头回到x点,此时在向其他方向(比如上),那么不能再走曾经向右走过的路(坐标)。这次,我们增加一个direct_mark数组,来标记在每一个坐标上曾经走过的方向。程序范例时间复杂度在一个m*n的迷宫中,最糟糕的情况是每个点的四个方向均探索了,即o(m*n文章来源:胡旭博客 => 深度优先搜索之栈解迷宫(C转载请注明出处,违者必究阅读全文

分治法解矩阵乘积

题目假设有A,B两个矩阵,且其均为n*n维矩阵,n为2的幂(n>=2)。求A与B的乘积。通过上图我们可以看到书中的利用分治法解决的伪代码。解决思路一暴力解法时间复杂度O(n^3程序范例解决思路二利用分治法解决矩阵乘积程序范例时间复杂度其时间复杂度不等式为:T(n) = 8*T(n/2) + Θ(n^2),所以其时间复杂度为O(n^3测试假设A,B均为521*521的矩阵,并利用0-99的随机数初始化。分别利用暴力解法和分治法进行求解。程序如下测试结果# ./a.out :( ...阅读全文

PHP函数篇十进制、二进制、八进制和十六进制转换函数说明

一,十进制(decimal system)转换函数说明1,十进制转二进制 decbin() 函数,如下实例echo decbin(12); //输出 110echo decbin(26); //输出 1101decbi(PHP 3, PHP 4, PHP 5decbin -- 十进制转换为二进制说明string decbin ( int number 返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。2,十进制转八进制 decoct() 函数echo decoct(15); //输出 1echo decoct(264); //输出 41decoc(PHP 3, PHP 4, PHP 5decoct -- 十进制转换为八进制说明string decoct ( int number ...阅读全文

动态规划解决最大子数组问题

问题Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [−2,1,−3,4,−1,2,1,−5,4]the contiguous subarray [4,−1,2,1] has the largest sum = 6.问题来自于Leetcode:Maximum Subarra解决方式利用动态规划思想来解决最大子数组问题。之前的文章有写过有关动态规划的思路。如果你对动态规划不清楚可以通过这篇文章来简单了解下,里面有相应的视频还是不错的:拆分集合为两个和相等的子集合问题(动态规划)。该方法相对于分治法策略解决最大子数组问题来解决的时间复杂度中会有很大提升。时间复杂度O(n程序范例...阅读全文

分治法策略解决最大子数组问题

问题描述Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [−2,1,−3,4,−1,2,1,−5,4]the contiguous subarray [4,−1,2,1] has the largest sum = 6.问题来自于Leetcode:Maximum Subarra解决方式利用分治策略来解决最大子数组问题时间复杂度O(nlgn程序范例总结分治法的主要细想即三部曲:分解(divide)、解决(conquer)与合并(combine)。掌握大致这三个步骤,再加上对递归的使用,即可利用分治策略来解决一些问题。这样往往时间复杂度会比暴力解决问题效率高的多。对于分治法...阅读全文

Linux常用命令

操作系统命令uname -a #查看内核/操作系统/CPU信息head -n 1 /etc/issue #查看操作系统版本cat /proc/cpuinfo #查看CPU信息hostname #查看计算机名lspci -tv #列出所有PCI设备lsusb -tv #列出所有USB设备lsmod #列出加载的内核模块env #查看环境变量文件/IO资源命令free -m #查看内存使用量和交换区使用量df -h #查看各分区使用情况du -sh <目录名> #查看grep MemTotal /proc/meminfo #查看内存总量grep MemFree /proc/meminfo #查看空闲内存量uptime #查看系统运行时间、用户数、负载cat /proc/loadavg #查看系统负载mount | column -t #查看挂接的分区状态fdisk -l #查看所有分区...阅读全文

LeetCode OJ Algorithm – Sliding Window Maximum(hard)

原题Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position.For exampleGiven nums = [1,3,-1,-3,5,3,6,7], and k = 3.Window position Ma--------------- ----[1 3 -1] -3 5 3 6 7 1 [3 -1 -3]...阅读全文

LeetCode OJ Algorithm – reverse linked list ii (medium)

原题Reverse a linked list from position m to n. Do it in-place and in one-pass.For exampleGiven 1->2->3->4->5->NULL, m = 2 and n = 4return 1->4->3-&gNoteGiven m, n satisfy the following condition1 ≤ m ≤ n ≤ length of list.地址https://leetcode.com/problems/reverse-linked-list-ii程序范例时间复杂度O(n^3文章来源:胡旭博客 => LeetCode OJ Algorithm - reverse linked list ii (medium转载请注明出处,违者必究阅读全文

小型网站架构降低Apache与MySQL内存占用比率

前言这是一篇极其没有营养的文章,那么请问“什么还要写?”,正所谓“不积跬步无以至千里,不积小流无以成江海”,难得学习与总结。而且,并不一定每篇文章都需要长篇大论、“看似高深”,最后网友看后毫无感觉。这篇文章以我的阿里云服务器为例(你眼前的博客正是搭在这个服务器上),阐述下小型网站(Linux+Apache+MySQL+PHP)对于内存利用率提升的配置方法的一个点。正文我的服务器是阿里云的,在一年前由于数据库(MySQL)频繁内存不足宕机就“潇洒”地升级了配置到2G内存。所以,目前机器的配置如下CPU: 1核内存: 2048 M操作系统: CentOS 6.5 32位公网IP: 115.28.36.1带宽计费方式: 按固定带宽当前使用带宽: 1Mbp同时,正常使用情况下的内存使用情况如下图中显示MySQL占用440m,Apache占用44m。当然,这是MySQL服务和Apache服...阅读全文

程序员高级装逼指南

前言:本片文章摘自阿里云论坛,个人认为牛逼的程序员一定不能这个样子。不过,为什么本文确实大部分程序员的真实写照呢?何等悲哀首先准备工作, “工欲善其事必先利其器。”双屏电脑:电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好。一个用来查资料,一个用来写代码 。总之要显得信息量很大,效率很高。椅子不一定要舒服,但是一定要可以半躺着。大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善。沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子。从进门开始着装!着装初级装:衬衣+牛仔裤+休闲鞋中级装:T恤+宽松短裤+拖鞋。高级装:背心+宽松大花裤衩+人字拖。得体的举止。在走廊以及任何形式的过道里,一定要双手插兜,走得像个痞子,至少要看起来有点反社会。如若不行,可走文弱天才型geek路线。坐下就不要再动了坐下以后,姿势需要略微后仰,能翘着二郎腿最好了,然后在后仰的情况下...阅读全文

Google全球开发者网站落地中国域名

前几天,看到微信公众号推送的文章,区区几个字母就吸引了我。“http::/developers.google.cn”。百度了解,Google开发者大会于12月8日和12月14日分别在北京和上海举办。这是2011年Google在中国举办开发者大会之后的再次回归。Google今天在北京举办的这场开发者大会上搞了个大新闻,Google官方宣布,Google Developers中国网站 (developers.google.cn) 正式发布!网站提供所有 Google 开发者所需要的内容,包括 Android SDK、Android Studio、搜索、地图、Chrome 等产品的 API。 再细分一下,这次上线的 cn 结尾的 Google 网站有三个,分别是 developers.google.cn , developer.android.google.cn , firebase.googl...阅读全文