AChunter的专栏

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!...

poj 1636 动态规划

【题意】 有两个监狱,每个监狱里面有n个囚犯,现在希望交换n/2对囚犯。但是考虑有一些原本在不同监狱的囚犯对在一起是很危险的,所以希望经过交换后他们还是不在一个监狱里面。那么如果保证这个条件,希望尽可能多的交换囚犯。 【题解】 和team them up这道题类似。 所有危险囚犯对是可...

2012-04-27 09:48:55

阅读数 2750

评论数 0

poj 1635 判断树是否同构

【题意】 给出两棵树,判断树是否同构。 树的表示:从根节点深搜,0表示向下,1表示向上回溯,得到的01串。 【题解】 将树最小表示,排序 如何得到子树:子树的01串中0和1的数量相等。 所以只需递归求解。 【代码】 #include #include #include #...

2012-04-26 17:41:19

阅读数 2066

评论数 0

poj 1511 spfa

【题意】 给定一个有向图,求从源点到其他各点的往返最短路径和。且这个图有一个性质:任何一个环都会经过源点。 【题解】 建正反两图,求最短路。spfa。。。 注意用long long ,且输出时用printf("%I64d",ans); 【代码】 #inclu...

2012-04-25 17:49:29

阅读数 631

评论数 0

poj 1149 网络流

额。。。这是SHTSC2011 第五轮的题。 【题意】 有 M 个猪圈(M ≤ 1000),每个猪圈里初始时有若干头猪。一开始所有猪圈都是关闭的。 依次来了 N 个顾客(N ≤ 100),每个顾客分别会打开指定的几个猪圈,从中买若干头猪。 每个顾客分别都有他能够买的数量的上限。 每个顾...

2012-04-25 17:01:32

阅读数 724

评论数 0

poj 1696 极角排序

【题意】 求一个只向左转的路径,使得经过最多的点,但每个点不能重复走。 【题解】 水题,叉积应用,极角排序。 【代码】 #include #include #include using namespace std; const int maxn=55; struct point ...

2012-04-25 10:09:34

阅读数 375

评论数 0

poj 1389 线段树+扫描线 求矩形交的面积

【题意】 求矩形交的面积 【题解】 相较之下,比求矩形交的周长简单不少。 维护这样几个量: cov:线段被覆盖几次 sum:线段被覆盖的总长 【教训】 一开始想整段更新一定要用延迟标记,后来发现根本不用。 【代码】 #include #include using nam...

2012-04-25 10:06:09

阅读数 1316

评论数 0

poj 1177 线段树+扫描线 求矩形交的周长

【题意】 给定n个矩形,求他们的交的周长。 【题解】 以Y轴建立线段树,X轴为扫描方向。 线段树维护这样几个量: cov:表示线段被覆盖几次 num:该线段有几个被覆盖的区间段 sum:该线段被覆盖的总长度 lcover,rcover:线段左右两边是否被覆盖。 对于竖边,看每次插...

2012-04-25 09:58:54

阅读数 602

评论数 0

poj 2117 割点

【题意】 给定一个无向图,求若删除其中一个点,则最多能形成多少个连通分量。 【题解】 无向图求割点,tarjan算法。令cnt[i]为在以节点i为根的子树中,去除i,能形成多少个连通分量,则ans=max(cnt[i])+原有的连通分支数。 【代码】 #include #inclu...

2012-04-21 14:59:27

阅读数 604

评论数 0

poj 3294 后缀数组

【题意】 给定N个串,求最长的子串S,使得S为其中超过一半的串的公共子串。 【题解】 后缀数组,按height数组分组,按sa数组输出。 【代码】 #include #include #include using namespace std; const int maxn=20...

2012-04-20 14:28:43

阅读数 485

评论数 0

poj 1887 最长不上升子序列

水爆了 #include #include using namespace std; int a[200000],b[200000]; int n,i,j,ans,cc; int main() { freopen("pin.txt","r",...

2012-04-17 17:20:23

阅读数 631

评论数 0

poj2749 2-SAT判定

【题意】 给出n个牛棚、两个特殊点S1,S2的坐标。S1、S2直连。牛棚只能连S1或S2。还有,某些牛棚只能连在同一个S,某些牛棚不能连在同一个S。求使最长的牛棚间距离最小 距离是曼哈顿距离 【题解】 典型的2-sat判定。条件如下: x hate y:x->~y,~y-&g...

2012-04-17 14:35:22

阅读数 1465

评论数 0

NOI2009 变换序列【transform】二分图匹配

这道题还是很简单的,毕竟是NOI第一题。 首先不难发现可以使用二分图描述问题,问题化归到一个求二分图完备匹配的问题。 至于字典序最小,可以再匹配时,如果i可以与j或k匹配(j 【代码】 var a:array[0..10000,0..5] of longint; v:array...

2012-04-16 17:28:41

阅读数 685

评论数 0

poj1236 强连通分量——缩点

【题意】 N(2 【题解】 找强连通分量,缩点。记f[i]为缩完点后的新图中各点入度,g[i]为出度,ans1为f[i]==0的点的数目,ans2为g[i]==0的点的数目则第一问为ans1,第二问则为max{ans1,ans2}。 至于第二问的解释,我的想法是对于得到的DAG图,考虑...

2012-04-16 17:02:57

阅读数 5364

评论数 1

poj 3522 生成树的变形

【题意】 求一颗生成树,使得边权的最大值与最小值之差最小。 【题解】 可以二分答案,但是没必要,只要枚举最小边即可。 使用kruskal的贪心法,得到的生成树的最大边必定最小,所以最大边与最小边之差最小。 【代码】 #include #include using namespace...

2012-04-16 10:37:14

阅读数 1611

评论数 0

NOI2009 植物大战僵尸 PVZ

和NOI2006的最大获利一样,都是最大权闭合图的应用。可参考胡伯涛的论文。 但这道题还需在建图时去除环。因为最大权闭合图算法不能判断环的情况。 type edge=record x,y,f,next,op:longint; end; const oo=10...

2012-04-16 09:45:13

阅读数 901

评论数 0

APIO2009 抢掠计划

【题意】 给一张图,每个点有一个ATM机,而其中的部分点是酒吧(可作为终点)。 抢掠计划就是从起点(1号点)出发,到终点的途中,将ATM机中的钱抢走。 问最多能抢到多少钱。 【题解】 很显然,由于图可能有环,所以自然地想到了SCC+DP。 题目不难,但数据很大,堆栈会溢出。表示懒得模拟...

2012-04-15 17:30:22

阅读数 1640

评论数 0

poj 2004

字符串DP 【题意】 给定n个字符串,求最长的单词链。两个单词能连起来,当且仅当这两个串只相差一个字符(不考虑顺序),且后者比前者长1。 【题解】 DP水,字符串内排序+TRIE。 【代码】 #include #include #include using namespace s...

2012-04-15 17:07:39

阅读数 495

评论数 0

poj 1625 AC自动机上的DP

好题!搞了N久终于AC! 【题意】 给定N个字符集合和P个禁用的字符串,求长度为M的合法字符串个数。 【题解】 显然是AC自动机上的DP。 令dp[i][j]表示长度为i,状态为j的字符串个数。 按自动机的图转移即可,但要注意细节。 贡献几组数据。 50 50 10...

2012-04-15 11:25:03

阅读数 1455

评论数 0

poj 2010 二叉堆

数据结构题 【题意】 给定C个牛的CSAT分数score[i],和需要的资费aid[i],求上述C头牛的一个N元子集,使得其中位数最大,而资费总和 【题解】 先按照score[i]排序,再枚举i,现在的任务就是求: i前面哪n/2头牛的资费和最小; i后面哪n/2头牛的资费和最小; ...

2012-04-15 11:13:22

阅读数 691

评论数 0

poj 2274 线段树+堆

这道题可以说是数据结构题当中的一道综合题。 【题意】 给定n辆车的坐标xi,速度vi,求会发生超车事件的数量(求逆序数对),并按时间顺序输出超车事件的车对。 【题解】 第一问,经典的线段树求逆序数对,nlogn水过 第二问,比较繁。对于超车,首先必须明确一点:只有相邻的两辆车才会可能较早...

2012-04-14 19:49:17

阅读数 1295

评论数 0

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