自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AC_Arthur的专栏

Always challenge miracles!

原创 Agri-Net.(POJ-1258)(最小生成树)

最小生成树算法。 #include #include #include #include #include #include using namespace std; const int INF = 1000000000; int cost[105][105]; int mincost[105]...

2015-04-30 20:22:54

阅读数 1093

评论数 1

原创 Silver Cow Party.(POJ-3268)

本来想用Floyd算法,可惜超时,毕竟复杂度太高,而且并没有必要求出任意两点间的最短距离。 求两点间的最短路有两种方法,dijkstra和Bellman ,前者不能有负圈,后者可以有负圈,另外,Floyd也可以求带负圈的最短距离。 我们只需要求出x到其他个点的最短距离和个点到它的最短距离就行了...

2015-04-30 19:43:00

阅读数 709

评论数 0

原创 Wormholes.(POJ-3259)

最短路Bellman的算法,只需用到判断是否存在负圈的部分,因为只要存在负圈,则一定有一条路可以返回起点并且时间还原(一开始题意理解的不好,注意如果返回起点的时间为负数,其实也是可以的,应该是默认了返回起始时间,因为时间不能为负。)  所以,实质就是判断是否存在负圈。 #include #inc...

2015-04-29 17:34:26

阅读数 885

评论数 1

原创 Six Degrees of Cowvin Bacon.(POJ-2139)

一道简单的图论题,不过穿上了很好的外衣,实质就是一个任意两点间最短路问题,比较适合用Floyd算法 #include #include using namespace std; const int INF = 100000; int n,m,t,d[305][305],a[305]; int ma...

2015-04-26 16:53:28

阅读数 867

评论数 0

原创 Find them, Catch them.(POJ-1703)(并查集)

本题也是一道经典的并查集题目,只不过并不是直来直去的,因为需要维护两组关系:同一伙、不是同一伙。 那要怎么办呢,一开始我用了vector来保存对立面,建立两个并查集,结果很自然是超时的,因为循环了太多次。 之后看别人的题解,感觉有点复杂,看的不是很明白,只有一篇给出了一个简单的方法,然后我又重...

2015-04-25 18:58:18

阅读数 825

评论数 0

原创 SDKD TeamContest F(2014上海全国邀请赛)

这次对内组队赛一共斩获3题,A、F、J C题wcr给我剧透了一下题意之后写了出来,但是到最后也没判出来,结果WA,在HDOJ上WA了一次之后成功AC 总的来说,我负责的A题其实很水,由于我的判断失误,导致了WA了4次才A,F题有一些细节一开始也没有考虑到,J题题意理解的也有问题。 A题: ...

2015-04-25 10:06:44

阅读数 1021

评论数 0

原创 Wireless Network(POJ-2236)(并查集)

由于查询次数可能很多,相互关联的电脑也可能很多,而各个电脑之间的关系只有合并关系和查询,符合并查集的特点。 并查集更偏模板一点,没有什么思维难度,只要把握好需要使用并查集的条件就好了。 #include #include #include #include #include #include ...

2015-04-22 17:08:51

阅读数 739

评论数 0

原创 食物链(POJ-1182)

经典并查集的使用。 并查集可以高效的维护集合之间的关系。还可以判断图的连通性。 #include #include #include #include #include using namespace std; const int max_n = 50005*3; const int max_...

2015-04-22 16:02:51

阅读数 775

评论数 0

原创 Cheapest Palindrome.(POJ-3280)

经典DP。影响决策的是字符串的内容。而添加和删除字符本质上是一样的,我们不管选择哪一种都可以,所以只需要取两者中费用最小的。 状态转移方程就是: if(s[i]==s[j]) dp[i][j] = dp[i+1][j-1];         else dp[i][j] = min(dp[i+...

2015-04-20 17:14:11

阅读数 853

评论数 0

原创 1025 - A Spy in the Metro

经典dp 时间单向流动,是一个天然的序列,影响到决策的只有时间和所处的车站,所以用dp[i][j]表示在i时刻你在j车站,最少还需要等待多长时间。 状态就是时间和车站序号,状态转移方程就是  1、如果在该时刻该车站没有列车,等待时间+1;2、如果有向右开的列车dp[i][j] = min(dp...

2015-04-20 17:00:49

阅读数 1048

评论数 0

原创 Milking Time.(POJ-3616)

一道经典的DP,对于DP问题,关键是要找准决策点,即需要做出决策的选择点。 本题有两个枚举点,一个是时间N,还有一个是挤奶的时间区间M; 然而枚举每个时间点是没有意义的,而且时间的范围很大,所以可以直接枚举挤奶的时间区间,dp[i]指的就是在第i个时间区间挤奶所获得的最大收益。递推公式dp[i]...

2015-04-18 17:01:37

阅读数 724

评论数 0

原创 Hopscotch.(POJ-3050)

穷竭搜索。。无法剪枝。 #include #include #include #include #include using namespace std; int a[10][10]; char A[15]; int dx[] = {0,1,0,-1}; int dy[] = {1,0,-1,0...

2015-04-16 16:40:56

阅读数 750

评论数 0

原创 Cow Bowling(POJ-3176)

基础DP。 状态转移方程为:d[i][j] = a[i][j] + (i==n ? 0 : max(dp(i+1,j),dp(i+1,j+1))); i是在第i层,j是在该层的第几个数。 这一层的最优解取决于下一层的情况,而每一层都有两个决策,条件 if(d[i][j]>=0) ret...

2015-04-16 16:35:22

阅读数 787

评论数 0

原创 Apple Catching.(POJ-2385)

一道经典的DP,算是接触的第一道吧,说说我的体会吧。    做动归题的关键就是写状态转移方程, 关键是要找到可以枚举的量,也就是说这个dp数组里的下标代表的是什么。 并且要具有唯一性。 通常是枚举状态,对一个状态枚举出当前最佳状态。 不过不同层次的状态如何转移的还不是很清楚,以后多做题,多理...

2015-04-16 15:55:11

阅读数 815

评论数 0

原创 Backward Digit Sums(POJ-3187)

本来以为会超时,看来是想多了,63ms,看来对时间复杂度的判断能力还是不行啊。这个题正是next_permutation()函数的用武之地。 #include #include #include #include #include #include using namespace std; in...

2015-04-14 16:24:21

阅读数 933

评论数 0

原创 Smallest Difference(POJ-2718)

暴搜一下就行了,确实也没法优化什么。 不过枚举一半,另一半用next_permutation()函数应该是会快一些的。 #include #include #include #include #include #include using namespace std; int T,a[20],n...

2015-04-14 15:45:46

阅读数 649

评论数 0

原创 Meteor Shower(POJ-3669)

这道题的输入部分,写错了一个符号,结果就各种WA,实在不应该,既然写一次就应该仔细,力求一遍成功。 思路:用vis数组记录每个点被炸弹炸到的最近时间。用d数组记录当前时间。当d 当然,因为炸弹会波及四周,所以数组应该稍微开大一点。 #include #include #include #in...

2015-04-14 14:30:28

阅读数 1044

评论数 0

原创 Red and Black.(POJ-1979)

DFS水题。 #include #include #include #include #include using namespace std; int dx[] = {0,1,0,-1} ; int dy[] = {1,0,-1,0} ; int n,m,maxn; int vis[25][2...

2015-04-11 16:50:45

阅读数 651

评论数 0

原创 Curling 2.0(POJ-3009)

典型DFS搜索。  #include #include #include #include #include using namespace std; int w,h,maxn; bool ok ; int board[25][25]; int dx[] = {1,0,-1,0} ; int d...

2015-04-11 16:48:07

阅读数 659

评论数 0

原创 Best Cow Line(POJ-3617)

经典的贪心算法。   贪心算法的特点是总是取最优解,最后得到的也是最优,这一点上与动归不同。动归和搜索都是多策略的,所以贪心的理解难度还是很小的。 #include #include #include #include #include #include #include using names...

2015-04-11 16:43:24

阅读数 701

评论数 0

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