2 13 5 1 2 1 2 3 1 2 3 1 3 2 1 2 1 2 3 1 3 13 5 1 2 1 2 3 1 2 3 1 3 2 1 2 1 2 3 2 1
6 -1
//才知道原来KMP不只用在字符串,用在数字数组中也是可以的,ORZ
#include <stdio.h>
#include <string.h>
int a[1000005],b[10005];
int next[10005],n,m;
void getnext()
{
int i = 0,j = -1;
next[0] = -1;
while(i<m)
{
if(j == -1 || b[i] == b[j])
{
i++;
j++;
if(b[i] == b[j])
next[i] = next[j];
else
next[i] = j;
}
else
j = next[j];
}
}
int kmp()
{
int i = 0,j = 0;
while(i<n)
{
if(a[i] == b[j])
{
if(j == m-1)
return i-j+1;
i++;
j++;
}
else
{
j = next[j];
if(j == -1)
{
i++;
j = 0;
}
}
}
return -1;
}
int main()
{
int t,i;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
for(i = 0;i<n;i++)
scanf("%d",&a[i]);
for(i = 0;i<m;i++)
scanf("%d",&b[i]);
if(n<m)
printf("-1\n");
else
{
getnext();
printf("%d\n",kmp());
}
}
return 0;
}
客户端产品:
Word / Excel / PowerPoint / Outlook / Access / Publisher / InfoPath / OneNote / Visio (Standard & Professional) / Project (Standard & Professional) / SharePoint Designer / Groove / Communicator
服务器端产品:
SharePoint Server / Form Server / Project Server / Project Portfolio Server / Groove Server
服务:
Office Online / Office Live / Office Live Meeting
另外,VS2005中还包含了一款专门针对于Office System进行二次开发的组件:Visual Studio Tools for Office (VSTO),我们也可以把它看作是Office System的一部分。
下次我将分别介绍一下这些Office组件的重要功能,看看有几个你还没用过~~~
最早的基于Windows平台的Office产品是1989年的Word 1.0,17年来,Office不断发展壮大,到最新的Office 12(即2007),整个体系里面已经至少包含了13个桌面端应用组件和5个服务器端组件。这么多组件,相信很少有人都用过,但我们至少有必要简要了解一下这些组件的功能,看看它们都能用来做什么。
Office Word 2007:
这个不用多说了,你可能从使用Windows的第一天起,就在和Word打交道。在最新的Word2007中,文档的审批、批注和对比等功能有了很大增强,此外,你还可以轻松创建出具有专业水准的文档,快速生成精美的图示,快速美化图片和表格,甚至还能直接发表blog、创建书法字帖。
Office Excel 2007:
很多人认为Excel就是做表格的,做花花绿绿的表格,真是委屈了Excel。实际上,Excel是一套功能强大的信息分析、管理和共享工具,各种来源的数据,包括SQL、ODBC、Web页面中的数据,都可以导入到Excel中实现整理、筛选、分析、汇总,并以专业的图形和图表形式展现出来。个人认为,Excel是Office所有组件里面功能最多、技术含量最高的一个。新的Excel2007主要增强了数据的分析和呈现方式,改进了数据透视图表的创建方法,并增强了公式的编辑功能。另外,Office 2007中新增的Excel Services可以将数据表格共享和呈现在Web页面上,这也正迎合了Office未来的发展方向——在线应用。
Office PowerPoint 2007:
幻灯片制作工具。前不久,PPT刚刚度过了20周岁生日,有人惊叹PPT在不知不觉间已经悄然改变了我们阐述思想的方式,改变了我们学习新知识的途径,我举双手双脚赞成。尤其是在校园里,越来越多的老师们一旦离开幻灯片就不会讲课了,怎么感觉这么悲哀啊~~ 据我的观察,很多用户幻灯片的制作水平仍处于初级阶段,页面上经常是密密麻麻的文字和单调的图案,貌似和Word文档没什么两样。别忘了,幻灯片中是可以设计动画效果的,还可以添加背景音乐和视频,使用新的PPT2007,制作声光绚丽的视觉效果将是易如反掌。
Office Outlook 2007:
很久以来,Outlook被很多人仅仅当作是一个收发邮件的软件,这种局面在最近几年间终于有了一些改观。对于很多的企业员工和管理人员,Outlook是一个很贴心的秘书,能够帮助我们管理日常的信息、工作任务
和时间安排,是一个电子化的“工作日记”。新的Outlook2007将日历、约会事件和工作任务整合在了一起,你可以把你的日程信息更好的共享给你的老板和同事。另外值得一提的是增强的搜索功能,能够帮助我们从成千上万封邮件中快速找到你想要的,甚至你只记住了某封邮件的附件中的一个词,也没问题!
Office Access 2007:
一个轻量级的数据库软件。注意到,Access是一套基于客户端的数据库,不用后台服务器的支持,因此也为我们大大地节省了银子。当然了,Access的功能不可能像SQL那么强大,不是一个层面的东东,Access比较适合于小型企业和部门级的Client端的应用。Access2007改进了用户界面和交互式功能,它的优势是即便你不懂深层的数据库知识,也能用简便的方式创建、跟踪、报告和共享数据信息,所以,没用过的不要怕。
Office Publisher 2007:
用的人真的很少,因为它的受众面很窄。Publisher从字面上就能理解,主要用于制作出版物、印刷品、小册子,以及带有精美样式的Web页和Email。老实讲,在真正的出版行业,用的都是更强大更专业的软件工具,Publisher真是显得有些初级,但这也正是Publisher的特色——简单易用。你不必担心Publisher的难度,通过使用它内置的向导,一切都是那么简单,没有什么技术含量,非常适合普通用户。新的Publisher2007在功能上稍作扩展,对于企业的市场销售人员,可以用它来实现一些构思和运作市场活动的流程,当然这不是Publisher的长处。
Office InfoPath 2007:
电子表单设计工具。InfoPath对于企业用户来讲是很有应用价值的,利用它创建和发布电子表单,我们能高效、安全的收集信息和数据,汇总到的所有信息还可以导出到Excel里继续进行深入的数据分析和挖掘。
InfoPath之所以没有实现大范围的推广应用,一个很重要的因素就是它要求所有填写表单的客户端也要安装InfoPath,否则无法打开表单,这在无形之中提高了InfoPath的应用成本。好在全新的
1 上传压缩包
上传httpd-2.2.23.tar.gz到/usr/local/src
2 解压压缩包
tar xzvf httpd-2.2.23.tar.gz
3 编译安装
cd httpd-2.2.23
./configure --prefix=/usr/local/apache-2.2.23 --enable-so --enable-mods-shared=most--with-mpm=worker
make
make install
参数解释:
# --prefix=<Install_Path> 指明编译后的二进制文件安装到<Install_Path>目录,用实际安装路径替换<Install_Path>,如--prefix=/usr/local/apache-2.2.15,如果省略此配置参数,默认安装到/usr/local/apache2目录。
# --enable-so 指明编译动态加载模块(DSO)支持到httpd二进制文件,此模块使得Apache的各功能模块可以与核心分开编译、运行时动态加载。有了DSO支持,升级和增加模块时只需编译相关的模块即可,不必重新编译整个系统。最新版本的Apache缺省编译此模块到httpd二进制文件,如果你在使用早期版本的apache并且需要DSO支持,可能要明确指出此选项。
# --enable-mods-shared=<MODULE-LIST> 明确指明要以DSO方式编译的模块,<MODULE-LIST>为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分模块,如--enable-mods-share="rewritedeflate",--enable-mods-share=most,效果等同于多个--enable-<FEATURE>=share
# --with-mpm=<MPM> 先择Apache多路处理模块,<MPM>={beos|event|worker|prefork|mpmt_os2},prefork为Unix系统下默认处理模块,它将运行一个非线程型的、预派生的Web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统,它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。worker为支持混合的多线程多进程的多路处理模块,由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM,同时,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。如果你的系统是基于线程安全的,那么笔者建议使用worker替代prefork,它将使得你的系统得到实际的性能改善。
/usr/local/apache-2.2.23/bin/apachectlstart
5 关闭防火墙
service iptables stop
6 页面访问
源文件路径配置:/usr/local/apache-2.2.23/conf/httpd.conf
下面介绍如何把Apache加入到系统服务,用service命令来控制Apache的启动和停止。
## 这里请注意一下!如果Linux服务器上默认安装了httpd的话(用rpm -qa|grephttpd查看),
## 会有 /etc/init.d/httpd 这个脚本文件的,所以你也可以用以下方法直接生成这个文件来覆盖它
## 那么下次就可以用 servicehttpd start 来启动了
## 如果需要区分开来的话就使用下面的方式
首先以apachectl脚本为模板生成Apache服务控制脚本:
grep -v "#" /usr/local/apache-2.2.15/bin/apachectl > /etc/init.d/apache
用vi编辑Apache服务控制脚本/etc/init.d/apache:
vi /etc/init.d/apache
在文件最前面插入下面的行,使其支持chkconfig命令:
#!/bin/sh
# chkconfig: 2345 85 15
# description: Apache is a WorldWide Web server.
保存后退出vi编辑器,执行下面的命令增加Apache服务控制脚本执行权限:
chmod +x /etc/init.d/apache
执行下面的命令将Apache服务加入到系统服务:
chkconfig --add apache
执行下面的命令检查Apache服务是否已经生效:
chkconfig --list apache
命令输出类似下面的结果:
apache 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明apache服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制Apache的启动和停止。
启动Apache服务:
service apache start
停止Apache服务:
service apache stop
执行下面的命令关闭开机自启动:
chkconfig apache off
执行下面的命令改变开机自启动的运行级别为3、5:
chkconfig --level 35 apache on
参考资料
Yum安装Apache
http://www.rickymills.com/tutorials/install-apache2-php5-mysql5-with-yum-on-centos/
Linux apache编译安装
http://www.cnblogs.com/sunwei2012/archive/2011/02/16/1956545.html