算法
文章平均质量分 68
-时光机
这个作者很懒,什么都没留下…
展开
-
POJ1159 Palindrome
转载自 金海峰的博客题意:求对字符串最少添加几个字符可变为回文串。分析:简单做法是直接对它和它的逆序串求最长公共子序列长度len。n-len即为所求。(n为原串长度)这样做的原因如下:要求最少添加几个字符,我们可以先从原串中找到一个最长回文串,然后对于原串中不属于这个回文串的字符,在它关于回文串中心的对称位置添加一个相同字符即可。那么转载 2015-07-25 23:08:43 · 354 阅读 · 0 评论 -
并查集详解
转自 laserss的博客并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要转载 2015-07-31 10:18:23 · 1339 阅读 · 0 评论 -
数据的离散化
转自 博客有些数据本身很大, 自身无法作为数组的下标保存对应的属性。如果这时只是需要这堆数据的相对属性, 那么可以对其进行离散化处理!离散化:当数据只与它们之间的相对大小有关,而与具体是多少无关时,可以进行离散化。例如9 1 0 5 4 与 5 2 1 4 3 的逆序对个数相同。设有4个数:1234567、123456789、1转载 2015-08-13 21:15:35 · 728 阅读 · 0 评论 -
一个笔试题 蛇形矩阵
#include #include #include using namespace std;int value[1024][1024];int main(){ int n,i=0,j=0; cin>>n; int ii=0; int a=0,b=n-1,c=n-1,d=0,q=1; while(1) { while(i==a&&j<=b) { value[i原创 2016-04-03 21:55:16 · 457 阅读 · 0 评论 -
2016-9-11 CCF第四题
当时的心境出了点问题,搞到最后居然连这个题都没A出来#include using namespace std;const int MAXNUM = 1024;const int MAXARR = 10010;int rr[MAXARR][MAXARR];void dijk(int n,int v,int *dist,int *pre){ bool visit[MAXAR原创 2016-09-13 10:31:58 · 731 阅读 · 4 评论