上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
摘要: 题目链接:传送门 题目思路:状态压缩DP(详见注释) 阅读全文
posted @ 2016-05-09 16:47 Kurokey 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 题目思路:并查集加分组背包 阅读全文
posted @ 2016-05-07 08:01 Kurokey 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 题目大意:首先输入n,m,c;n代表点数,m是额外的边,c是层与层之间的权值。然后接下来n个数分别表示第i个点属于哪个层(层与层之间可互通),然后m行,每行三个数 x,y,v,表示点x到y权值为v求点1到点n的最短路。 题目思路:把每个层拆成两个点(点到相应层之间距离为0),注意是 阅读全文
posted @ 2016-05-06 20:46 Kurokey 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 题目大意:有n个昆虫,有m组关系,接下来m行表示两个昆虫性别不同,问是否有矛盾情况(同男同女) 题目思路:并查集的高级应用,开两倍数组大小,后n个数组表示和当前昆虫不同性别的集合 阅读全文
posted @ 2016-05-01 22:49 Kurokey 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 并查集高级应用一般是带权并查集,首先肯定要维护每个元素之间相应的关系,一个简单的数组要实现这个功能,则要将数组开大,将数组分为多个段,使每一段数组 代表不同的含义,而对于段与段之间的联系,就实现了对并查集带权的处理,一般来说,并查集数组大小是 n*m(n:题目所给元素的范围,m:相互关系的数目), 阅读全文
posted @ 2016-05-01 21:16 Kurokey 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 题目思路:并查集高级应用(类似食物链那道题),主要是维护两个集合(监狱里犯人的关系),同一个集合里的是朋友,否则是敌人,如果敌人在同一间监狱里, 则最小的最大冲突值求出。 阅读全文
posted @ 2016-05-01 21:06 Kurokey 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 题目大意:给你一幅图(单向边),找出从起点到终点有多少条不同路径(最短路或者比最短路长度大1) 题目思路:二维dijkstra,真的是要对dijkstra理解非常透彻才行,距离数组d开成二维表示最短路与次短路,同时需要一个cnt数组,记录有多少条路径 对于当前点有四种更新情况: 1 阅读全文
posted @ 2016-04-28 17:57 Kurokey 阅读(283) 评论(0) 推荐(0) 编辑
摘要: int g[501][501],n,m; int vis[501],link[501]; ///link数组是记录匹配情况 int dfs(int x){ for(int i=1;i<=n;++i){ ///n是第二个集合的元素个数 if(!vis[i]&&g[x][i]){ vis[i]=1; if(!lin... 阅读全文
posted @ 2016-04-24 17:01 Kurokey 阅读(191) 评论(0) 推荐(0) 编辑
摘要: History:传送门 上瘾(overdoes):传送门 阅读全文
posted @ 2016-04-21 12:38 Kurokey 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 题目大意:有一个长度为n的数组,有m次操作,每次操作输入 v x y,v==0时x~y区间内的数都开平方并且向下取整,v==1时求x~y区间内所有数的和。 题目思路:long long范围内的数开平方不超过7次就会变成1,所以我们更新的时候只需看x~y区间内的和是不是等于区间的长度 阅读全文
posted @ 2016-04-20 11:49 Kurokey 阅读(162) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页