自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KIJamesQi的博客

大神养成中。

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

原创 poj2528(离散化 + 染色)

若第i次在区间[ai , bi]染色,则把[ai , bi]的每一格都染色为i。后染的颜色覆盖先染的颜色。由于染色N次,定义一个标记数组tagcol,从数轴第一格开始检查,一直检查到最后,出现过得颜色则记录到tagcol,最后统计tagcol中不同颜色的个数,就是所求。       数据规模太大,必定TLE。 应该用线段树去求解,这题只是线段树的入门水题,不懂线段树的同学去

2015-09-30 22:25:54 453

原创 hdu1698

思路:col数组要来标记当前区间的值,一开始所有的区间都为0,然后我们更新的时候,如果当前的区间的col不为0,则说明该区间是纯的,此时,我们应该把这个区间的col往左右子树传,同时计算sum的值,由于是纯的,因此当前节点的左子树和当前节点的右子树的sum可以直接求得,然后在把当前的col改为0,表示当前节点覆盖的区间不纯。(题目懂了就好了)QAQ/**********************

2015-09-30 20:21:34 416

原创 poj3468(区间更新->记录增量)

思路:题意就是一个区间和的查询与区间增减(减a等同于增加-a);更新的时候只更新到段,等到下次更新或者查询的时候,碰到已经被标记过的,往下顺延就行。一开始int与long long 进行计算时没有转类型,然后就是。。。。

2015-09-30 19:34:56 397

原创 poj2182(单点更新)

len[rt]表示当前树中有多少个空位;还有就是在网右子树走的时候一定要减掉左子树的空位数目。/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************///

2015-09-30 16:18:14 497

原创 poj2481(单点更新)

思路:排序 + 线段树;题目说的是[si,ei],[sj,ej],要的是前者包含后者,前者强。然后问的是对于给定的区间有几个比她强(前面的定义)的区间。我们可以先让s满足包含的条件,再来考虑e的问题,现在要先排个序,s小的排前面,s相同时e大的排前面。先把第一个区间插入进去,对于后面的如果和前一个区间完全相同,就HH[p[i].id] = HH[p[i - 1].id],如果不一样,就Qu

2015-09-30 15:53:05 450

原创 poj2759(单点更新)

思路:题目说的是有一个h*w的空板子,然后在上面要粘贴1*w的广告。广告之间是不能重叠的,然后就是如果没有这个广告的位置了,就输出-1,有的话就输出贴在第几行。然后就是线段树维护[L,R]之间的最大宽度,初始宽度w。如果这一行贴了广告的len[L] -= w[i]。这样分析下来就是线段树的单点更新了QWQ。/***********************************

2015-09-30 15:49:32 533

原创 hdu1394(单点更新)

思路:可以先求开始序列的逆序数,一开始记录每个叶子节点的值为0,然后对于每个数,插入之后更新一下,对于当前的x[i],需要插叙[x[i], n - 1]之间的数已经出现了多少个。求出一开始的逆序数之后,就可以通过递推关系式以此找出后面的逆序数对。/*****************************************Author :Crazy_AC(JamesQi)T

2015-09-30 14:31:29 320

原创 hdu1166(线段树单点更新区间查询)

/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma comment(linker, "/STACK:1024000000,10240

2015-09-30 14:29:30 286

原创 lightoj(基础数学)

点击题目链接/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma comment(linker, "/STACK:10240000

2015-09-28 20:33:30 520

原创 lightoj欧拉函数打表(简单)

思路:这题只需要知道欧拉函数如何打表就行了。点击题目链接/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma commen

2015-09-28 20:26:15 987

原创 poj1548(最小路径覆盖)

思路:最小路径覆盖是很容易想到的(本题就是求最小的路径条数覆盖所有的点),关键是如何建图,其实也不难想到,对于当前点,如果后面的点它能够到达,那么就连边。最小路径覆盖=顶点数-最大匹配。点击题目链接/*****************************************Author :Crazy_AC(JamesQi)Time :2015

2015-09-25 16:02:36 554

原创 poj3698(二分图最大匹配 + 拆点)

思路:把电影拆开,,,对于每部电影的去的天数呢分开,,(1...d1)(d1 + 1.....d1 + d2)....入上面这种拆点。然后就是每周的周几可以去,就把周扩展成天:比如说1表示第一周的周一,8表示第二周的周一,如此类推,用上下这种扩展的方式简图,,,只要最后的匹配数目等于总的天数,那么就是可以的。点击题目链接/****************************

2015-09-25 11:50:23 601

原创 poj2531(trie + 欧拉路径判定)

思路:这问题显然是要判断欧拉路径的存在,然后要把串看成一个点,然后统计串的种类(trie树),最后就是并查集来判断连通性 + 度的判断(无向图的欧拉路径 == 度为奇数的点的个数要么为0,要么为2,不然不存在欧拉路径,这个是一个充要条件)点击题目链接/*****************************************Author :Crazy_AC(Jame

2015-09-23 21:37:06 452

原创 poj2485(MST)

QAQ点击题目链接/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma comment(linker, "/STACK:1

2015-09-23 17:58:22 552

原创 poj1789(MST)

思路:题目的意思就是求解一个源点到所有点距离之和最小,然后就是这个距离怎么计算就是两个字符串对应位置上不同字母的个数的多少,然后跑kruskal;点击题目链接/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*********

2015-09-23 17:31:40 357

原创 poj3020(最小边覆盖)

思路:要安放一下类似雷达之类的东西,相邻的一个点会被覆盖,但是,只能覆盖一个,不管是东西南北,那么另外一个被覆盖的点就不用在安放雷达了,求最少的安放雷达的数目;显然就是最小边覆盖问题;对每个坐标表定一个固定的数字,然后根据题意建图;题目链接/*****************************************Author :Crazy_AC(JamesQi

2015-09-23 17:02:50 515

原创 poj2226(最小点覆盖)

思路:前面有个类似的模型,就不多说了;(此等二分图经典模型)ps:link & vis数组开小了,然后就是各种悲剧的事情;/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************

2015-09-21 17:13:29 356

原创 LoghtOj1201(最大独立集)

思路:一哥们要去杀人,这些人之间呢有相互认识的,也有不认识的,如果杀了A,那么认识A的人就回得到消息然后有所防范,问最多能杀多杀人,这显然就是最大独立集。/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :***************

2015-09-21 15:41:26 407

原创 欧拉回路的判定(Fleury算法)

定理:(一)一个图有欧拉回路当且仅当它是连通的且每个顶点都有偶数度。(二)一个图有欧拉通路当且经当它是连通的且除两个顶点外,其他顶点都有偶数度。在第二个定理下,含奇数度的两个节点中,一个必为欧拉通路起点,另一个必为欧拉通路的终点。设G是一个无向的欧拉图,求G中的一条欧拉回路的算法为:(1)任意选取G中的一个点V0,令P0 = V0。(2)假设沿pi = v0e1v1e2v2

2015-09-21 15:00:28 4681

原创 hdu2094(拓扑排序)

思路:因为是要确定冠军,那么必然关系都是明确的,,,如果存在度数为0的个数大于1的话就说明这几个人的关系是不确定的,也就必然不能确定冠军出来。题目链接/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*************

2015-09-20 21:46:52 563

原创 hdu1285(拓扑排序)

思路:从样例来看,应该每次找一个入度为0的点,然后更新相邻节点,注意题目说的最后一个数后面没有空格。题目链接/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :**********************************

2015-09-20 21:23:01 406

原创 hdu2647拓扑排序(逆向)

思路:分层拓扑;题目链接/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma comment(linker, "/STAC

2015-09-20 21:05:03 418

原创 二叉树的建立&中序&后序&深度

/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma comment(linker, "/STACK:1024000000,10240

2015-09-20 10:54:20 430

原创 根据二叉树的中序和后序还原二叉树

P:终点时要明白二叉树的几种遍历方法以及规律;先序:中左右。中序:左中右。后序:左右中。上面的左右皆为中的子树,所以优势具有二叉树的特性,那么我们就可以递归还原树了;这里是一个二叉树还原及求深度。/*****************************************Author :Crazy_AC(JamesQi)Time :201

2015-09-20 10:47:26 2027

原创 hdu3861(tarjan缩点 + Hungary)

题意:给出一张有向图,要求你将这些点进行划分,划分依据如下1.如果两个点互相可达,那么这两个点必须在同一个集合中;2.同一个集合中的两个点u,v要满足要么u->v || v->u;3.一个点只能被划分到同一个集合;问最少能划分成几个集合思路:对于条件一就是强联通分量;对于条件2,3得话就要球出来最小路径覆盖,所以可以将所有的强联通分量进行缩点,桥作为连接,然后匈牙利一下,求

2015-09-20 00:30:43 461

原创 hdu3605(Easy MulMatch)

题意:现在要将n个人移送到m个star去,但是由于环境的原因呢,对于每个star并不是每个人都可以适应上面的环境的,同时呢,每个star有人数上限。思路:从上面来看,也就是每个star可以有多个人,但是一个人最终只能去1个star,这就和二分图的多重匹配吻合了。/*****************************************Author :Crazy_AC(

2015-09-18 19:56:59 388

原创 hdu1669杰米的电话联系人(多重匹配)

题意:杰米想给手机里面的联系人分组,问最大分组中的规模最小,给了每个联系人可能所在组的编号;思路:显然是一个多重匹配问题,x(联系人),y(组编号);一般来说,对最大限制的选取(这里是“最大分组中的规模最小”)通常采用二分搜索来降低搜索空间;具体搜索做法和Hungary()差不多,变的就是cy[maxn]变成cy[maxn][maxn],同时用num[i]来表示与y[i]匹配的x[...]的数

2015-09-18 19:34:58 604

原创 hdu3768最大独立集

题目自己读就好了;/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma comment(linker, "/STACK:10240

2015-09-16 21:37:57 429

原创 hdu2389二分图匹配

思路:只需要判断人到每个放伞的位置花的时间和离下雨的时间,看是否可以建边;/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma c

2015-09-16 20:21:05 375

原创 hdu2845二分图 Hopcroft-Karp Algorithm

思路:模板题就不多说了;/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma comment(linker, "/STACK:10

2015-09-15 23:37:45 484

原创 hdu1258简单二分图匹配

/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma comment(linker, "/STACK:1024000000,10240

2015-09-15 14:47:05 486

原创 hdu1350 && 1960最小路径覆盖

分析:一个出租车公司有M个预约,每个预约的具体信息占一行,例如:XX:YY a b c d的形式;这个预约需要花的时间等于 |a - b| + |c - d|,当然开始时间加上花的时间就等于结束时间;问最少需要派多少辆车就可以完成任务了;我们很容易想到一辆车完成这个任务后可不可以继续完成另外一个任务,只要时间允许?这里的时间判断就是前一个任务完成后+到达下一个任务的起点的时间是否小

2015-09-15 14:03:46 378

原创 hdu2507二分图 + 打印路径

思路:对每个格子进行编号,然后在标记哪些格子是可以链接的,人后就是Hungary()的事情了;这个应该是特判的;/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :**********************************

2015-09-15 13:09:50 518

原创 hdu3118二分图性质的应用

思路:题目要求去掉多少条边使得图中不会有奇数环,等效求去掉多少条边使得图成为二分图,因为二分图不好有奇数环;所以我们最后就枚举点的所属集合,如果某边的两个点同属于一个集合,显然这条边是不能要的,这条边可能导致形成奇数环,枚举完后其实偶数环是可以判断不被删除的,因为所有的情况中,一定会有一种情况是偶数环中的任意边的两点分属不同集合;/*******************************

2015-09-14 20:09:02 618

原创 hdu3729二分图匹配

思路:求最大可能的说真话的人数,也就是匹配数,因为一个人说的是真话的前提是可以找到正确的理论支撑点,也就是在他所说的话中,l m,这个也就是匹配关系;/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :****************

2015-09-14 18:48:35 378

原创 hdu1045二分匹配(难在建图)

思路:这题是一个经典的二分图匹配;图中‘X’表示wall,‘.’表示空地可以放置blockhouse,同一条可达线(中间没有wall)上只能有一个blockhouse,显然这样的话这一段空间就只能放一个了,行与列都是如此;所以就可以对这种段进行缩点,然后进行二分匹配就好了;/*****************************************Author :Crazy

2015-09-14 17:57:57 518

原创 HDU11完全背包

思路:求最小初始化为inf,求最大初始化成-inf;dp[0] = 0;/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :*****************************************/// #pragma co

2015-09-14 16:22:53 533

原创 hdu1421经典dp

思路:题目求的是求k对物品,然后总的疲劳值是最小的;疲劳值等于这对物品重量差的平方(w[i] - w[i - 1]) * (w[i] - w[i - 1]);那么对于第i个物品的问题,选它的话,那么改和那一个物品组合呢(可以使的疲劳值最低)?不选的话就考虑下一个;所以可以分析出来前i个物品组成几对的问题了。dp[i][j]就表示前i喝物品组成j对的最小疲劳和;我们现在再来谈谈i

2015-09-14 15:13:52 306

原创 2015长春网赛

1001题就是直接模拟就好,但是有坑点,就是后面给的开门的时间点需要排下序,wa到比赛快结束了菜反应过来,可能也是第一次做这种比赛有点紧张吧;#include "iostream"#include "cstdio"#include "cstdlib"#include "cstring"#include "climits"#include "queue"#include "cmath

2015-09-13 22:30:00 576

原创 hdu1081dp

思路:这题就是将一维最大字段和,扩展到了二维;一维的算法是这样的int max_sum(int n){ int i, j, sum = 0, max = -10000; for(i = 1; i <= n; i++) { if(sum < 0) sum = 0; sum += a[i]; if(s

2015-09-11 20:42:24 385

空空如也

空空如也

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

TA关注的人

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