自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bysen32

当梦想照进现实

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

原创 区间最值线段树

去年省赛原题..今年基本上把线段树忘记的差不多了。今天又敲了一遍。发现自己的输入处理还不错。这种类型的弱爆了线段树...由于思想不细致,导致WA了很久,看来以后要细心一点了!weak nodeTime Limit : 2000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)Tota

2012-08-25 12:56:18 1113

原创 约瑟夫环 数学解

题目大意:有给定的N个人,主角编号13,求最小的报数序号M,使得主角为赢家。报数序列为1,M%N这样.. 1是第一个出去的网上看的数学方法,各种感觉不爽!觉得算法中最神奇的就是2分和递归了。美妙!数学分析过程网上都有,不解释了。#includeusing namespace std;int find( int n,int m ){ int s=0; for(

2012-08-25 12:52:49 924

原创 k次方的首末三位

K次方Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 10   Accepted Submission(s) : 3Font: Times New Roman | Verdana | GeorgiaFont Si

2012-08-24 18:34:22 2482

原创 HDOJ 1848组合博弈 SG函数的基本应用

文章不错,大家可以看看。搞了半天原来SG函数这么简单,类比为Nim真是碉炸啦!不太会写,将原理拿过来直接敲了。#include#includeusing namespace std;bool cmp( int a,int b ){ return a<b;}int mex( int rec[],int cnt ){ sort( rec,rec+cnt,cmp )

2012-08-24 11:06:52 1249

原创 HDOJ 几道博弈水题

HDOJ 1847 SG函数入门(不用也行)基本博弈的理解。#includeusing namespace std;int main(){ int n,list[1111]; memset( list,0,sizeof(list) ); for( int i=1;i<=1000;i++ ) for( int k=1;i-k>=0;k*=2 ) { if( l

2012-08-24 11:04:25 811

原创 HDOJ 2188&&2149 水博弈

一起做过类似的,如果是以前的我的话,肯定会从0状态开始,打个表搞起。现在想到了另外一种方法,把箱子看成装满钱的,每人从里面拿钱,最多拿m元,拿到最后一张的获胜。#includeusing namespace std;int main(){ int T; scanf( "%d",&T ); while( T-- ) { int n,m; s

2012-08-23 21:10:52 684

原创 HDOJ 2509 Nim博弈

这题只是一只纸老虎。但是我确实被它吓到了。你瞧瞧题中说的,一个堆可以分裂成两个堆,这么复杂的问题实在不会做啊!准备搜题解,看看别人都是寥寥数句结题。于是我也赌气不看题解了,自己推。分析:照样设置T0,S0点。根据题意可知T0为必胜点,S0为必败点。S1点:有且仅有一堆的数量>=2,这里为啥不用考虑分割堆呢?S1能转变为S0点,主动权当然在面临这个选择的人身上,显然是必胜点。

2012-08-23 20:34:17 829

原创 HDOJ 1907

大概看了一种博弈问题的变化题,左边这个链接讲解的还是不错的。Nim博弈大家都知道,就是有N堆石子,两人轮流取,每次在一堆中取任意个,取到最后一个的胜利。现在的变化是,取到最后一个的算失败。这怎么做?首先我们定义:对于N堆石子,每堆的个数为Ai(1设C=A1^A2^...^An;若C=0,则状态设为T,称为利他态。反之,设状态为S,称为利己态。孤单堆,该堆的石子数量为

2012-08-23 17:52:04 801

原创 图论思想,DP构造求解

B-Travel By AirlineTime Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 24   Accepted Submission(s) : 1Font: Times New Roman | Verdana | Ge

2012-08-23 11:28:20 1137

原创 一道闹心的水题

G-WindTime Limit : 3000/2000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 123   Accepted Submission(s) : 13Font: Times New Roman | Verdana | GeorgiaFo

2012-08-21 12:36:09 869

原创 求解中缀表达式...

E- Seven tombsTime Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 31   Accepted Submission(s) : 9Font: Times New Roman | Verdana | Georgia

2012-08-20 17:30:39 925

转载 托勒密定理 圆的内接四边形

摘自维基百科:在数学中,托勒密定理是欧几里得几何学中的一个关于四边形的定理。托勒密定理指出凸四边形两组对边乘积之和不小于两条对角线的乘积,等号当且仅当四边形为圆内接四边形,或退化为直线取得(这时也称为欧拉定理)。狭义的托勒密定理也可以叙述为:圆内接凸四边形两对对边乘积的和等于两条对角线的乘积。它的逆定理也是成立的:若一个凸四边形两对对边乘积的和等于两条对角线的乘积,则这个凸四边形内接于

2012-08-03 12:50:06 4945

原创 POJ 2007 计算几何水题

大意是说将凸多边形顶点按逆时针排序,起点是原点且没有第二象限的点。水之..../*********************** *Creator:Sevenster * *Time:2012.08.01 13:47* *PID:POJ 2007 * ***********************/#include#include#include#def

2012-08-01 14:03:21 581

原创 POJ 2624 简单计算几何

第一次用运算符重载,代码清晰多了。已知两边,求组成平行四边形的第4点。运用向量相加性质。有trick,公共点不一定是给出的第二点和第三点,自行判断。/************************ *Creater:Sevenster * *Time:2012.08.01 12:05 * *PID:POJ 2624 * ***************

2012-08-01 12:37:59 751

原创 POJ 2318 计算几何 叉积水题

so water..../************************* * Creater:Sevenster * * Time:2012.07.31 15:14 * * PID:POJ 2318 * *************************/ #include #includeusing namespace std;class CP

2012-07-31 16:29:18 584

原创 POJ 1444 计算几何趣题

求长方体上两点表面距离。用到了比较神奇的递归,很有趣。学习之。将1点旋转至XOY平面,再用递归四面展开,限制步数,得到最近的距离。/********************* * Creater:Sevenster * * Time:2012.07.31 13:28 * * PID:POJ 1444 * *********************/#include

2012-07-31 13:27:40 898 1

原创 [计算几何]平面空间点旋转坐标变换

下班在写....

2012-07-24 14:10:16 1756 1

原创 FZU 1481 KMP

【题目大意】判断两条环形字符串是否相同。【思路】将待匹配串复制一份接在后面,再用模式串做KMP,若能找到说明为同一个串。蛮久没写KMP了,算法忘得差不多了..小悲剧啊~【CODE】#include#includeusing namespace std;char t[222],s[444];int next[222];void setNext(){

2012-05-04 14:33:31 628

原创 FZU 2090 无向图最小环 floyd

【题目大意】给定一个无向图,求出图中的最小环。并输出最小环的个数。【解题思路】1.朴素算法。对于边e(u,v),除掉e之后的最短路径mind(u,v),那么最小环则为mind(u,v)+e(u,v);2. 一个环中的最大结点为k(编号最大),与他相连的两个点为i,j,这个环的最短长度为g[i][k]+g[k][j]+i到j的路径中,所有结点编号都小于k的最短路径长度

2012-05-03 21:11:43 910

原创 FZU 2087 统计树边

[题目大意]给定一个无向图,求出这些边(至少出现在一棵生成树中的边)的数目。[解题思路]理解MST的思想,将贪心思想运用。由小到大遍历这些边,权值相同的为一组。先判断这些边是否能够成为树边,再对这些边进行合并。[注意事项]不知道为何,以前一直写的模板不顶用了...一定要改成比较丑的样子...[Code]#include#include#include#

2012-05-03 15:40:10 709

原创 POJ 2481 Cows 树状数组

【题目大意】有一条一维的山脊,山脊上有FJ的牛,每头牛都有自己的领地[Si,Ei]。如果有[Si,Ei]包含于[Sj,Ej]且不完全相等。则说J牛比I牛强壮。现在FJ想知道对于每头牛,有多少头牛比他强壮。【解题思路】利用树状数组解区间问题。解法一:按e的降序排列,e相等时,s小的在前。这样通过查询s可以知道区间的情况。解法二:按s的升序排列,s相等时,按照e的降

2012-05-02 12:13:08 512

原创 POJ 1719 有意思的水题[二分图多重匹配]

题目大意:有一个R*C(R现在求:在每列恰巧取一个,每行最少取一个的取法,按列的顺序由小到大输出取出棋子所在的行。我的思路:由于每行最少取一个,可以先把行的最大二分图匹配做出来,如果行都不能满足,肯定是无解的。若行能匹配,再在流图中找到匹配的路径。那么所有的行都找到了相应的列。那么余下的列随便匹配就好了。网上思路:用带上下限的网络流来做,基本上做到这种专题了。但是想

2012-04-20 22:09:30 828

原创 POJ 3204 求使得最大流增大的边

这题还是有点技巧的。我们求出了最大流,怎样知道哪些边可以使得流量增大呢?若存在e(U,V):S->U路径上的点都有剩余容量,V->T路径上的点都有剩余容量。如果有某条边为上述情况,那么对边e进行扩容,最大流增大。应该十分好理解吧。通过源点进行DFS寻找S集合中所有的点进行标号,很容易。那么...V到T可达这怎么弄呢?同样我们通过T来DFS只要存在点V到T有剩余容量,

2012-04-20 15:46:00 818

原创 POJ 3084 最大流最小割求割边

这种题目做过蛮多道了,主要是再练习一下我的网络流链表写法。这题坑爹的理解错题意了,弄了很久。题意:有M个房间,现在要保护N号房间,房间编号为[0,M-1]。起初所有的房间的门都是打开的,房间内有关门的控制面板,也就是说,如果该房间能控制几个相应的门,则从该房间可以通过这些门去往其他房间。如果控制面板在其他房间里,这门就不能在这房间里打开。现在要求的是关上最少的门使得要保护的房间不被

2012-04-20 15:31:13 898

原创 POJ 2987 最大流最小割最大权闭合图

基本的最小割问题做得也差不多了....这题整死我了.... 在Amber的论文里有这个解法,大家去看看吧。其他的不说了。这题把数据类型全都改成long long才过,瞪大眼睛找了一晚上,没找出trick.... 悲催.... 如果你也WA了,不妨试试这种方法... PS:我连bool都改long long了= =|||#include#include#define

2012-04-19 22:31:45 717

原创 POJ 3469 构图最小割+链表SAP

题目大意:有一台双核处理器的电脑,现有很多模块,每个模块放在不同的核中都有一个花销。若某两个模块不放在同一个核中执行,那么会产生额外的花销。求出使得所有的模块都进入处理器中的总花销值最小。首先可以明确的是,该题为二分图,模块放入两个核中。如果没有惩罚。那么该题就是赤裸裸的最小割(其实是贪心)。源点S与Acpu中的点连边,容量为模块放在A核中的费用。B核中的点与汇点连边,

2012-04-19 17:57:11 759

原创 POJ 1815 最大流最小割枚举找割点

这题WA得我SB一样.......竟然是声明了一个函数没有调用.....题意:在联系网中,去掉最少的联系点使得从S和T无法联系。赤裸裸的求最小割点集的问题;建图:网上都有,就不说了。怎样找割点呢?在这里变成了割边。上一题POJ2125用的是DFS,找到集合S,那么分跨S与T集合的边就是割边了。这么做,对于二分图还是很方便的。这里却行不通了。前面讲过独立轨的概念,

2012-04-19 13:22:52 1344

原创 POJ 2125 最小割最小点权覆盖

做这题还是看了Amber大神的论文...还是在这里冗余一下吧:点覆盖集:无向图G的一个点集,使得该图中所以边都至少有一个端点在该集合内。形式化的定时意思点覆盖集为V'∈V,满足对于所有的(u,v)∈E,都有u属于V'或v属于V'成立,即至少一个成立。形象的说是若干点“覆盖”住了与他们邻接的边。这些边恰好组成了原边集。最小点覆盖集:   在无向图G中,点数最小的覆盖集。最小点权覆盖集

2012-04-18 23:16:31 1518

原创 POJ 3308 最小割最优点权覆盖

题目大意:火星人入侵地球,他们降落的区域为一个n*m的矩形兵工厂,在这个区域行顶点和列顶点处有激光束,激光束一次能消灭一排或一列的敌人。为了消灭所有入侵的火星人,求最小的花费。每安装一个激光束都有一个权值,花费所有激光束权值的积。思路:如果不考虑到点权值,如POJ3041,每个点权值都为1,也就是求最大二分图匹配了。用匈牙利或者网络流都很好做的。so... 但是这题求的是最优点

2012-04-18 13:13:50 812

原创 FZU 2080 二维单调队列

hev神让我做做这题... 大概我们可以用一个二维的单调队列来写的。用两个矩阵来记录大矩阵的部分最值。例如用A[i][j]来记录mat[i][j]---mat[i+r-1][j]这一列的最小值,用Mi[i][j]来记录A[i][j]--A[i][j+c-1]这一行的最小值,于是乎Mi[i][j]就是mat[i,i+r-1][j,j+c-1]这个r*c的子矩阵的最小值了。我的代码相当

2012-04-18 09:39:35 870

原创 CSUOJ 1165 枚举

题目其实这题水题本来不打算写的,晚上看了下题解,发现和我那时TLE N久的代码是一样的。后来才发现我把最小值ans初始化:long long ans=(long long)1<<60;int index=0;这样的最小值不够大,导致后面的数乘起来比这个最小值还要大,导致了没有更新index 而index又是0,在我的3个if中溜过去了... 伤不起啊...导致了死循环... 太坑

2012-04-17 21:09:39 832

原创 POJ 1966 最大流最小割...

最近写的代码都挺长的啊...下面说一下最小割吧。以下内容引自:这里首先介绍一个概念:点连通度:一个具有N个顶点的图G,去除K个顶点后,图成为非连通图,去除任意K-1个顶点后,图仍为连通图。责成图G为K连通图。独立轨:A,B是图G中两个顶点,从A至B的无公共内顶点的路径叫做独立轨,其最大条数记为p(A,B);如上图中,将A=1,B=5;那么该图的最大独立轨数量为3

2012-04-17 19:33:34 837

原创 POJ 2352 树状数组

这是一道YY题= =...确实.. 做这题我就是YY出来的。一交没想到1Y了~ 哈哈哈~ 笑死我了~树状数组再练一道就罢手!#include#include#includeusing namespace std;int c[15555],n,lev[15555];struct point{ int x,y,pos;}p[15555];bool cmp1(

2012-04-16 17:02:41 551

原创 HDU 4217 树状数组+二分查找

比赛中做出这题来让我开心了好久啊~哈哈~温习了一下树状数组。开始惊奇和雄爷爷和我说树状数组没有这个性质,我不信。后来码畜来之后,才发现,确实树状数组确实没有这么个性质。于是开始用vector做= =TLE.... 还好想出了二分这个好办法... 1234ms AC了... 嘿嘿...其实我还是挺膜拜那些4500++的code...#include#includeusing na

2012-04-16 16:37:56 724

原创 POJ 2299 树状数组+离散化

上课前看了下题,上课时构了下思,下课敲了10min... 交了就A了... 好吧.. 这题弱爆了!题目大意:求一个数列中的逆序数....这题可以用坐标离散化。然后... 从大的数向树状数组更新.. 查的时候求和,把这个数前面的大的数求出来就OK了。水爆了... 1Y#include#include#includeusing namespace std;struct n

2012-04-16 16:28:50 454

原创 POJ 2391 floyd+二分+最大流

思路构图还是十分的好想的... 比较的有经验了。对这题,没啥难度了。题目大意:FJ有很多田地,一些田地有雨棚,雨棚有容纳牛的容量,现在给你田中的牛和田里的雨棚的容纳量,还有田间路径走完花费的时间。要求出使得所有牛都躲进雨棚里的最小时间。构图还是很简单的:将牛棚拆点为in和out点。源点到in容量为牛棚中牛的数量,out到汇点为牛棚的容量。in--out为无穷大。二分枚举

2012-04-16 14:37:57 760

原创 ZOJ 2760 最短路径条数问题

虽然以前做过最短路径的条数问题,但这个问题有点奇葩,在最短路径数量中,路径不能重复使用= =....如果可以重复使用还是很简单的,用dij去推就好了。将起点赋值为1,向相邻的边推自己,如果0->1有两条边同样短,那么.. 0->1就推两次,所以0->1就有两种走法。这题不同,路径不能重复,so... 我们可以这么想;找到最路径中用到的边,将边的容量赋值为1,这么流过去,从起点到终点流这

2012-04-14 18:11:33 1194

原创 POJ 2289 二分最大流

这中类型的题做过两道了,所以一见题就知道思路了。不过这题的输入比较恶心,还好能应付。本来不想做这题的,但是看到数据也还大1500个点,想用链表试试,先敲了个二维数组,等待TLE的过程中1Y了....何其蛋疼!1500ms 不算快...#include#include#include#include#include#define CC(a) memset(a,0,sizeof(

2012-04-14 16:49:50 835

原创 POJ 1637 混合图的欧拉回路

高级网络流建图啊!起初看这题,直接吓尿了... 不会....思路看这里......很不错的分析啦。一点点二逼的错误,让我找了好久!很久没这么二了!一个大于号打反了.. 还有一个变量没有初始化,我去!样例都让我跑对了!CODE:#include#include#include#include#define MN 222#define ME 1111#define

2012-04-14 13:28:42 3252

原创 POJ 3498 网络流英文阅读题

一如既往的,我又把题意看错了....题目大意:帝企鹅喜欢群居,现在有N块浮冰,给定企鹅跳跃能力D,给定Xi,Yi作为二维坐标,Ni为该浮冰上有多少企鹅,Mi为该浮冰上有多少企鹅离开后会破裂。问是否所有企鹅能否完成群居。5 3.51 1 1 12 3 0 13 5 1 15 1 1 15 4 0 1如上面这组数据,0,3,4浮冰上有企鹅,每块浮冰都能让一只企鹅离开。

2012-04-14 10:59:43 742

空空如也

空空如也

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

TA关注的人

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