自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 畅通工程(DFS求连通块)

要求最少多少个点才能连所有边思路:如果1与2相连,就把1和2看成一个点,即所有连通的点看成所有点;           那么连通n个点至少需要n-1条边#include#include#includeusing namespace std;const int maxn=1000+5;int G[maxn][maxn];int vis[maxn],N,E,cnt;int d

2016-05-25 19:23:48 418

原创 Fire Net

http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1162#include#include#include#include#include#include#include#include#include#includeusing namespace std;char G[4][4];

2016-05-25 19:01:36 426

原创 六角幻方(DFS)

六角幻方    把 1 2 3 ... 19 共19个整数排列成六角形状,如下:    * * *   * * * *  * * * * *   * * * *     * * *    要求每个直线上的数字之和必须相等。共有15条直线哦!    再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.p

2016-05-23 18:49:08 897

转载 HTML常用标签及其全称

转自:http://www.cnblogs.com/debuging/archive/2011/10/19/2217337.htmla href="#">a 超级链接(anchor)a>    abbr title="abbreviation的简写">abbr 简写的(abbreviation)abbr>    acronym title="Jin Hua

2016-05-23 16:14:36 4670 1

原创 居民集会(分治法)

标题:居民集会蓝桥村的居民都生活在一条公路的边上,公路的长度为L,每户家庭的位置都用这户家庭到公路的起点的距离来计算,第i户家庭距起点的距离为di。每年,蓝桥村都要举行一次集会。今年,由于村里的人口太多,村委会决定要在4个地方举行集会,其中3个位于公路中间,1个位最公路的终点。已知每户家庭都会向着远离公路起点的方向去参加集会,参加集会的路程开销为家庭内的人数ti

2016-05-22 13:27:29 2701 2

原创 方块填数

【编程题】(满分33分)    “数独”是当下炙手可热的智力游戏。一般认为它的起源是“拉丁方块”,是大数学家欧拉于1783年发明的。    如图[1.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部分含有6个小格(以下也称为分组)。        开始的时候,某些小格中已经填写了字母(ABCDEF之一)。需要在所有剩下的小格中补填字母。

2016-05-21 20:05:04 472

原创 完美正方形(DFS 暴力搜索)

标题:完美正方形如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形。历史上,人们花了很久才找到了若干完美正方形。比如:如下边长的22个正方形2 3 4 6 7 8 12 13 14 15 16 17 18 21 22 23 24 26 27 28 50 60如【图1.png】那样组合,就是一种解法。此时,紧贴上边沿的是:60 50

2016-05-21 14:01:44 3536

原创 DNA比对(DP)

【编程题】(满分27分)脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。DNA携带的遗传信息可以用形如:AGGTCGACTCCA.... 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。为了简化

2016-05-18 21:31:07 1136

转载 常见的块状元素与内联元素

转自:http://www.cnblogs.com/vidudu/articles/KwooJan.htmlxHTML究竟有多少个标签?绝大部分人都不能得出一个正确的答案,现在就有个机会,自己数数。答案:91个,哈哈,被你找到了~a, abbr, b, base, body, br, dd, div, dl, dt, em, fieldset, form, h1, h2, h3

2016-05-18 13:37:16 913

原创 最长公共子序列(LCS DP)

状态:d[i][j],i,j表示下标,A[1~i]和B[1~j]的最长LCS 状态转移:d[i][j]-->  1)A[i]==B[j] d[i][j]=d[i-1][j-1]+1;                                    2)A[i]!=B[j] d[i][j]=max(d[i-1][j],d[i][j-1]);const int maxn=10

2016-05-17 21:47:09 378

原创 最长上升子序列(LIS DP)

状态:d[i]表示以i结尾的最长上升子序列状态转移:d(i) =max{0,d(j)|j当A[i]>A[j]说明又多了个子序列+1; const int maxn=1000+5;int main(){ int n,s[maxn],d[maxn]={0}; scanf("%d",&n); for(int i=0;i<n;i++) cin>>s[i]; d[0]=1;

2016-05-17 21:44:57 289

原创 总结Margin重叠现象

普通与普通大者取大 box test #box{ width: 200px; height: 200px; background: black; margin-bottom: 50px; } #box1{ width: 300px; height: 100px; background: blue; margin-to

2016-05-17 18:52:00 810

原创 最短路径算法汇总

Dijkstrad[0]=0;d[1~n]=INF; 1选最小的d[i];2从i点出发所有边 松弛d[j] 伪代码:for(1~n){所有未标记的点选出d最小的点x;标记x点走过;i点出发所有边 更新d[y]=min(d[y],d[x]+w[x][y]); // 属于E; } 1)简易版:O(n*n) 对边编号:u[i],v[i] 表示第i边连通哪两

2016-05-17 13:43:27 712

转载 A*,Dijkstra,BFS算法性能比较及A*算法的应用

一之续、A*,Dijkstra,双向BFS算法性能比较及A*算法的应用作者:July   二零一一年三月十日。出处:http://blog.csdn.net/v_JULY_v-------------------------------------------------- 引言:    最短路径的各路算法A*算法、Dijkstra 算法、BFS算法,都已在本B

2016-05-16 19:21:32 23632 3

原创 UVa 12563 Jin Ge Jin Qu hao(DP 多种状态表示)

状态A状态:d[i][j] 已经第i首歌还剩j时间,还能最多唱几首决策:唱或不唱 1)d[i][j]-->d[i+1][j-song[i]] ;               2)d[i][j]-->d[i+1][j] ;选择:最大的但j>0的 int dp(int i,int j){ int& ans=d[i][j]; if(d[i][j]>=0) return ans;

2016-05-15 21:05:18 693

原创 UVa 116 Unidirectional TSP (多段图的最短路 DP)

阶段很明显即走到第几列 ;状态:走到第i列j行,d[i][j] 表示至少还要经过的整数,便是求d[i]中的最小解;决策:三种走法;决策选择:选d[i][j]最小的那个#include#include#include#includeusing namespace std;const int maxn=100+5;int G[maxn][maxn],d[maxn][

2016-05-15 10:13:25 382

原创 硬币问题(DP)

题目:有n种硬币,面值分别为V1,V2,...Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值!状态:d[i] 表示i 元最少要换多少个硬币,那么我们便要求d[S}的值;状态如何转移:i元换零钱V[j](i>=V[j]),后状态变为 d[i-V[j]];状态选取:选d[j]的值最小的,这样d[S]才会最小,所以d[i]=min

2016-05-14 18:47:58 681

原创 dp题目思路理解 (嵌套镶嵌问题DAG)

描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。输入第一行是一个正正数N(0每组测试数据的第一行是一

2016-05-14 15:10:17 317

原创 UVa UVA1606 Amphiphilic Carbon Molecules

1.任意枚举两个点计算两边黑点加白点最大值2.任选一个基准点,引一根直线绕着转,计算两边黑点加白点最大值;对于2,再优化一下,将其他点较基准点的极角排序:一个小技巧:将黑点关于基准点对称就相当于白点了,于是只要计算直线一边的点的数目最大值就好了注:当中遇到了一个函数atan2:正表示从 X 轴逆时针旋转的角度,结果为负表示从 X 轴顺时针旋转的角度#includ

2016-05-14 10:54:41 422

原创 UVA 11134 Fabled Rooks(贪心法,区间与选点问题)

x轴,y轴不相关,所以分开考虑贪心法 可以这样思考不同于定区间选点,而是定点选区间,所以理所当然,那个点重合的区间要尽可能少,所以要选占用1~col最多位置的区间,且尽可能保留占用col+1~n的位置区间为以后考虑;那么我们要从col=1~n放,对于每个col选取[a,b]中 1) a最小 2)a相同时b最小的区间; 每选中一个区间就把他抹掉;为什么那么选的原因:1) a最小 :

2016-05-11 21:14:14 359

原创 UVa 120 Stacks of Flapjacks

#include#include#include#include#include#include#include#include#include#includeusing namespace std;int pan[40],P[40]; //P是正确的序列 int ans[40],k;void strrev1(int* p) //UVa 竟然不能用strrev这个

2016-05-11 19:39:38 249

原创 各种排序方法汇总

#include#includetypedef int ElementType;void Swap(int &a,int &b) {int n;n=a,a=b,b=n;}//--简单排序-- //冒泡排序void Bubble_Sort(ElementType A[],int N){ int flag; for(int P=N-1;P>=0;P--) { flag=0;

2016-05-10 19:30:04 848

原创 UVa 1601 The morning after Halloween(单向BFS+双向BFS)

//测试数据 /*5 5 2######A#B## ##b#a######16 4 3################## ########## ### ABCcba #################16 16 3################### ## # #### # ## # c## ## ########b##

2016-05-08 17:33:21 869

原创 UVa 1343 The Rotation Game(IDA*)

主要是设计乐观估计函数来减枝假设中心区域有6个2,2个3,那肯定是消掉3最好,毕竟就两个。那么理想情况下,旋转一次就能把一个3变成2,那么最少操作2次。我们用h()来计算最少还要操作几次,其原理是假设中心区域都放1或2或3,返回至少操作的次数中最小的数maxd是假设最多能操作的数;d是已经操作的数;那么就可以得出乐观估计函数   h()+d>maxd  其含义为 : 若

2016-05-08 15:14:37 534

原创 八面码问题(BFS+Hash)

#include#include#include#include#include#include#include#include#includeusing namespace std;typedef int State[9];const int maxn=1000000;State st[maxn],goal; //相当于st[maxn][9]保存走的每一步下的8个数字

2016-05-07 09:18:28 472

原创 UVa 12118 Inspector's Dilemma

根据欧拉回路的性质算出来的http://blog.csdn.net/wcr1996/article/details/43309671看了大神的,写下自己理解假设一开始只有题中给定的限定的边,若不联通,就一条一条边加,加边要加在两个奇点之间,但是题目只要求求至少有几条边,所以只需算一下就好了。计算所有奇点数,连接n个点最少n-1条边若没有E边的限制,且一共只能有两个奇点。第一

2016-05-02 14:30:37 306

原创 UVa 1599 Ideal Path[待AC]

dix[]保存到终点的最短权值,d[]保存到终点的最短边长结构体保存边和权值,二维数组太大用不了;一直Runtime Error.....#include#include#include#include#include#include#includeusing namespace std;const int INF=(1<<30);const int maxn=100

2016-05-02 08:35:28 303

原创 UVa Self-Assembly(topo sort)[待AC]

#include#include#include#includeusing namespace std;int G[52][52],c[52];bool topo(int u){// printf("%c ",u%26+'A'); c[u]=-1; //visiting; for(int v=0;v<52;v++) { if(G[u][v]){// pri

2016-05-01 21:46:13 346

原创 UVa 1600 Patrol Robot[待AC]

front表示当前搜索层,rear表示上一层d[]表示第几层,b[]表示穿越的障碍数#include#include#include#include#include#includeusing namespace std;const int M=1000;int G[25][25],k,x,y;const int dx[]={0,1,-1,0};const int dy[

2016-05-01 21:36:07 254

原创 UVa 439 Knight Moves

BFS可以想成树的层序遍历,关键是1)判重,表示偷懒用set判重; 2)判断搜索到第几层,用front表示当前层数,rear表示上一层层数。#include#include#include#include#include#includeusing namespace std;set st;char s1[5],s2[5];const int dx[]={2,1,-1,-2

2016-05-01 19:40:33 239

原创 UVa 10129 Play On Words

如果一个单词头和尾字母一样就不用考虑这个单词了; 重复的单词也不用考虑; 并且单词肯定是线性的,所以肯定有两个奇点,一个起点一个终点;在根据欧拉回路的充要条件判断出度入度关系,判断图是否连通就好了#include#include#includeusing namespace std;int in[30],out[30],G[30][30];int vis[30];void eu

2016-05-01 11:54:48 256

原创 欧拉回路(一笔画)

欧拉回路判断:对于无向图:1.两个或没有奇点;2.图连通;对于有向图:1. 两种 (1)一个点出度大于入度1且另一个点入度大于出度1; (2)入度都等于出度; 2.图连通;判断图连通1.dfs;2.bfs;3.floodfill; 即从某个点出发能否把所有点都遍历到;输出欧拉路径: 从上述任一奇点出发(若无奇点则任一点出发就好);1) 随便找一条未走过的相通的边

2016-05-01 11:02:12 1752

空空如也

空空如也

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

TA关注的人

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