自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

转载 Eclipse快捷键大全

<br />Eclipse快捷键大全<br />Ctrl+1 快速修复(最经典的快捷键,就不用多说了)<br />Ctrl+D: 删除当前行 <br />Ctrl+Alt+↓ 复制当前行到下一行(复制增加)<br />Ctrl+Alt+↑ 复制当前行到上一行(复制增加)<br /

2011-04-23 09:33:00 501

原创 割点

首先请看割点的定义:如果在连通的无向图中去掉某点u后,使得图中联通块增加,则称u为改无向图的割点。关键步骤如下: 1、判断图的连通性,可以直接通过深度搜索或者是并查集的方法。如果保存的是点的信息,使用深度搜索的方法: memset(vis, false, sizeof(vis)); dfs(1); bool flag = false; for(int i = 1; i 如果保存的是边的信息,使用深度搜索的方法:const int maxn = 110; int u[maxn*m

2011-04-04 10:40:00 526

原创 ZOJ 3332 Strange Country II

<br />原本自己用dfs水过了这题,但后来看了别人的题解后发现,原来这题还大有名堂:竞赛图。<br />竞赛图就是任意两点之间有且仅有一条有向边的图, 可以证明竞赛图一定存在哈密尔顿道路。<br />证明如下:<br />假设节点V0....Vk存在哈密尔顿道路,则添加节点Vk+1时有以下三种情况:<br />(1)Vk+1到V0存在有向边,则把Vk+1插到V0的前面,此时仍存在哈密尔顿道路<br />(2)Vk到Vk+1存在有向边,则把Vk+1放到Vk的后面,此时仍存在哈密尔顿道路<br />(3)如

2011-04-21 00:39:00 1055

原创 《算法艺术与信息学竞赛》(刘汝佳 黑皮书)在pku等网站上的题目

留着自己以后慢慢用~~一.动态规划参考资料:刘汝佳《算法艺术与信息学竞赛》《算法导论》推荐题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1141 简单http://acm.pku.edu.cn/JudgeOnline/problem?id=2288 中等,经典TSP问题http://acm.pku.edu.cn/JudgeOnline/problem?id=2411 中等,状态压缩DPhttp://acm.pku.edu.cn/JudgeOnline/pro

2011-04-20 10:11:00 2592

原创 PC/UVa 111003/10278 Fire Station

<br />这题就是一个多源的最短路径问题:<br /> <br />先计算出当前已经放好的消防站所对应的各个房子到消防站的最短距离,<br />然后枚举新的一个消防站应该排放的位置,然后选择这些位置中的最优解。<br /> <br />在这里就用了比较简单的Dijkstra水过~<br />#include<stdio.h> #include<string.h> #include<limits.h> const int maxn = 510; int g[maxn][maxn]; int f

2011-04-20 02:30:00 1249

原创 PC/UVa 111002/10054 The Necklace

这题就是无向图的欧拉回路问题,要注意的是:(1)图要是连通的,(2)欧拉回路/欧拉路径的输出#include #include const int maxn = 51; int g[maxn][maxn]; bool vis[maxn]; bool app[maxn]; int deg[maxn]; int n; void dfs(int cur) { for(int i = 1; i

2011-04-20 00:22:00 890

原创 Sicily 2377. Ants Colony

<br />比较经典的LCA问题,如果掌握了Tarjan算法后,这题就很容易地水过了~~<br />本人在学习Tarjan算法时,参考了ylfdrib的博客:http://www.cnblogs.com/ylfdrib/archive/2010/11/03/1867901.html, 感觉他讲得比较清晰易懂,而且又有相关的代码参考。<br /> <br />#include<stdio.h> #include<string.h> #include<vector> #include<algorithm>

2011-04-18 20:19:00 557

原创 ubuntu各种解压命令

<br />一、对于.zip压缩包<br /> <br />sudo unzip archive_name.zip<br /> <br /> <br />二、对于.tar.gz压缩包<br /> <br />sudo tar -zxvf archive_name.tar.gz<br /> <br />三、对于.tar.gz2压缩包<br /> <br />sudo tar -jxvf archive_name.tar.bz2<br /> 

2011-04-15 14:34:00 386

原创 ubuntu下搭建android开发环境

一、安装JDK1.如果默认的sources.list没有jdk资源,则可以通过一下方式添加:    sudo gedit /etc/apt/sources.list,打开sources.list文件,并在文件的最后添加以下代码:    deb http://tw.archive.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse    deb-src http://tw.archive.ubuntu.com/ubuntu/ jaunty

2011-04-15 12:39:00 430

原创 ubuntu无法获得锁的解决方法

<br /><br />例如出现以下情况,(下划线的部分是具体锁的位置,可以根据锁的位置而进行改变)<br /> <br />E: 无法获得锁/var/lib/apt/lists/lock - open (11: 资源暂时不可用)<br />E: 无法对目录 /var/lib/apt/lists/ 加锁<br />E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)<br />E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?<br

2011-04-15 12:18:00 1349

原创 PC/UVa 110905/10029 Edit Step Ladders

这题比较容易想到的方法就是枚举:对于每一个当前输入的字符串(第一个除外),枚举其前面且满足条件的字符串,取其中步数最长的。经过简单的分析可知:算法复杂度高达O(N*N),由于N的取值可以去到25000,所以这种方法显然会超时,所以要找其他方法。参考别人写的题解后,我使用了二分法的思想来完成本题。其实题目的二分法思想也挺明显的!!输入数据是按照字符串的字典序顺序出现的,而对于每一个当前输入的字符串(第一个除外),枚举其所有变化后会产生的字符串,并利用二分法在之前已经输入的字符串中找出步数最长的一个。如果搞懂了

2011-04-07 01:31:00 968

原创 PC/UVa 110903/10099 The Tourist Guide & UVa 10048 Audiophobia

<br />一开始用深搜去做这道题,可能是剪枝没有写好吧, 超时了。后来看了一下别人的题解,发现可以用动态规划来做,其想法和floyd算法的动态规划想法差不多,而这里的问题则转变为:找出任意两点之间最小权边的最大路径。<br /> <br />这题还有一个地方需要注意的是:在计算每条路乘客数量的上限时,司机也应该要算进去的!!!<br />#include<stdio.h> #include<string.h> #include<limits.h> #include<algorithm> using

2011-04-06 14:17:00 651

原创 PC/UVa 110902/10067 Playing With Wheels

<br />本题的题目意思比较清晰:有4个齿轮,每一次可以向左或者向右转动一个齿轮,求两个数是否可到达,如果可以,则输出最短步骤数。<br />由此可见应该用bfs解决。<br />#include<stdio.h> #include<string.h> #include<queue> using namespace std; const int maxn = 10; int s, t; int f[4]; bool vis[10010]; void setVisited() { vi

2011-04-06 01:07:00 920

原创 PC/UVa 110901/10004 Bicoloring

<br />由于题目对输入的图给了比较严格的规定:总是连通的,无向的,无自环的。所以使用简单的dfs可以水过~<br />#include<stdio.h> #include<string.h> #include<vector> using namespace std; const int maxn = 210; vector<int> g[maxn]; int color[maxn]; int n, m; bool dfs(int cur) { for(int i = 0; i <

2011-04-06 01:04:00 551

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除