自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rain

I have a dream!An AC deram!! orz orz orz orz

  • 博客(46)
  • 收藏
  • 关注

原创 HDU-6040 Hints of sd0061(线性找第k小)

大佬的博客链接:http://blog.csdn.net/qq_31759205/article/details/76154626传送门:HDU-6040题意:给出n个数字,由m次查询,第i次查询问第b[i]小的数是多少题解:线性找第k小用到一个STLnth_element(A, A + k, A+n) 表示在数组A的[

2017-07-30 17:54:36 260

原创 HDU5934Bomb(强连通缩点)

BombTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1416    Accepted Submission(s): 462Problem DescriptionThere are N bombs ne

2017-07-30 15:57:18 435

原创 HDU5510Bazinga(KMP+剪枝)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510题目大意:给n个字符串,求出最大的i使得对于第i个字符串,他的前i-1个字符串中至少有一个不是他的子串。思路:很容易想到利用KMP算法判断子串,但是直接操作是会超时的,所以我们加上一个剪枝:设立一个vis[i]数组,举个例子:如果1是3的子串,则

2017-07-29 18:33:02 335

原创 HDU5521Meeting(最短路建图)

MeetingTime Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 2988    Accepted Submission(s): 952Problem DescriptionBessie and her f

2017-07-29 18:31:03 366

原创 HDU5937Equation(暴搜+剪枝)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5937题意:给出1-9的个数,然后组成a+b=c的式子(1思路:算一下,有36个,满36个需要用到的a[i]的个数是17-i,先判满不满,a[i]=min(a[i],17-i),多于限制个没什么用,然后只要暴搜+剪枝#includeusing namespace std

2017-07-29 13:18:57 519

原创 HDU5952 Counting Cliques(思维+DFS)

题目大意:对于每个s点完全子图,如果i点在子图中,那么就枚举与i有边的其他点,每加入一个点,就判断一下是否和其他已加入的点有边,如果是就可以加入,否则不能加。 思路:对于每个s点完全子图,如果i点在子图中,那么就枚举与i有边的其他点,每加入一个点,就判断一下是否和其他已加入的点有边,如果是就可以加入,否则不能加。建图的时候从小的节点指向大的节点(单向边),因为最

2017-07-28 20:06:08 311

原创 HDU5950Recursive sequence(构造矩阵+矩阵乘法)

题目大意:求 f(n) = f(n−1)+2f∗(n−2)+n4,其中 f(1)=a,f(2)=b这道题可以推得:fn=fn−1+2fn−2+n4,因为n很大,明显可以用矩阵快速幂。但是我们会发现状态转移方程与n有关,这样我们需要利用二项式展开 n4=(n−1+1)4=C04(n−1)4+C14(n−1)3+C24(n−1)2+C34(n−1)1+C44(n

2017-07-28 19:55:49 431

原创 Lightoj1021Painful Bases (状压DP)

1021 - Painful BasesPDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBAs you know that sometimes base conversion is a painful task

2017-07-27 21:44:13 487

原创 HDU5961传递(思维)

思路:很简单就是对每个点做一次BFS,只要有深度>1的点就说明这个图不是传递的。同时有必要用vector优化一下。#includeusing namespace std;typedef long long ll;const int maxn = 1e4+105;const ll mod = 1e8+7;int dp[maxn], num[maxn];char s[maxn]

2017-07-26 21:04:38 507 1

原创 HDU5965扫雷(递推)

扫雷Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 0    Accepted Submission(s): 0Problem Description扫雷游戏是晨晨和小璐特别喜欢的智力游戏,她俩最近沉

2017-07-26 18:09:02 316

原创 CodeForces92D-Queue(单调队列)

题意:给一个序列,对于第i个数字a[i],在右边找到一个比它小的数,并且最靠右的位置k,输出k-i-1,如果一个都找不到,输出-1。对于序列的每个元素都要输出。思路:从最后一个数开始处理,若该数比队列中最后一个都小,则是-1,并加入队尾,否则就对队列中的数进行二分PS:想到单调队列中的数组下标具有单调性,然后可以进行二分是解题的关键。

2017-07-23 21:44:57 521

原创 POJ2823Sliding Window(单调队列)

题意:求数组中每k个下标连续的数字中的最大值和最小值思路:相当于HDU3530和HDU1506的综合应用#include#include#include#includeusing namespace std;const int maxn = 1e6+5;deque > q1, q2;int ans1[maxn], ans2[maxn];int main()

2017-07-23 20:22:37 298

原创 HDU1506Largest Rectangle in a Histogram(单调栈)

大佬讲解:http://blog.csdn.net/dgq8211/article/details/7740610http://blog.csdn.net/u013491262/article/details/22900261 这个图形从左到右由若干个 宽为1 高不确定 的小矩形构成,求出这个图形所包含的最大矩形面积。Input多组测试数据 每组测试数据的第一行为n(1

2017-07-23 19:56:30 369

原创 HDU3530Subsequence(单调队列)

题意:给n个数和m,k,问你数列中最长的子序列,其中最大值减去最小值大于等于m小于等于k思路:想着想着想到尺取去了,写了一半实现不了((/ □ \))。维护了两个队列,一个是以当前结束所构成的递减序列的位置,另一个是以当前结束构成的递增序列的位置,然后每次的最大值减去最小值,如果大于k,那么就更新两个中的一个,应该更新位置较小的那个,这样才能使得这个区间的长度最大,然后就这么更新就行了

2017-07-23 17:24:08 389

原创 HDU3706Second My Problem First(单调队列)

Second My Problem FirstTime Limit: 12000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1928    Accepted Submission(s): 731Problem DescriptionGi

2017-07-23 17:09:17 432

原创 POJ 3280Cheapest Palindrome(区间DP)

题意:给出一个由m中字母组成的长度为n的串,给出m种字母添加和删除花费的代价,求让给出的串变成回文串的代价。思路:dp[i][j]表示将[i,j]区间的字符串变成回文串的最小花费,然后又如下转移:如果s[i] == s[j]  那么 dp[i][i] = dp[i + 1][j - 1]否则 dp[i][j] = min(dp[i + 1][j]

2017-07-23 12:03:01 264

原创 HDU 5119 Happy Matt Friends(DP)

题意:有N个人,每个人有一个权值,挑选一些人并将他们的权值异或,求最后得到的值大于M的取法有多少种思路:类似于背包,枚举的是异或的和,给定的数你可以选择放或者不放,dp[i][j]代表的是前 i 个数中选择k个异或的和为j。#includeusing namespace std;typedef long long ll;ll dp[2][1<<20];int a[42]

2017-07-22 19:47:58 274

原创 HDU5135Little Zu Chongzhi's Triangles(状态压缩DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5135题意:给出n根木棍,随意组成几个三角形,问组合的面积最大是多少;思路:用状态压缩,首先把可以组成的三角形的合法情况全都放进vector里,然后枚举。#includeusing namespace std;int s[12];do

2017-07-22 19:44:41 278

原创 HDU5536 Chip Factory Trie(01字典树)

题意:给出n(3≤n≤1000)n(3≤n≤1000)个数字,求max(si+sj)⨁skmax(si+sj)⨁sk,而且i,j,ki,j,k互不相等。分析:把每个数字看成一个0101字符串插入倒Trie树中去,枚举ii和jj,然后把sisi和sjsj从Trie树中删去。然后在Trie树中贪心找到能与si+sjsi+sj异或得到的最大值。具体匹配的过程中是这样的,首

2017-07-22 13:21:28 238

原创 HDU5115Dire Wolf(区间DP)

题目大意:你是一个战士现在面对,一群狼,每只狼都有一定的主动攻击力和附带攻击力。你杀死一只狼。你会受到这只狼的(主动攻击力+旁边两只狼的附带攻击力)这么多伤害~现在问你如何选择杀狼的顺序使的杀完所有狼时,自己受到的伤害最小。(提醒,狼杀死后就消失,身边原本相隔的两只狼会变成相邻,而且不需要考虑狼围城环这种情况)思路:枚举区间内最后一个被杀的狼#includeusing n

2017-07-21 20:18:47 388

原创 POJ2289Jamie's Contact Groups(二分图多重匹配+二分)

题意: 给定一个规模为n的名单,要将名单中的人归到m个组中,给出每个人可能的分组号,需要确定一种分配方案,使得最大规模的组最小。思路: 一对多的二分图的多重匹配。二分图的多重匹配算法的实现类似于匈牙利算法,对于集合C中的元素xi,找到一个与其相连的元素yi后,检查匈牙利算法的两个条件是否成立,若yi未被匹配,则将xi,yi匹配。否则,如果与yi匹配的元素已经达到上限,那么在所有与yi匹配的元素中

2017-07-21 16:15:41 601

原创 HDU3829Cat VS Dog(二分图最大独立集)

题目描述:动物园有N只猫,M只狗,P个小孩。每个小孩都有自己喜欢的动物和讨厌的动物,如果他喜欢狗,那么就讨厌猫,如果他讨厌猫,那么他就喜欢狗。某个小孩能开心,当且仅当他喜欢的动物留在动物园和讨厌的动物不在动物园里面。现让管理员通过带走某些动物,问最多能使多少个孩子开心。解题思路:题目有一个关键点,孩子喜欢猫,必然不喜欢狗,反之。 即猫和猫之间,狗和狗之间一定不存在矛盾关

2017-07-21 14:02:27 375

原创 HDU5137How Many Maos Does the Guanxi Worth(最短路)

题意:从2~n-1这几个点中任意去掉一个点,使得从1到n的最短路径最大,如果任意去掉一个点1~n无通路输出Inf。思路:枚举去掉2~n-1个点,依次用spfa算法求取最短路,去最大即可#includeusing namespace std;#define pii pairconst int maxn = 35;int n, m;struct Edge{ in

2017-07-21 12:57:50 362

原创 HDU2376Average distance(树形dp|树上任意两点距离和的平均值)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2376思路:引:如果暴力枚举两点再求距离是显然会超时的。转换一下思路,我们可以对每条边,求所有可能的路径经过此边的次数:设这条边两端的点数分别为A和B,那 么这条边被经过的次数就是A*B,它对总的距离和的贡献就是(A*B*此边长度)。我们把所有边的贡献求总和,再除以总路径数N*(N-

2017-07-21 10:57:42 1908 1

原创 POJ1733 Parity game(并查集模型+带权并查集+离散化)

题意:有一个长度已知的01串,给出[l,r]这个区间中的1是奇数个还是偶数个,给出一系列语句问前几个是正确的思路:一类经典的并查集题目,经典模型就是将[l,r]这个区间化为(l-1,r],那么1的个数就可以表示为sum[r]-sum[l-1],也就确定了奇偶性,我们可以用r[]数组表示这个端点到它的根节点的1的奇偶(这个区间就是(i,root(i)](0代表偶,1代表奇

2017-07-19 20:56:15 365

原创 HDU5501The Highest Mark(贪心+背包)

传送门:点击打开链接题意:类似cf的赛制,每道题目有A,B,C三个值,A表示初始分数,B表示每分钟题的分数会减少B,C表示做这道题需要C分钟,数据保证分数不会变为负数。现在给出比赛时长,问安排做题的顺序,求最大得分。思路:这道题是一道非常经典的题。首先很容易想到一件事,给出的题哪个先做没有先后顺序,那么在动态规划的时候,必然有前后顺序,所以要么就是状态压缩,要么就是

2017-07-19 17:05:33 405

原创 POJ 2594 Treasure Exploration(最小路径覆盖+Floyd求传递闭包)

题目链接题目大意: 一个有向图中, 有若干条连接的路线, 问最少放多少个机器人,可以将整个图上的点都走过。 最小路径覆盖问题。分析: 这时最小路径覆盖问题, 最小路径覆盖 = |V| - 最大匹配数。 (有关最小路径覆盖,最大匹配问题,相关概念不懂得点这里) 当然做这道题还有一个坑!! 如果有向图的边有相交的情况,那么就不能简单的对原图求二分匹配了 详细讲解看这

2017-07-19 14:37:58 393

原创 HDU 1151 Air Raid(最小路径覆盖)

题目大意:在一个城镇,有m个路口,和n条路,这些路都是单向的,而且路不会形成环,现在要弄一些伞兵去巡查这个城镇,伞兵只能沿着路的方向走,问最少需要多少伞兵才能把所有的路口搜一遍。解题思路:这个题目就转换成求解有向无环图的最小路径覆盖问题了。        一个结论:有向无环图的最小路径覆盖=该图的顶点数-该图(原图)的最大匹配。而路径覆盖的定义就是:

2017-07-19 13:41:07 277

转载 【最小边覆盖 & 最小路径覆盖 & 最小顶点覆盖 & 最大独立集 & 最大团】

最小边覆盖 = 最大独立集 = |V| - 最大匹配数这个是在原图是二分图上进行的最小路径覆盖和最小边覆盖不同,不要求给的图是二分图,而是要求是N x N的有向图,不能有环,然后根据原图构造二分图,构造方法是将点一分为二,如,i分为i1和i2然后如果i和j有边,那么就在i1和j2之间连一条边。由此构成二分图然后最小路径覆盖 = n-m,n为原图的点的个数,m为新造二分图

2017-07-19 13:18:46 634

原创 HDU1054Strategic Game(最小顶点覆盖数)

我们来先了解一下什么是最小顶点覆盖;图G的顶点覆盖是一个顶点集合V,使得G中的每一条边都接触V中的至少一个顶点。我们称集合V覆盖了G的边。最小顶点覆盖是用最少的顶点来覆盖所有的边。顶点覆盖数是最小顶点覆盖的大小。相应地,图G的边覆盖是一个边集合E,使得G中的每一个顶点都接触E中的至少一条边。如果只说覆盖,则通常是指顶点覆盖,而不是边覆盖。在二分图中  :最大匹配

2017-07-19 11:31:34 560

原创 Codeforces821D Okabe and City(思维建图+最短路运用)

题目大意:现在给你N*M的一个矩阵,现在上边一共有K个永恒亮着的点,主人公从左上角出发,走到的点必须有亮光才行。但是现在不保证有亮光的点能够使得主人公到达右下角,所以他可以花费1单位金币去使得一行或者一列暂时性的亮着,如果他想再次使用魔法,那么之前暂时亮着的部分就必须灭掉了。问他最少花费多少金币,能够从左上角走到右下角。如果不能走到,输出-1.

2017-07-18 20:19:39 505

原创 SPOJ Fast Maximum Matching(二分图最大匹配Hopcroft-Carp)

题目大意:有n1头公牛和n2头母牛,给出公母之间的m对配对关系,求最大匹配数。数据范围:  1 注意:该模板存边使用的是前向星,且二部图左右两边的点集编号均从1开始#include#include#include#include#includeusing namespace std;const int maxn = 5e4+5;const int ma

2017-07-18 15:43:21 356

原创 Codeforce#424E. Cards Sorting(脑洞+树状数组)

E. Cards Sortingtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasily has a deck of cards consisting of n 

2017-07-18 14:51:17 610

原创 HDU2389Rain on your Parade(二分图最大匹配之Hopcroft-Karp)

大意:在一个二维坐标系上有nx个人和ny把伞,每个人都有自己的移动速度,问有多少人可以再tmin内移动到不同的雨伞处(不允许两个人共用一把伞)。思路:很容易可以看出,这是一个二分图模型,雨伞和人一一对应,典型的匹配问题,而又要求最大,所以是二分最大匹配问题,再看看题目的数据量,nx:3000,ny:3000,极限情况下有9000000条边,很明显,匈牙利算法可能会TLE,所以为了降低时间复杂度

2017-07-18 14:47:12 395

原创 HDU 4185 Oil Skimming(二分图最大匹配)

大佬博客:http://blog.csdn.net/u013480600/article/details/38686499HDU 4185 Oil Skimming(二分图最大匹配)http://acm.hdu.edu.cn/showproblem.php?pid=4185题意:       有个N*N的字符矩阵,你必须用竖直或水平的1*2小矩阵去覆盖字符矩阵中

2017-07-17 20:57:44 320

原创 POJ 1466 Girls and Boys(二分图最大独立集)

大佬博客:http://blog.csdn.net/u013480600/article/details/38638219POJ 1466 Girls and Boys(二分图最大独立集)http://poj.org/problem?id=1466题意:       在一群男女同学之间存在”浪漫关系”,且该关系只存在于男同学与女同学之间.现在给出你比如2号学生与4号学生

2017-07-17 20:54:02 425

原创 Codeforces 831D Office Keys(思维or二分)

D. Office Keystime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere are n people and k keys on a straigh

2017-07-17 20:51:44 726

原创 Educational Codeforces Round 25E. Minimal Labels(拓扑排序+思维)

E. Minimal Labelstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a directed acyclic graph wit

2017-07-17 14:33:09 450

原创 HDU1907John(尼姆博弈-先取光者输)

大佬的讲解:http://blog.csdn.net/fsss_7/article/details/51374659链接:http://acm.hdu.edu.cn/showproblem.php?pid=1907题意:有n个装有若干糖果的盒子,有两个人轮流拿糖果,只能在一个盒子中拿,至少拿一个糖果最多可拿掉整盒。拿完最后一次的人输。分析:经典的Nim博弈的一点变形。设糖果数为

2017-07-16 14:30:12 668

原创 HDU5898odd-even number(数位dp)

题意:给出一个区间[l, r],问其中数位中连续的奇数长度为偶数并且连续的偶数长度为奇数的个数。(1#includeusing namespace std;typedef long long ll;ll dp[25][25][2];//第一维表示长度、第二维表示连续长度、第三维是否存在前缀0int bit[25];// 第几位 前一个状态 连续长度 是否存在前缀0,

2017-07-06 11:02:29 244

空空如也

空空如也

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

TA关注的人

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