上一页 1 2 3 4 5 6 ··· 19 下一页

2014年2月27日

矩阵快速幂模板

摘要: struct Matrix{ LL mat[MAXN][MAXN]; int r; void init(int n) { memset(mat,0,sizeof(mat)); r=n; }};Matrix matrix_mul(Matrix a,Matrix b){ Matrix ans; ans.init(a.r); ... 阅读全文

posted @ 2014-02-27 13:48 仗剑奔走天涯 阅读(186) 评论(0) 推荐(0) 编辑

LCA模板

摘要: LCA的tarjan算法 void LCA(int u){ p[u]=u; visit[u]=true; for(int i=head[u]; i!=-1; i=edge[i].next) { int v=edge[i].to; if(!visit[v]) { LCA(v); p[v]=u... 阅读全文

posted @ 2014-02-27 11:35 仗剑奔走天涯 阅读(178) 评论(0) 推荐(0) 编辑

2014年2月2日

Codeforces Round #226 (Div. 2 )

摘要: 这次精神状态不怎么好,第一题的描述看得我就蛋疼。。。看完就速度写了~~~最终fst了%>__#include #include #include #include #include #include using namespace std;int main(){ int n,c; cin>>n>>c; int a,ans=0; cin>>a; for(int i=2... 阅读全文

posted @ 2014-02-02 16:27 仗剑奔走天涯 阅读(350) 评论(0) 推荐(0) 编辑

2014年1月27日

Codeforces Round #225 (Div. 2)

摘要: 比赛时候只做出AB,E题一眼看过去似乎线段树能搞,但是写完过不了样例,才发现看错题了,然后比赛就没啥时间了~~整体状况还是很糟糕,A,B题实在出得太慢,然后持续到现在还没出过C题。。。不能更弱%>_#include #include #include #include using namespace std;#define MAXN 1005bool visit[MAXN][MAXN];int ... 阅读全文

posted @ 2014-01-27 20:53 仗剑奔走天涯 阅读(328) 评论(0) 推荐(0) 编辑

2013年12月11日

SGU132 - Another Chocolate Maniac(状态压缩DP)

摘要: 题目大意 给定一个N*M大小的大小的蛋糕,蛋糕的有些地方已经放置了东西,要求你在蛋糕上放入尽量少的1*2大小的巧克力,使得蛋糕不能够再放入巧克力 题解 和POJ1038恰好相反,此题是放入尽量少的巧克力,根据前两行的状态来进行当前行的放置,用dfs来进行三行的状态枚举,并同时检查放置是否合法,放完m列之后就可以进行状态转移了 代码: #include #include #include #incl... 阅读全文

posted @ 2013-12-11 19:19 仗剑奔走天涯 阅读(466) 评论(0) 推荐(0) 编辑

2013年12月6日

SRM 599 DIV 2

摘要: rating又掉了。。。变灰色了%>_ mikan, int weight) { int dp[5005]; memset(dp,0,sizeof(dp)); int v=5000-weight; for(size_t i=0; i=mikan[i]; j--) dp[j]=max(dp[j],dp[j-mikan[i]]+1); return dp[v]; }};2. 500pt BigFatInteger2题意给定四个整数A,B,C,D(1a,b;int prime[MAXN],... 阅读全文

posted @ 2013-12-06 15:12 仗剑奔走天涯 阅读(243) 评论(0) 推荐(0) 编辑

POJ1038 - Bugs Integrated, Inc.(状态压缩DP)

摘要: 题目大意 要求你在N*M大小的主板上嵌入2*3大小的芯片,不能够在损坏的格子放置,问最多能够嵌入多少块芯片? 题解 妈蛋,这道题折腾了好久,黑书上的讲解看了好几遍才稍微有点眉目(智商捉急),接着看了网上大牛的解题报告和实现代码才弄明白怎么用三进制来进行状态压缩,关键就是理解能够横着放置和竖着放置的条件。由于竖着放置会受到前面两行的影响,这样我们就可以用三进制来表示前面两行的状态了,然后根据前面两行... 阅读全文

posted @ 2013-12-06 13:12 仗剑奔走天涯 阅读(274) 评论(0) 推荐(0) 编辑

2013年12月3日

SGU223 - Little Kings(状态压缩DP)

摘要: 题目大意 给定一个N*N(n#include #include #include using namespace std;#define MAXN 11typedef long long LL;LL dp[MAXN][1>=1; } return ret;}void pre_solve(int n){ for(int i=0;i>1))) { ... 阅读全文

posted @ 2013-12-03 13:22 仗剑奔走天涯 阅读(459) 评论(0) 推荐(0) 编辑

POJ1185 - 炮兵阵地(状态压缩DP)

摘要: 题目大意 中文的。。直接搬过来。。。 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网... 阅读全文

posted @ 2013-12-03 11:31 仗剑奔走天涯 阅读(238) 评论(0) 推荐(0) 编辑

SGU131 - Hardwood floor(状态压缩DP)

摘要: 题目大意 给定一个N*M大小的矩形,要求你用1*2和2*2(缺个角)的砖块把矩形铺满(不能重叠),问总共有多少种铺法? 题解受POJ2411的影响,怎么都没想到3,4,5,6这几种情况该怎么放置,看了网上大牛的解题报告和代码(真是不好的习惯,可是太弱了就是想不出咋办%>_#include#include#includeusing namespace std;#define MAXN 10typed... 阅读全文

posted @ 2013-12-03 10:06 仗剑奔走天涯 阅读(506) 评论(0) 推荐(0) 编辑

2013年11月27日

POJ2411 - Mondriaan's Dream(状态压缩DP)

摘要: 题目大意 给定一个N*M大小的地板,要求你用1*2大小的砖块把地板铺满,问你有多少种方案? 题解 刚开始时看的是挑战程序设计竞赛上的关于铺砖块问题的讲解,研究一两天楞是没明白它代码是怎么写的,智商捉急,上面是用逐格进行转移的,据说神马插头DP。。。坑爹啊。。。然后果断放弃研究了。。。我们还是逐行的进行转移,这样比较好理解,方程表示为:dp[i][j]+=dp[i-1][k](能够从上一行的状态k转... 阅读全文

posted @ 2013-11-27 19:16 仗剑奔走天涯 阅读(395) 评论(0) 推荐(0) 编辑

2013年11月26日

POJ3254 - Corn Fields(状态压缩DP)

摘要: 题目大意 给定一个N*M大小的土地,土地有肥沃和贫瘠之分(每个单位土地用0,1来表示贫瘠和肥沃),要求你在肥沃的单位土地上种玉米,如果在某个单位土地上种了玉米,那么与它相邻的四个单位土地是不允许种玉米的,问你有多少种种玉米方案。(不种一算一种方案) 题解 很基础的状态压缩DP,我们可以逐行的进行状态转移,用二进制来表示一行的状态,方程表示为:dp[i]j]+=dp[i-1][k],表明我们可以从上... 阅读全文

posted @ 2013-11-26 16:24 仗剑奔走天涯 阅读(326) 评论(0) 推荐(0) 编辑

2013年11月23日

SRM 596 DIV 2

摘要: 前段时间终于配置好了TopCoder的环境,所以就拿这场的DIV2练习了一下1. 250pt FoxAndSightseeing题意给你n个城市的位置,他们在同一直线上,要求你跳过其中某一个城市,按顺序依次访问其他的城市,求距离的最小值题解由于数据规模为n position) { int ans=INF; for(int i=1;i0的最大整数。给定lo,hi,和p(是一个素数),请你计算loms;LL getAns(LL r,LL p){ ms.clear(); LL ans=0; for(LL i=... 阅读全文

posted @ 2013-11-23 17:59 仗剑奔走天涯 阅读(193) 评论(0) 推荐(0) 编辑

2013年11月21日

HDU4276 - The Ghost Blows Light(树形DP)

摘要: 题目大意 给定一棵n个结点的树,每个结点上有一定数量的treasure,经过每条边需要花一定的时间,要求你从结点1出发,在不超过时间T的情况下,最多能够获得的treasure是多少,并且要求结束于结点n 题解 本题主要的困难是如何恰好结束于结点n。 先进行一次dfs求出从结点1到结点n的最短时间s(假设此条路径为a),如果s比T还大,不能走完,输出-1。否则的话继续处理,由于路径a是最短路径,因此... 阅读全文

posted @ 2013-11-21 00:42 仗剑奔走天涯 阅读(316) 评论(0) 推荐(0) 编辑

POJ2486 - Apple Tree(树形DP)

摘要: 题目大意 给定一棵n个结点的树,每个结点上有一定数量的苹果,你可以从结点1开始走k步(从某个结点走到相邻的结点算一步),经过的结点上的苹果都可以吃掉,问你最多能够吃到多少苹果? 题解 蛋疼的问题就是可以往回走~~~~想N就木有想到解法,看了下网上的解题报告~~~~想到了其实还是挺容易理解的~~~分为两种情况,就是有些点只需要走一次,而有些则需要走两次。 方程表示: dp[0][u][j]表示从结点... 阅读全文

posted @ 2013-11-21 00:11 仗剑奔走天涯 阅读(171) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 19 下一页

导航