自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACM_Fish的博客

一条咸鱼

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

原创 HDU1024 - Max Sum Plus Plus(DP+降维优化)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024题目大意:给定一个长度为n的序列,一个数m,求m段不相交的区间和的最大值。解题过程:自己好菜啊,简单的状态转移方程都没推出来,值得以后注意的是,以后定义状态不要太”松“了。比如刚开始定义的状态dp[i][j]dp[i][j]前ii个数构成的jj个区间和的最大值,然后发现不会转移。最后看了博客才发现别

2017-06-30 15:18:52 340

原创 HDU2196 - Computer(树的直径+DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196题目大意:给定一个无向连通无环图,求每个节点到达的最远的节点的距离。解题过程:上午看了一下DP进阶之路的PDF,突然想学树型DP。然后找到了这个题,之前做了一个POJ的BFS求树的直径的,这次再来一发DP的。题目分析:由于题目给的是无向连通无环图,这里构造出一颗树来,不妨假设节点11为根。那么对于任

2017-06-28 20:41:19 704

原创 UVA11235 - Frequent values(游程编码+线段树)

题目链接:https://vjudge.net/problem/UVA-11235题目大意:给定一个递增序列,询问一段区间内出现频率最多的数出现的次数。解题过程:之前图灵杯比赛的题,当时照着板子敲A的,现在突发奇想补一下题,感觉还是挺简单的,就是用到了游程编码。题目分析:由于题目是有序的,那么可以很方便的将一段相同的数合为一个区间,data[i]表示第i段区间元素个数,lb[i]记录第i段区间的左边

2017-06-28 16:56:15 380

原创 CodeForces743D - Chloe and pleasant prizes(树型DP)

题目链接:https://vjudge.net/problem/CodeForces-743D题目大意:给定一颗树,每个节点上有一个权值,求找出两颗不相交子树,使两颗子树的权值和最大。解题过程:好久好久好久之前CF比赛的题,当时好像是没读懂题意,虽然说现在也有点读不懂,最后看了下别人的博客才知道题意。看到下面的标签上有DFS和DP,于是往树型DP上想,不过没系统的学过,之前只写过一个求树的重心的,于

2017-06-27 17:10:47 437

原创 CodeForces734E - Anton and Tree(缩点+树的直径)

题目链接:http://codeforces.com/problemset/problem/734/E题目大意:给定一棵无根数,每个节点有黑白两种颜色,现在有一种涂色操作,一次可以将一块连通的同色区域涂为一个颜色,现在求最少操作几次可以将整棵树涂成黑色或白色。解题过程:因为之前做过一个涂板子的题,进行的操作和这个一样,也是先缩点。不过那个数据范围比较小,枚举所有点BFS一次,求最长路即可,但是做过数

2017-06-27 10:17:13 523

原创 HackerRank - pairs-again(暴力+预处理)

题目链接:https://www.hackerrank.com/contests/w26/challenges/pairs-again题目大意:给定一个数n,问有多少对a,ba,b满足xa+by=nxa+by=n至少有一个解,a<ba<b并且0<b,0<y0 < b, 0 < y,且x,yx,y是整数。解题过程:比赛时候的题,当初那场比赛运气还不错,这道题看到一堆人WA了60多发,于是没敢去做,后来

2017-06-26 11:13:17 449

原创 ZOJ3385 - Hanami Party (贪心)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3385题目大意:妖梦要准备一个party,所以需要许多食物,初始化妖梦的烹饪技能为LL,每天妖梦有两种选择,一是选择当天做LL个食物,二是提升自己的烹饪技能为L+1L+1。但是幽幽子非常能吃,每天幽幽子都要吃AiA_i的食物,当没食物吃后幽幽子会非常生气,甚至想把妖梦

2017-06-25 20:48:12 669

原创 HDU5527 - Too Rich(贪心)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5527题目大意:现在你有PP元钱,有1010种不同面值的硬币,每种硬币有一定的数量,求用尽量多的硬币凑出P元钱,有可能凑不出。解题过程:当初比赛没看这道题,最近才补,看起来挺简单的,实际知道思路上也不难……题目分析:要用尽量多的硬币凑PP元钱,假设我现在硬币总共的面值和为MM,那么换个思路,我现在要从总共

2017-06-25 18:56:01 574

原创 CodeChef MOU2H - Mountain Holidays 2 (DP)

题目链接:https://www.codechef.com/problems/MOU2H题目大意:理解题意后就是求一个序列中有多少个不同的子序列。解题过程:刚开始看错了题意,样例过不去,后来去翻了博客,才看懂题意,看懂题意后就好做了,就是一个简单的动态规划。题目分析:因为要求不同子序列的个数。定义状态dp[i]dp[i]为前[i]个数中,不同子序列的个数。那么对于dp[i]可以由已下方式转移而来,记

2017-06-25 11:09:44 362

原创 HDU4027 - Can you answer these queries? (线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027题目分析:区间开根号下取整,询问区间和。解题过程:注意,进行更新和询问的操作的时候要注意xx和yy的大小,这里被坑了,差点以为自己清奇的脑洞不对……发现好多人都是转化为单点更新,自己比较耿直,写了好长的区间更新代码,也算是一题多解吧。题目分析:单点更新解法:首先要注意到对于开根号操作,这里的输入数据

2017-06-21 15:57:13 309

原创 HDU1394 - Minimum Inversion Number(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题目大意:给定一个由00到n−1n-1组成,长度为nn每个元素唯一的序列,可以进行一种操作,把第一个元素放到最后一个位置。求经过若干次操作后的,最小逆序对数。解题过程:这题之前写过一个暴力解法的题解,现在用线段树来解决一下。题目分析:这里用线段树主要是求解初始状态的逆序对数,对于每次的操作有一个结论

2017-06-21 14:49:19 314

原创 线段树小结

前言:实验室要开展每周的算法讲堂活动,大概是每周一个集训队员来给大家将一个知识点,于是我去讲线段树来开头了,但是自己好弱啊,自从寒假集训后就一直没敲过线段树代码了,于是这几天一直在照着金巨巨的博客刷线段树的题(也是抄的金巨巨的模板…)。这里总结一些做到的题,一些线段树的基本思路,也当做理一下总结的思路。用到的一些宏定义:#define lson root<<1#define rson root<<

2017-06-19 12:46:38 433

原创 匹配、覆盖、独立集、二分图与网络流

概念:设图 G={V,E}G = \{V, E\}匹配:在GG中两两没有公共端点的边集合M⊆EM\subseteq E边覆盖:GG中任意顶点都至少是FF中某条边的端点的边集合F⊆EF\subseteq E独立集:在GG中两两互不相连的顶点集合S⊆VS\subseteq V顶点覆盖:GG中的任意边都有至少一个端点属于SS的顶点集合S⊆VS\subseteq V定理:对于不存在独立点的图,|

2017-06-14 17:08:01 527

原创 ZOJ3781 - Paint the Grid Reloaded(缩点+最短路)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3781题目大意:给定一个N×MN\times M的矩阵,每个格子涂着黑色或白色。现在有一种涂色操作,每次涂色可以将一个格子与这个格子连通的格子涂成一个颜色。连通是指上下左右的边相接。求最少的操作次数,将这个矩阵涂成一种颜色。解题过程:很久以前比赛的题,当时看到这个题一

2017-06-13 11:36:07 348

原创 POJ3259 - Wormholes(连通图判断负环)

题目链接;http://poj.org/problem?id=3259题目大意:给出N个图,每个图有两种边,一个是无向的正权边,一种是有向的负权边,保证所给的图为连通图,求是否存在负环。解题过程:刚开始以为给出的图不连通,然后用Floyd超时,后来问了学长,翻了下POJ的讨论,发现大家都是默认为图连通做的……然后敲了下Bellman和SPFA判断负环就A了。题目分析:因为保证图联通,那么可以假设从任

2017-06-13 11:10:17 603

原创 UVA12511 - Virus(DP+最长公共上升子序列)

题目链接:https://vjudge.net/problem/UVA-12511题目大意:给定两个序列,求出两个序列的最长公共上升子序列(严格上升)。解题过程:比赛的时候没有做出来,非常咸鱼的一场比赛,当时是想错了状态。当时想的状态是定义dp[i][j]dp[i][j],意味以第一个串第前i个元素,第二个串前j个元素的最长公共上升子序列长度。但是这样定义状态有后效性,比如当前我知道dp[i][j]

2017-06-11 21:22:09 368

原创 使用OpenMP实现并行归并排序(Report)

归并排序算法:归并排序算法是一种经典的分治算法。分治分治算法分为由三部分组成: 分解:将原问题分解为一系列子问题; 解决:递归的解决各个子问题。若子问题足够小,那么直接求解。 合并:将子问题的结果合并成原问题。归并排序步骤归并排序完全依照了上述模式,直观的操作如下: 分解:将n个元素分成各含n/2个元素的子序列; 解决:用合并排序法对两个子序列递归地排序; 合并:合并两个已经排序的子序列

2017-06-05 16:41:19 5622

空空如也

空空如也

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

TA关注的人

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