自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卡尔

划着一叶扁舟,想荡出万顷波

  • 博客(32)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 UVA315 && UVA 796 (求割点和桥,模版)

两题的共同之处 输入都很麻烦但是也难不倒我QAQ另外 第二题 有个trick点,要排序后输出UVA 315/* ***********************************************Author :angon************************************************ */#include #i

2016-08-30 10:57:22 641

翻译 POJ 1236 Network of Schools (强连通分量、缩点)

连通图一块概念和定理比较多,要记得东西很多。注意到 强连通分量是有向图的概念,双连通分支一般是无向图的概念。两者都和tarjan算法密不可分,但其实算法并不难,就是要开的数组和变量比较多,代码也有一定的灵活性,写的时候要注意细节。并且做题的时候往往都是要用到一些“定理、结论”。熟能生巧,唯有多做。思路来自于 PKU的《强连通分量》教学材料题意:给定一个有向图,求:1) 至少

2016-08-29 02:59:56 496

原创 树形 DP 总结

一、介绍1、什么是树型动态规划 顾名思义,树型动态规划就是在“树”的数据结构上的动态规划,平时作的动态规划都是线性的或者是建立在图上的,线性的动态规划有二种方向既向前和向后,相应的线性的动态规划有二种方法既顺推与逆推,而树型动态规划是建立在树上的,所以也相应的有二个方向:     1、叶->根:在回溯的时候从叶子节点往上更新信息    2、根 - >叶:往往是在从叶往根dfs一

2016-08-27 14:12:16 4441

原创 POJ 3140 Contestants Division (删边,简单树形DP)

应该说删点类型的题目比较直观,因为dfs的时候都是从点考虑的多。这题是要删一条边使得剩余的两个分支 价值差最小。也是做的第一题删边,一开始没底,但是仔细观察一下还是比较简单的。发现可以这样理解:删一个点和它父亲之间的这条边(因为父亲只有一个)。想到这里(这也不难想)就好办了,只要想办法记录每个节点 从它子树和父亲各能收获多少价值,它们的差值便是删除它和它父亲这条边的结果最后遍历一遍

2016-08-27 12:03:55 1161

原创 POJ 2378 Tree Cutting (简单树形DP、删点)

这题和求树的重心差不多。第一遍dfs,存下以每个节点为根的子树有多少个节点以及它下面最大的子树多少。第二遍dfs,遍历一下树,判断是否满足条件【代码】/* ***********************************************Author :angon********************************************

2016-08-26 16:42:08 617

原创 POJ 3107 Godfather (求树的重心)

看到这题我很惊讶,求删掉某点后子树节点最多的最小。这不就是求树的重心吗?而求重心在之前的POJ 1741已经做过了(而且在里面只是一小步)。直接把代码复制一下。。。具体代码里面也注释了。有一个trick点,别忘了重心要排序后输出,因此wa了一次【代码】/* ***********************************************Author :

2016-08-26 16:26:27 1643

原创 HDU 3586 Information Disturbing (枚举+树形DP)

题意:给定一个带权无向树,要切断所有叶子节点和1号节点(总根)的联系,每次切断边的费用不能超过上限limit,问在保证总费用按这题的要求:要使得limit尽可能的小,但是又要满足所以想在一次dfs里把limit和总费用都解决,几乎是不可能的……所以这题看似是简单,结果想了很久却不会做……正解是二分枚举limit,初始l=1,r=最大边权;判断在该limit下能否符合m。能则缩小li

2016-08-26 15:31:09 1127

原创 CodeForces D. Choosing Capital for Treeland (转化为树形DP)

恭喜一下自己……这题没看题解做出来的(虽然思路不小心瞄到了一眼)题意:给一个n节点的有向无环图,要找一个这样的点:该点到其它n-1要逆转的道路最少,(边,如果v要到u去,则要逆转该边方向)如果有多个这样的点,则升序输出所有思路:把边的方向化为权值,正向为1,逆向为0。问题转化为找哪些点的在遍历全图后总权值最大。这就是树形DP了,考虑每个节点,它可以从子树收获价值,也可以从父

2016-08-25 17:06:37 1933

原创 POJ 3162Walking Race( 树形dp+线段树处理区间)

吐槽一下这题题意真是看了半天,,作者英文水平你妈嗨你妈嗨题意最后是:一棵n个节点的树。wc爱跑步,跑n天,第i天从第i个节点开始跑步,每次跑到距第i个节点最远的那个节点(产生了n个距离),现在要在这n个距离里取连续的若干天,使得这些天里最大距离和最小距离的差小于M,问怎么取使得天数最多?发现这题和Hdu 2196 Computer有相同的部分,先求一下树上每个点到其它点的最远距离,存在

2016-08-25 15:04:58 808

原创 POJ 2152 Fire (树形DP,有趣)

我发现树形DP越来越有趣了……或者说树真的是一个很美妙的数据结构。【题意】n个节点组成的树,要在树一些点上建立消防站,每个点建站都有个cost[i],每个点如果不在当前的点上建站,也要依赖其他的消防站,并且距离不超过limit[i]。求符合上述条件的最小费用建站方案。n 【思路】想了很久没什么想法,状态表示和转移都没什么头绪……发现每个点它能从很多地方获取信息(父亲,爷爷,兄弟,叔

2016-08-25 01:50:03 1191

原创 POJ 1741 Tree(树的点分治、树形dp、男人八题)

【题意】求树上距离小于等于K的点对有多少个n有10000,所以必须卡到nlogn附近。变得尤为麻烦。首先,一对符合要求的点,它们经过的路径中一定可以找到一个根节点。每次我们都找以这个根为“中心”能形成多少点对。所以假如我们把节点1作为整棵树的根,然后算通过“节点1”能形成多少点对,ans+之。再递归子树同样计算。但显然,这样很可能会重复计算。在根节点的子树中,如果有两个“孙子”节点

2016-08-24 16:55:41 1729

原创 HDU 5834 Magic boy Bi Luo with his excited tree (树形DP)

这题很典型的树形dp可以看出来,但是要处理好所有的细节并不easy……至少对我来说是这样。先dfs一遍处理出:dp[u][0],最后一次不回来最大,dp[u][1],不回来次大,dp[u][2] , 回来;(以上都是在子树范围下)(想象一下,dp[u][i]是包含了其所有子树信息的)id[u] ,最后一次不回来的孩子id无疑:这里最关键的,也难点部分就在于 怎么处理“次

2016-08-21 13:53:51 1152 1

原创 HDU 2196 Computer (树形DP必做)

【题意】求树上每个点的最远距离是多少这题一直被称为树形dp的经典是有它的道理的,因为树dp就是把dp放到树上做了,一般是从上到下或从下到上(利用回溯)的移转状态。而这题很合适的需要两次dfs。对于(有向),dp[u][0]表示在u的子树下u的最远距离是多少dp[u][1]表示在u的子树下(和dp[u][0]不是同一孩子)u的次远距离是多少dp[u][2]表示通过u的父亲能走

2016-08-20 15:00:54 2924 2

原创 HDU 5861 Road (线段树或并查集)

为了使得花费最小,对于一段路来说,它的付费时间就是最早一次被用到 到最后一次被用到这段时间所以我们就是要想办法把每一段第一次被用到和最后一次被用到的时间求出来。显然,暴力O(n^2)标记会超时,查题解大部分用的是nlogn的线段树;用区间更新来给[a,b]这个区间更新一个值,这个值就是第i天的i;m次更新后,每一段都对应了一个打开(关闭)时间;再对每一段单点查询 ,这段对应的是

2016-08-19 23:35:48 740

原创 HDU 5867 Water problem (模拟)

直接模拟即可/* ***********************************************Author :angon************************************************ */#include #include #include #include #include #include #includ

2016-08-19 10:38:08 480

原创 5858 Hard problem (数学)

网上解释很详细/* ***********************************************Author :angon************************************************ */#include #include #include #include #include #include #inclu

2016-08-19 10:36:51 345

原创 HDU Median (乱搞)

中位数是值在中间的数因为给出的序列是有序的,所以只要判断新序列每个数出现的次数就可以了(只可能是0,1,2次),然后分类讨论,这个讨论还是挺烦的/* ***********************************************Author :angon************************************************ */

2016-08-19 10:33:52 504

原创 HDU 5862Counting Intersections (思维+树状数组)

实际上这种在左端点+1,右端点的下一个-1的题目已经见过很多了。适用于它的查询也是一个区间的。+1,-1相当于维护了一个区间的“高度”,因为查询也是区间的,只要这个区间某一个点的高度被+1了,那这个区间之前的更新就被“捕捉”到了,所以每次对这个区间求和就知道有多少个“交点”。在这题,可以淡化横向线段的“线”,只保留两个端点,在y轴上,左端点(相当于开始)+1,右端点的下一个-1(结束);遇到竖

2016-08-18 23:29:16 817 2

原创 HDU 5847 Different Sums (构造+数学+打表)

题意:构造长度为n的序列;满足两个条件:1、没有连续子序列和相等2、每个元素都要小于3n+18多校九这场最后700+提交,但0人通过。大家都想茬了……或者把题目想简单了,确实很难构造!n最大只有2000;肯定想到三重循环暴力打表,但是如果升序从1开始,发现2000的时候最后一个是6853(还是多少)超过了3n+18,实际上300多就不行了。升序会超过那我降序打表啊,从3n+17

2016-08-18 02:12:16 846

原创 HDU 1520 Anniversary party (简单树形DP入门)

树形dp,可能是涉及到图论和dfs,显得比较高大上,我现在只做了一题,也没有什么发言权。目前总结如下:1.“树”,当作有向图(而且还无环的)来处理,建图(树)的时候更为简单,只要在它和它的孩子节点之间加一条指向孩子的有向边就可以了。2.dp还是一样的dp,但是树形dp往往不是“线性、水平”的了,而是要从叶子节点推到根节点(或者反过来),关系盘结的更为复杂。这题是一道最简单的树形dp;方

2016-08-16 00:11:28 4129

原创 HDU 5833 Zhu and 772002 (高斯求元)

比赛的时候把三题更水的题做完之后,想此题想了三个多小时。尽管啥都想到了,奈何不懂高斯求元一说,后看此题最后最后通过人数达到400+,不是原题的话应该也没这么过分。【邝斌模版代码】#include #include #include #include #include #include #include #include #include #include #includ

2016-08-15 12:11:26 360

原创 HDU 5816 Hearthstone (状压dp+概率)

这题它的难点不在状压dp的表示或者转移上,感觉它是难在如何想到这个概率该用什么表示。即求:伤害≥p的牌排列数/所有牌的全排列.对于求概率或期望的题,我想的是找分子分母是什么,但是每次都是一脸懵逼,不知道怎么下手。包括上次的ATM存款那题,完全不知道分子分母该是什么。实际上这题的表示应该比ATM那题简单,关键是要读清楚题目的意思:在本回合能胜利的概率。意思是这回合赢没赢都结束了,不会

2016-08-12 14:31:05 452

原创 HDU 5831 Rikka with Parenthesis II (模拟)

水注意 ))((这种情况也是yes【代码】/* ***********************************************Author :angon************************************************ */#include #include #include #include #include

2016-08-12 13:46:23 307

原创 HDU 5821 Ball (乱搞)

多校第八场也是蛋疼,1011数据严重出现了问题,本来在01:04分已经A了这题,但是一直报wrong answer,差点把我弄崩溃了,2小时多队友拿我一小时前的代码交了一下竟然过了。但更可怕的是我知道这个AC的代码是错的,看了一下网上的题解,也有很多人是错的,没有考虑到所有情况,但是数据根本没有,至少我的代码输((((都是yes,还ac了,我真尼玛迷茫。这题1001,题解是每次都排序,复杂度应

2016-08-12 13:36:33 452

原创 HUST 1644 (思维)

1644 - 第四届“恒生杯”程序设计大赛决赛 B时间限制:1秒 内存限制:256兆70 次提交 18 次通过题目描述Given N non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of la

2016-08-08 16:32:06 484

原创 HDU 5781 ATM Mechine (概率DP)

这是一道比较简单的概率dp题目,但难的是特么的这是概率dp,弱没做过啊……研读完各类题解之后,理解如下:dp[k][w]表示,上限为k,警告次数还剩w次时的 取完所有钱次数的期望首先,要取完所有钱,总的情况是[0,k]各取一次,所以分母是k+1.假设实际的存款是xdp[k-y][w]表示,取了y元钱,并且没有被警告,即(x>=y),在[0,k]里,比y大的数(x)有k+1-y个,所

2016-08-06 16:54:00 389

原创 HDU 5792 World is Exploding

假设,只求一对pair(A,B),就是一道简单的树状数组水题。只需要求出每个位置它右边有多少比它大的数,求一个前缀和就是答案。但两对其实也一样,各求出两对的前缀和,相乘,然后再把a==c,a==d,b==c,b==d的不符情况减去。先用树状数组预处理出以下四个数组:lg[i],左边比a[i]大的;ls[i],左边比a[i]小的;rg[i],右边比a[i]大的;rs[i],右

2016-08-06 11:15:22 352

原创 HDU 5791 Two (dp求公共子序列个数)

最长公共子序列稍微变形一下,如果 a[i]!=b[j] ,把max(dp[i-1][j],dp[i][j-1])改为累加,并减去重复加了的;如果 a[i] ==b[j] ,因为是每个相同的子序列都可以计数算作匹配的,所以对于b序列来说,b[j]可以和a序列的dp[i-1][j]每一个匹配得到一个答案,对于a序列来说,a[i]可以和b序列的dp[i][j-1]每一个匹配得到答案。再加上最新形

2016-08-05 14:47:17 539

原创 HDU 5795 A Simple Nim (打表找规律)

可以将一堆石子分成多堆——Multi-SG游戏  遇到这种情况是我们该怎么办呢?  可能聪明的读者马上就会想到,可以通过将SG函数适当变形来解决这类问题。  您的想法完全正确!!!  我们先来定义Multi-SG游戏。  [定义]   Multi-SG游戏规定,在符合拓扑原则的前提下,一个单一游戏的后继可以为多个单一游戏。   Multi-SG其他规则与

2016-08-05 09:17:26 394

原创 HDU 5793 A Boring Question (打表找规律)

m,n都是1e9的数据范围,直接解不太可能,试着打表看一下小数据,结果规律很明显就是求 m^0 + m^1 + m^2 + ... + m^n 即一个q为m的等比数列求和。/* ***********************************************Author :angon**************************************

2016-08-05 09:05:10 645

原创 HDU 5769 Substring (后缀数组)

后缀数组确实不愧为处理字符串的有力工具,花了几个小时看“研读”了一番论文和资料之后,可能了解了后缀数组的十分之一都不到。好在仍可以做这题在罗穗骞关于后缀数组的文论中有这么一段:例 5:不相同的子串的个数(spoj694,spoj705)给定一个字符串,求不相同的子串的个数。算法分析:每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数。如果所有的

2016-08-01 15:52:25 725

转载 后缀数组 DA(倍增)算法求 SA[N] 与 Rank[N] (时间O(NlogN),空间O(N))

后缀数组 DA(倍增)算法求 SA[N] 与 Rank[N] (时间O(NlogN),空间O(N)) sa[i] : 表示 排在第i位的后缀 起始下标rank[i] : 表示后缀 suffix(i)排在第几height[i] : 表示 sa[i-1] 与 sa[i] 的LCP 值h[i]: 表示 suffix(i)与其排名前一位的 LCP值con

2016-08-01 13:56:27 1430

C++代码统计工具 源码

用C++自己写的没有界面的代码统计工具,判断注释的核心算法等可以参考。 类似 C++的注释语法都可以用。 没有考虑双引号,如果需要可以自己研究加上

2017-11-12

Visual.Assist.X.v10.9.2118 破解版

下载安装后,把VA_X.dll复制到...\Visual Assist X\目录下。将原来VA_X.dll替换掉即可永久使用。 VS各版本都可以,只要找到Visual Assist X安装相应路径即可。 压缩包中有VS2010和VS2012的具体路径

2017-11-12

vs2010 + MFC + UDP socket 聊天程序。

自己写的 vs2010 + MFC + UDP socket 聊天程序。界面简洁,运行后只会产生一个exe,在局域网内输入对方ip即可发送信息。在同一台主机上也可以同时开两个instance。

2017-10-26

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

TA关注的人

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