摘要: 时间限制:3000ms | 内存限制:65535KB难度:4描述求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4输入第一行一个整数0随后的n行,每行有一个字符串,该字符串的长度不会超过10000输出输出字符串的最长递增子序列的长度样例输入3 aaa ababc abklmncdefg样例输出1 3 7题目很经典,学习一下吧。#include #include #include using namespace std;const int MAXN = 10000 + 5;int main(){ int n; scanf("%d", &am 阅读全文
posted @ 2013-02-08 20:31 ChrisZZ 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 最长公共子序列时间限制:3000ms | 内存限制:65535KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。输入第一行给出一个整数N(0接下来每组数据两行,分别为待测的两组字符串。每个字符串长度不大于1000.输出每组测试数据输出一个整数,表示最长公共子序列长度。每组结果占一行。样例输入2 a 阅读全文
posted @ 2013-02-08 20:29 ChrisZZ 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个圆弧边矩形,长a宽b,周长为400,且两边的圆弧同属一个圆。给出长宽比m:n,求长和宽策略:列方程求解。令k=n/m,则解出a = 200 / (1 + atan(k)*sqrt(1+k*k));代码:#include #include using namespace std;int main(){// freopen("in.txt", "r", stdin); int m, n; int id = 1; while(scanf("%d : %d", &m, &n)!=EOF){ double k = 阅读全文
posted @ 2013-02-08 20:28 ChrisZZ 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目:In the picture below you can see a triangle ABC. Point D, E and F divides the sides BC, CA and AB into ratio 1:2 respectively. That is CD=2BD, AE=2CE and BF=2AF. A, D; B, E and C, F are connected. AD and BE intersects at P, BE and CF intersects at Q and CF and AD intersects at R.So now a new tria 阅读全文
posted @ 2013-02-08 20:26 ChrisZZ 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意:给出若干矩形的长和宽,小的矩形可以嵌套在大的矩形中,求矩形最多的嵌套中矩形的个数做法:嵌套关系是二元关系,转化为DAG上的最长路径问题,使用邻接表+状态转移方程即可,经典递归思想。代码://nyoj 16#include#include#includeusing namespace std;const int maxn = 150;int graph[maxn][maxn];int d[maxn], n, a[maxn], b[maxn];int max(int a, int b){ return a>b?a:b;}int dp(int i){ if(d[i]>0) retu 阅读全文
posted @ 2013-02-08 20:24 ChrisZZ 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题意:给定N与K(均为正整数)可以确定第K个全排列(1..N的全排列),但N较大,现以N=sigma(Si×(K-i)!)(i=1..K)的形式,输入K以及Si,i=1..K,请输出第K个全排列分析:逆向去想,对于一个给定的全排列可以确定它的序号K,K的表达式形式与N类似,发现从Si可以确定第K个全排列中的第i项,具体用线段树实现查找第i项即可。代码:#include #include using namespace std;struct segment{ int l, r, k;}p[200000];void build(int i, int l, int r){ p[i].l . 阅读全文
posted @ 2013-02-08 20:24 ChrisZZ 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题意:在一个周长为10000的圆上等距分布着n个雕塑,现在又有m个新雕塑加入,位置可以随意放,希望所有的n+m个雕塑在圆周上均匀分布,这就需要移动其中一些原有的雕塑,要求n个雕塑移动的总距离最小,输出这个最小值分析:把点转化为相对坐标,先缩小n倍再放大n+m倍,得到新坐标pos,并取离pos最近的整点,两者之差的绝对值再缩小n+m倍就是需要移动的距离,所有的点的移动距离累加即可。floor(pos+0.5)表示距离pos最近的整数点代码:#include #include #include using namespace std;int main(){ int n, m; whil... 阅读全文
posted @ 2013-02-08 20:22 ChrisZZ 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 分金币题意:圆桌上有n个人,每人有若干金币,金币总和能整除n,每个人可以分给他相邻两个人若干金币,现在需要使每个人最终金币数量相同,求需要转移的金币数量总和的最小值。类型:单变量极值->中位数问题代码#include #include using namespace std;const int maxn = 1000000 + 10;long long a[maxn], c[maxn], tot, m;int main(){ int n; while(scanf("%d", &n)!=EOF){ tot = 0; int i, j; for... 阅读全文
posted @ 2013-02-08 20:21 ChrisZZ 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个人需要你分配任务,交代任务需要bi时间,执行任务需要ji时间,要求最早完成任务,请输出最后完成对的工作的时间。类型:贪心(先排序再处理)代码:#include#include#include#includeusing namespace std;int max(int a, int b){ return a>b?a:b;}struct job{ int j, b; bool operator x.j; }};int main(){// freopen("in.txt", "r", stdin); int n, b, j; int kas 阅读全文
posted @ 2013-02-08 20:19 ChrisZZ 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个恶龙,有m个骑士可雇佣,每个骑士能力为x,表示可以砍掉恶龙的不超过x的头,且雇佣他需要x金币。要求砍掉恶龙所有的头且付金币最少。类型:排序+模拟代码:#include#include#includeusing namespace std;const int maxn = 20000+5;int A[maxn];int B[maxn];int main(){// freopen("in.txt", "r", stdin); int n, m; while(scanf("%d%d", &n, &m)!=EOF 阅读全文
posted @ 2013-02-08 20:18 ChrisZZ 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题意:给定单词集合S,包含若干单词,找出S中所有满足这样条件的元素p:p==str1+str2 && str1属于S && str2属于S解法:暴力搜;或者用set的查找函数You are to find all the two-word compound words in a dictionary. A two-word compound word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary.InputSta 阅读全文
posted @ 2013-02-08 20:16 ChrisZZ 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 步骤如下:1.打开vc6.0,用AppWizard新建一个project(是exe那个)2.选择“基于对话框”(第三个选项)3.一路确定,进入下面的界面:你可以拖动各种控件了4.但是要用的控件activemovie不在这里。解决方法:开始-》运行 输入regsvr32 msdxm.ocx4.经过上一步的操作,已经可以添加activemovie控件了,方法:刚刚建立的工程的窗口中,Project->Add to project->Components and controls, 进入Registered Active Controls目录5.选择第一个控件6.一路确定,然后close 阅读全文
posted @ 2013-02-08 20:14 ChrisZZ 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Visual Assist XVisual.Assist.X是一款非常好的Visual Studio .NET 2003、2002插件,支持C/C++、C#、ASP、Visual Basic、Java和HTML等语言,也支持VC++6、VC++5,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等,有助于提高开发过程地自动化和开发效率。 使用说明:1.首先请确认你已经卸载了此程序旧的版本!2.运行Setup目录中的程序安装原版程序!3.复制CR目录中的VA_X.dll文件到安装目录并覆盖同名文件!4.用鼠标双击CR目录中的VA_X.reg导入注册表! 阅读全文
posted @ 2013-02-08 20:13 ChrisZZ 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 在win下用C++编程,很多新手都用VC6.0。winxp下的安装应该说问题是比较少的,win7下则有些小问题需解决。本人从网上找到些文章作为参考,加上自己的安装经验,总结了win7下VC6.0的安装步骤。1.下载VC6.0完整版(绿色版显然功能不全,bug多多),地址:http://hi.baidu.com/jsj082.解压缩,双击setup.exe,安装方式选择custom而不是typical,Custom自定义安装里,点中Tools组件,更改选项,把其中的OLE/Com Object Viewer取消,不选择,再返回到组件选择的时候,Tools就变为灰色的勾了,因为里面我们取消了OLE 阅读全文
posted @ 2013-02-08 20:12 ChrisZZ 阅读(424) 评论(0) 推荐(0) 编辑
摘要: #include#include#include#includeusing namespace std;int main(){locale china("chs");wcin.imbue(china); //use locale objectwcout.imbue(china);wstring title;wchar_t wc = L'。';while(getline(wcin, title, wc)){size_t len = title.length(); //size_t可以换成intsize_t i, ... 阅读全文
posted @ 2013-02-08 20:09 ChrisZZ 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 红黑树(Red Black Tree)是一种特殊的二叉查找树(Binary Search Tree),满则如下红黑性质的二叉树是红黑树:1.每个节点或是红的,或是黑的2.根节点是黑的3.每个叶节点(NIL)是黑的4.如果一个节点是红的,则它的两个儿子都是黑的5.对于每个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑节点。由于以上的性质,红黑树的效率能保证在log级别,而不会像普通的BST一样退化为线性的O(n)。从红黑树的定义可以看出:1.红黑树是一棵BST,满足BST的所有性质:左子树所有节点的值都不超过根节点,右子树所有节点的值都不小于根节点;中序遍历是升序的;...2.若某节点是 阅读全文
posted @ 2013-02-08 20:07 ChrisZZ 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 出于各种原因,人们需要(重)装系统。用光盘装固然简单,开机后F8选光驱启动就好,但是U盘装系统成为趋势,需要学下。u盘装win:1、首先要准备好u盘(或者sd卡+读卡器等装备),下载pe制作工具并安装,把u盘制作成可以启动的u盘(就是把pe系统放进去...)pe工具很多,老毛桃的,电脑店的,大白菜的,都可以。推荐用电脑店的。2、下载你想要安装的系统的镜像文件。网上有很多,iso格式的一般解压后有gho文件,gho文件则直接可以用。需要注意的是,确实有很“纯净”的系统,例如我曾找到过xp的光盘安装版的iso,这样的原生系统iso文件解压后只有setup,没有gho,网上有人说直接点setup运行 阅读全文
posted @ 2013-02-08 20:05 ChrisZZ 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 习惯了win下的操作,换到linux下会有很多需要适应的地方,这一过程中会遇到一些小问题,这里摘录一些,作为参考(不断更新中)1.txt文件打开后乱码原因:win下一般用gb2312,linux一般用utf-8,编码不同。解决方法:如果你的linux能在其他时候显正常显示中文,那就用这个命令:iconv -f gb2312 -t utf-8 test.txt> testutf8.tzt(-f 就是源编码,-t 转换目标编码,test.txt源文件,testutf8.txt生成目标编码文件)(参考http://blog.csdn.net/piyajee/article/details/61 阅读全文
posted @ 2013-02-08 20:03 ChrisZZ 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 先前暑假时在xp下装过gvim,含中文手册,很爽,但N久不用,加上重装了若干次系统,现在想在ubuntu下玩一玩。网上安装方法看了下,似乎没命中要害啊。。方法:1.sudo get-apt install vim虽然自带vi,但是还是需要install的2.下载压缩包,解压缩 cd vimcdoc-1.8.0tar zxvf vimcdoc-1.8.0.tar.gz3.开始安装../vimcdoc.sh -i4.打开VIM进行查看帮助vim:help usr_1.txt@cn……当然,win下装gvim也没问题的,方法如下:1.下载&安装vim(目前有vim7.3版)2.安装vimcd 阅读全文
posted @ 2013-02-08 20:02 ChrisZZ 阅读(274) 评论(0) 推荐(0) 编辑