一、apache服务的基本配置
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器
执行如下命令进行apache服务的配置
.[root@localhost ~]# yum install httpd -y #安装apache服务
[root@localhost ~]# systemctl start httpd #打开apache服务
[root@localhost ~]# netstat -antuple | grep httpd #查看apache的网络端口信息
tcp6 0 0 :::80 :::* LISTEN 0 26089 1199/httpd
[root@localhost ~]# cd /var/www/html #切换到apache服务的目录下,为默认发布目录
[root@localhost html]# vim index.html #在http目录下编辑文件,并在网页进行验证,此文件为默认发布文件。
<h1>hello,world!</h1> #编辑的文件内容,此时在网页网文时字体偏大并且加粗
#如果编辑的内容,hello,world!此时在网页访问字体偏小,不加粗
[root@localhost html]# systemctl stop firewalld #关闭防火墙
最后一步:进行网页验证:http://id/
实例
安装http服务
…………….此处省略
开启服务,没有任何报错信息,所以重启服务成功
查看http服务的网络端口信息,由下图可以看出http服务的网络端口为80
切换到/var/www/html目录下,其实web服务器访问的就是这个目录下的内容
编辑文件内容:vim index.html
hello,world!
关闭防火墙,如果不关闭防火墙,那么通过网页访问不到。
验证1
如果将index.html的内容稍稍做一些改变呢
<h1>hello,world!</h1>
验证2
由上面两个图片可以明显看出,验证1的图片字体偏小,不加粗,验证2的图片字体偏大加粗,同时最重要的一点是apache服务配置成功。
验证apache服务的配置是否与网络端口有关
查看apache服务的监听端口
41 #Listen 12.34.56.78:80
42 Listen 80
如果我们将端口改为8080,是否可以访问;
41 #Listen 12.34.56.78:80
42 Listen 8080
重启服务,这里特别要注意的是第一次重启服务时,采用的是start ,后面重启服务时采用的都是restart ,不然服务启动不了;
此时网页访问不到,出现下面的报错信息
apache服务配置不好的原因:
(1)服务没重启
(2)防火墙没有关
(3)http服务的网络端口不对
(4)SELINUX的状态
二、更改默认发布目录和默认发布文件
在我们没有进行任何更改之前,apache服务默认的发布目录是在/var/www/html下,当我们通过网页进行网页进行访问时,http://id/可以查看到以.html结尾的文件的内容。
[root@localhost ~]# mkdir /westos/html -p #建立目录westos并在westos目录下建立html目录
[root@localhost ~]# cd /westos/html/ #切换到/westos/html目录下
[root@localhost html]# vim index.html #在上面的那个目录下建立文件,并进行编辑内容
<h1>westos html</h1>
[root@localhost html]# mkdir linux #在/westos/html目录下新建一个目录
[root@localhost html]# cd linux/ #切换到/westos/html/linux目录下
[root@localhost linux]# vim red.html #在linux目录下创建文件,并进行编辑
<h1>欢迎光临</h1>
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf #编辑http服务的配置文件
119 #DocumentRoot "/var/www/html" #注释掉原有的默认发布目录
120 DocumentRoot "/westos/html" #修改apache服务的默认发布目录为/westos/html目录
121 <Directory "/westos/html/linux"> #默认发布目录为/westos/html/linux,我们在网页访问时需要输入http://ip/linux
122 DirectoryIndex red.html #默认发布文件为red.html文件
123 </Directory>
124 <Directory "/westos"> #默认发布目录为/westos
125 require all granted #允许所有人都可以进行访问
126 DirectoryIndex index.html #默认发布文件为index.html
127 </Directory>
128
[root@localhost ~]# systemctl restart httpd #重启服务
[root@localhost ~]# systemctl status firewalld #查看防火器墙的状态,如果此时的防火墙是打开的,那么需要执行"systemctl stop fiewalld"这个命令来关闭防火墙
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
Active: inactive (dead)
5月 28 20:48:51 localhost systemd[1]: Stopped firewalld - dynamic firewall...n.
Hint: Some lines were ellipsized, use -l to show in full.
实例
创建目录
切换到创建的目录下
在/westos/html目录下创建index.html文件并进行编辑
<h1>westos html</h1>
在/westos/html/下创建目录linux
在linux目录下创建文件red.html,并编辑文件内容
<h1>欢迎光临</h1>
编辑http服务的配置文件进行修改默认发布目录
119 #DocumentRoot "/var/www/html" #注释掉原有的默认发布目录
124 <Directory "/westos"> #默认发布目录修改为/westos,在访问时实际访问的是/westos/html下的文件内容
125 require all granted #允许所有人都可以进行此目录下的文件内容
126 DirectoryIndex index.html #默认的发布文件为index.html文件
127 </Directory>
128
重新启动服务
查看防火墙的状态,此时的防火墙是关闭的
验证过程如下
访问/westos/html/index.html文件
访问/westos/html/linux目录下的red.html文件
重新配置http的主配置文件
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
119 #DocumentRoot "/var/www/html"
120 DocumentRoot "/westos/html"
121 <Directory "/westos/html/linux"> #默认发布目录为/westos/html/linux目录
122 DirectoryIndex red.html #默认发布文件为red.html
123 </Directory>
124 <Directory "/westos">
125 require all granted #所有人进行访问
126 DirectoryIndex index.html #修改默认发布文件
127 </Directory>
128
验证过程如下
三、黑白名单的设定
[root@localhost ~]# mkdir /var/www/html/admin #创建目录http的默认发布目录下创建admin目录
[root@localhost ~]# vim /var/www/html/admin/westos.html #并在admin的目录下建立westos.html文件,并编辑文件内容
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf #编辑httpd的主配置文件
119 DocumentRoot "/var/www/html" #打开默认发布目录
121 <Directory "/var/www/html/admin"> #打开默认的发布目录admin
122 Order Deny,Allow #设置黑白名单的顺序,先Deny后Allow黑白名单的顺序会有冲突,此时以后一个为主。
123 Deny from All #所有人都不能访问
124 Allow from 172.25.254.118 #允许172.25.254.118的这台主机访问。
125 </Directory>
[root@localhost ~]# systemctl restart httpd #重启服务
实例1
在/var/www/html下创建admin目录
在admin目录下创建文件westos.html,并进行编辑内容
编辑主配置文件
重新启动服务
验证
在172.25.254.60这台主机上进行测试
在172.25.254.118这台主机测试
实例2
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf #编辑主配置文件
DocumentRoot "/var/www/html"
<Directory "/var/www/html/admin">
Order Allow,Deny
Allow from All
Deny from 172.25.254.118
</Directory>
[[email protected] ~]# systemctl restart httpd #重启服务
在172.25.254.118这台主机上进行测试
在172.25.254.60这台主机上进行测试
三、设置用户通过认证方式访问
htpasswd 是apache的一个工具,该工具主要用于建立和更新存储用户名,密码的文本文件,主要用于对基于httpd用户的认证
[[email protected] ~]# cd /etc/httpd #切换到/etc/httpd目录下
[[email protected] httpd]# htpasswd -cm apacheuser admin #创建apache服务的访问用户 -c 创建新的文件 -m 用md5的方式加密密码
New password: #输入新的密码
Re-type new password: #请再次输入密码
Adding password for user admin #为用户admin已经添加密码
[[email protected] httpd]# htpasswd -cm apacheuser tom #添加apache服务的tom用户
New password: #输入的新的密码
Re-type new password: #请再次输入密码
Adding password for user tom #为tom用户添加密码已经成功
[[email protected] httpd]# cat apacheuser #查看apache下的用户
tom:$apr1$IeHqu2H2$1LdCjyDlaI.ZhxIuY0xkT1
admin:$apr1$J9nBUA7q$wRXaIWp9v8myNCevof.aQ.
[[email protected] httpd]# vim /etc/httpd/conf/httpd.conf #编辑apache服务的主配置文件
119 DocumentRoot "/var/www/html" #开启apache服务的默认发布目录
121 <Directory "/var/www/html/admin"> #开启默认目录下的admin目录
122 AuthUserFile etc/httpd/apacheuser #加密密码的文件
123 AuthName "please input user and password !!" #提示输入用户和密码
124 AuthType basic #基础认证类型
125 Require user admin #允许admin用户进行访问
127 </Directory>
[[email protected] httpd]# systemctl restart httpd #重新开启服务
实例
切换到/etc/httpd目录下
设置apache用户并设置密码
查看apache服务下的用户
编辑apache服务的主配置文件
119 DocumentRoot "/var/www/html"
121 <Directory "/var/www/html/admin">
122 AuthUserFile /etc/httpd/apacheuser
123 AuthName "please input user and password !!"
124 AuthType basic
125 Require admin
126 Require valid-user
127 </Directory>
重新启动服务
在网页进行访问:http://172.25.254/118/admin,此时会通过用户认证的方式进行访问,如下图所示,
然后我们就可以看到文件信息
四、通过域名认证访问
[[email protected] ~]# cd /etc/httpd/conf.d #切换到/etc/httpd/conf.d的目录下
[[email protected] conf.d]# vim default.conf #编辑default.conf的文件
1 <VirtualHost _default_:80> #虚拟主机的端口为80
2 DocumentRoot /var/www/html #修改主机的默认发布目录/var/www/html
3 CustomLog "logs/default.log" combined #虚拟主机指定设置日志文件
4 </VirtualHost>
[[email protected] conf.d]# mkdir /var/www/virtual /westos.com/news -p #创建默认发布news目录
[[email protected] conf.d]# mkdir /var/www/virtual/westos.com/music -p #创建默认music目录
[[email protected] conf.d]# vim /var/www/virtual/westos.com /news/index.html #创建默认news目录下的index.html文件
<h1>news page</h1>
[[email protected] conf.d]# vim /var/www/virtual/westos.com/music/index.html #创建默认music目录下index.html文件
<h1>music page</h1>
[[email protected] conf.d]# vim news.conf #指定域名news.westos.com的访问默认目录
<VirtualHost *:80> #虚拟主机开启的端口
ServerName news.westos.com #指定站点的名称
DocumentRoot "/var/www/virtual/westos.com/news/" #更改默认发布目录,即网页文件存在的位置
CustomLog "logs/news.log" combined #指定设置日志文件
</VirtualHost>
<Directory "/var/www/virtual/westos.com/news/"> #默认发布目录
Require all granted #允许所有人都可以访问
</Directory>
[[email protected] conf.d]# vim music.conf #编辑域名music.westos.com的访问默认目录
<VirtualHost *:80> #虚拟主机开启的端口
ServerName music.westos.com #站点名称
DocumentRoot "/var/www/virtual/westos.com/music/" #修改默认发布目录
CustomLog "logs/music.log" combined #设置日志文件
</VirtualHost>
<Directory "/var/www/virtual/westos.com/music/"> #默认发布目录
Require all granted #允许所有人都可以访问
</Directory>
[[email protected] conf.d]# systemctl restart httpd #重启服务
真机里进行解析
主机解析
[[email protected] ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.250 content.example.com
172.25.254.118 www.westos.com news.westos.com music.westos.com login.westos.com
实例
切换到/etc/httpd/conf.d文件
编辑default.conf文件
创建目录news
创建目录music
在news目录下创建index.html文件,并进行编辑
在music目录下创建index.html文件,并进行编辑
编辑news的配置文件
编辑music的配置文件
重新启动服务
在真理编辑解析文件:vim /etc/hosts
验证1:www.westos.com
验证2:news.westos.com
验证3:music.westos.com
五、网页加密
[[email protected] ~]# yum install mod_ssl -y #安装mod_ssl安装包
[[email protected] ~]# ls /etc/httpd/conf.d/ #查看目录下的内容
autoindex.conf music.conf php.conf ssl.conf welcome.conf
default.conf news.conf README userdir.conf
[[email protected] ~]# yum install crypto-utils -y #下载加密软件
[[email protected] ~]# genkey news.westos.com #加密网页news.westos.com
此时就会出现以下的界面,选择next
此时选择N0
修改证书的地址及其需要认证的文件
此时genkey news.westos.com下就会出现下面的信息,以脚本的形式显现出来
/usr/bin/keyutil -c makecert -g 2048 -s "CN=news.westos.com, OU=linux, O=westos, L=xi'an, ST=Shannxi, C=CN" -v 1 -a -z /etc/pki/tls/.rand.7412 -o /etc/pki/tls/certs/news.westos.com.crt -k /etc/pki/tls/private/news.westos.com.key
cmdstr: makecert
cmd_CreateNewCert
command: makecert
keysize = 2048 bits
subject = CN=news.westos.com, OU=linux, O=westos, L=xi'an, ST=Shannxi, C=CN
valid for 1 months
random seed from /etc/pki/tls/.rand.7412
output will be written to /etc/pki/tls/certs/news.westos.com.crt
output key written to /etc/pki/tls/private/news.westos.com.key
Generating key. This may take a few moments...
Made a key
Opened tmprequest for writing
/usr/bin/keyutil Copying the cert pointer
Created a certificate
Wrote 1682 bytes of encoded data to /etc/pki/tls/private/news.westos.com.key
Wrote the key to:
/etc/pki/tls/private/news.westos.com.key
[[email protected] ~]# vim /etc/httpd/conf.d/ssl.conf #修改ssl的配置文件
101 SSLCertificateFile /etc/pki/tls/certs/news.westos.com.crt
110 SSLCertificateKeyFile /etc/pki/tls/private/news.westos.com.key
[[email protected] ~]# systemctl restart httpd #重新启动服务
此时需要进行获得证书的许可
查看证书的信息
在网页进行访问:https://news.westos.com
六、http自动传到https
[[email protected] ~]# cd /etc/httpd/conf.d/ #切换到/etc/httpd/conf.d的目录下
[[email protected] conf.d]# vim login.conf #编辑login的配置文件
<VirtualHost *:443> #虚拟主机的默认端口
ServerName login.westos.com #站点的名称
DocumentRoot "/var/www/virtual/westos.com/login/" #更改默认的发布目录
CustomLog "logs/login.log" combined #设置日志文件
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/news.westos.com.crt #证书加密文件
SSLCertificateKeyFile /etc/pki/tls/private/news.westos.com.key #证书文件的钥匙
</VirtualHost>
<Directory "/var/www/virtual/westos.com/login/"> #更改默认发布目录
Require all granted #允许所有人访问
</Directory>
<VirtualHost *:80> #虚拟主机的默认端口
ServerName login.westos.com #站点名称
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
############
^(/.*)$ ##客户在浏览器地址栏输入的所有字符
https:// ##强制客户加密访问
%{HTTP_HOST} ##客户强求主机
$1 ##表示^(/.*)$ 的值
[redirect=301] ##临时重写,302表示永久重写
[[email protected] conf.d]# mkdir /var/www/virtual/westos.com/login/ #创建默认发布目录
[[email protected] conf.d]# vim /var/www/virtual/westos.com/login/index.html #创建默认发布文件,并编辑文件内容
<h1>login page</h1>
~
[[email protected] conf.d]# systemctl restart httpd #重新启动服务
验证
获取证书
七、apache支持语言
apache支持的语言是html
添加apache语言:php和ccgi
[root@localhost ~]# yum install php -y #安装php服务 -y直接安装,不需要任何提示
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-21.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================
Package Arch Version Repository Size
=======================================================================
Installing:
php x86_64 5.4.16-21.el7 rhel_dvd 1.3 M
Transaction Summary
=======================================================================
Install 1 Package
Total download size: 1.3 M
Installed size: 4.4 M
Downloading packages:
php-5.4.16-21.el7.x86_64.rpm | 1.3 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : php-5.4.16-21.el7.x86_64 1/1
Verifying : php-5.4.16-21.el7.x86_64 1/1
Installed:
php.x86_64 0:5.4.16-21.el7
Complete! #显示安装完成
[root@localhost ~]# cd /var/www/html/ #切换到apache服务的默认目录下
[root@localhost html]# vim index.html #在默认目录下建立index.html文件,并编辑文件内容
[root@localhost html]# cat index.html #查看文件里的内容
hello,qq
[root@localhost html]# vim index.php #编辑index.php文件内容
[root@localhost html]# cat index.php #查看index.php的内容
<?php
phpinfo();
?>
[root@localhost html]# mkdir cgi #创建cgi的目录
[root@localhost html]# ls #查看是否成功创建cgi目录
cgi index.html index.php test.html westos
[root@localhost html]# vim cgi/index.cgi #在cgi目录下编辑index.cgi文件及其内容
[root@localhost html]# cat cgi/index.cgi #查看文件内容
#!/usr/bin/per1
print "Content-type: text/html\n\n"; ##输出Content-type: text/html并执行两次换行
print "Hello, world."; ###优先执行反单引号内的内容,并将执行结果作为外部的输入信息
[root@localhost html]# vim /etc/httpd/conf/httpd.conf #编辑apache服务的主配置文件
173 <IfModule dir_module>
174 DirectoryIndex index.php index.html #在主配置文件中添加新建的默认发布文件index.php
175 </IfModule>
[[email protected] html]# systemctl restart httpd #开启httpd服务
在网页进行访问验证
八、论坛的搭建
[root@localhost html]# lftp 172.25.254.250 #在250这台主机上下载软件
lftp 172.25.254.250:~> cd pub #切换到pub目录下
cd ok, cwd=/pub
lftp 172.25.254.250:/pub> get Discuz_X3.2_SC_UTF8.zip #下载需要搭建的软件
12486177 bytes transferred
lftp 172.25.254.250:/pub> quit
[root@localhost html]# ls #查看是否已经下载Discuz安装包
cgi index.html test.html
Discuz_X3.2_SC_UTF8.zip index.php westos
[root@localhost html]# unzip Discuz_X3.2_SC_UTF8.zip #解压Discuz安装包
[root@localhost html]# ls #查看是否已经解压
cgi index.php upload
Discuz_X3.2_SC_UTF8.zip readme utility
index.html test.html westos
[root@localhost html]# chmod 777 /var/www/html/upload/ -R #将upload目录及其目录下所有内容修改权限
[root@localhost html]# mysql -uroot -plee #查看数据库的密码是什么
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.35-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> Ctrl-C -- exit!
[root@localhost html]# yum install php-mysql -y #安装php-mysql的数据库
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package php-mysql.x86_64 0:5.4.16-21.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================
Package Arch Version Repository Size
=======================================================
Installing:
php-mysql x86_64 5.4.16-21.el7 rhel_dvd 96 k
Transaction Summary
=======================================================
Install 1 Package
Total download size: 96 k
Installed size: 232 k
Downloading packages:
php-mysql-5.4.16-21.el7.x86_64.rp | 96 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : php-mysql-5.4.16-21.el7.x86_64 1/1
Verifying : php-mysql-5.4.16-21.el7.x86_64 1/1
Installed:
php-mysql.x86_64 0:5.4.16-21.el7
Complete! #由complete可以看出已经安装成功
[root@localhost html]# systemctl restart mariadb.service #重启数据库
[root@localhost html]# systemctl restart httpd #重启httpd服务
网页进行论坛的搭建
同意授权协议
输入数据库的用户名和密码及其管理员两次密码,此时就会出现以下的界面
package cplex01;import ilog.concert.IloException;import ilog.concert.IloNumVar;import ilog.cplex.IloCplex;public class LP1 { public static void main(String[] args) { try {...
原创文章转载请注册来源http://blog.csdn.net/tostqTips: 关于在线学习和批量学习 批量学习方法:突触权值的调整在训练样本集合的所有N个例子都出现后进行,这个N个例子构成训练的一个回合,每个回合的训练样本的样例都是随机选择的,而权值的调整是靠所有N个例子的总体平均来实现。批量学习方法的优点在于能够精确估计当前梯度向量(即代价
一、我们都知道python这门语言是有c语言编写而成的,那么今天就用c语言编写一个python模块,python在底层运算中会对每个运算做类型检查, 这就影响了运行的性能,而利用扩展, 可以避免这样的情况, 获得优越的执行性能,利用Python提供的C API,如宏,类型,函数等来编写扩展。二、环境准备Centos7.4Python 2.7.5gcc 版本 4.8.5 20150623 (...
目录(?)[-]一Java NIO 的核心组件二Java NIO SelectorSelector简介选择器Selector可选择通道SelectableChannel选择键SelectionKeySelector的使用1创建Selector2将Channel注册到Selector3为SelectionKey绑定附加对象4通过Selector选择通道5停止选择三NIO多人聊天室分析整个程序的流程一...
什么是自省?在日常生活中,自省(introspection)是一种自我检查行为。自省是指对某人自身思想、情绪、动机和行为的检查。伟大的哲学家苏格拉底将生命中的大部分时间用于自我检查,并鼓励他的雅典朋友们也这样做。他甚至对自己作出了这样的要求:“未经自省的生命不值得存在。”无独有偶,在中国《论语》中,也有这样的名言:“吾日三省吾身”。显然,自省对个人成长多么重要呀。在计算机编程中,自省是指这...
最权威的学习资料还是要去看官网,以及官网提供的Demo,基本上你是可以直接拿来使用的,这是官网网站:http://open.weixin.qq.com/。 在微信分享中主要碰到了如下问题:第一次可以分享,以后就无法调用出分享对话框。这不是程序问题,而是需要提交审核,只有审核通过,才可以调出分享对话框。不相信?那你可以先将微信退出,再试着点击分享,这时就会弹出登录对话款,登完
Discuz!教程之系统日期选择组件最远只能选择到2020年问题的解决方法前言:由于Discuz!现阶段已经没有了官方的升级维护,仅在码云由一帮粉丝进行维护,因此升级较慢。很多老版本系统自带的日期选择组件还是多年前的设计,日期最远只支持选择到2020年,随着时间的推移,很多站长发现已经"时间不够用了"!本文介绍一种修改方法,将日期选择最远日期延长。修改文件:/static/js/calenda...
搜索框和搜索按钮对齐问题解决HTML部分 查询 CSS部分.content_input .search_field{ /*输入框样式*/ width: 536px; height: 38px;line-height: 38px;border: 1px solid #3388FF;flo
Matlab实现代码如下:(1)图像的熵function shang = ssshang(X) [m,n,t]=size(X); I3 = double(X)+1; %灰度从0到256 s(256) = 0; for i = 1:m for j = 1:n va = I3(i,j); %获取灰度 ...
FIFO最简单的一种缓存算法,设置缓存上限,当达到了缓存上限的时候,按照先进先出的策略进行淘汰,再增加进新的 k-v 。使用了一个对象作为缓存,一个数组配合着记录添加进对象时的顺序,判断是否到达上限,若到达上限取数组中的第一个元素key,对应删除对象中的键值。/** * FIFO队列算法实现缓存 * 需要一个对象和一个数组作为辅...
虽说是模拟,但没想到好思路。。。 首先是一个贪心:每只蛤向距离自己最近的一个石头跳。 然后,我们让所有能跳的蛤全跳出来(就是说,让1~D之内的石块上跳满蛤)这样我们就有了一个全是蛤的区间,维护他的左右端点的位置。 然后就要让蛤跳了。。。但首先判断:右端点的蛤能否一次跳到对岸,如果能,就没必要再浪费石头了。通过这个压缩区间,并更新答案。再然后,把这个区间从左端点到右端点,把能转移的全扔到第一个能
微信8.0更新已经有几天了,最开始现在 IOS 端推行,昨天在安卓端也可以更新了,没有更新的小可爱快去更新试试吧。除了重新高清化的表情以及衍生的表情包大战外,各种新玩法也被不断挖掘出...