自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苍竹林

何不让这一场梦 没有醒来的时候

  • 博客(233)
  • 问答 (7)
  • 收藏
  • 关注

转载 让人深思的退役贴

3xian退役贴---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------最后一天,漫天飘起了雪

2014-09-11 15:19:01 631

转载 写给想当程序员的朋友

谨以此文献给所有想当程序员的朋友       (一) 文章由来及个人经历       我是一名计算机专业的本科毕业生,毕业已经1年多了。毕业后从事的是软件编程工作,经常有其他专业的朋友想从事软件编程工作,向我请教如何,因为我自觉涉行不深,不敢信口开河,无奈朋友信任,我不得不郑重考虑一下这个问题了,来帮助朋友选择和回报朋友的信任。       这也就是此文的由来。   

2014-08-06 10:07:37 616

转载 弱校acm的奋斗史

弱校acm的奋斗史 不知道什么时候,开始知道ACM;也不知道什么时候,开始喜欢上ACM。但是,我知道,我喜欢上了,而且不会后悔。我是大一的时候进的学校ACM队,那个时候,一切都是冰冷的,华东理工大学,在别人的眼里,只是每次给别人垫底的学校,次次如此。 但是,我们不甘心,我们从不甘心,当我们主力队员中的一个,一个月拼命集训,瘦了很多的时候,突然,我有一种哭的冲动。我问他,为什么?他告诉我:我喜欢

2014-07-13 19:19:48 656

转载 ACRush 楼天成 回忆录

利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个回顾。昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还清晰记得3 年前,我刚刚参加ACM 时参加北京赛区2005 和杭州赛区2005 的情况。2005 年ACM-ICPC——酸甜苦辣我进入清华大学开始本科学习的时间是2004 年8 月,在进入清华大学的第一年里,由于基础课学

2014-07-06 19:54:50 3392

原创 poj 3678 Katu Puzzle (2-sat)

/*2-sat建图题,把每个值是1(a)和0(~a)为两种状态,分清楚各种操作的本质就很简单了AND 结果为1:建边 ~x->x,~y->y (两个数必须全为1)AND 结果为0:建边 y->~x,x->~y (两个数至少有一个为0)OR 结果为1:建边 ~x->y,~y->x (两个数至少有一个为1)OR 结果为0:建边 x->~x,y->~y (两个数必须全为0)XOR

2015-10-18 20:22:20 585

原创 poj Ikki's Story IV - Panda's Trick (2-sat)

/*平面上,一个圆,圆的边上按顺时针放着n个点。现在要连m条边,比如a,b,那么a到b可以从圆的内部连接,也可以从圆的外部连接。给你的信息中,每个点最多只会连接的一条边。问能不能连接这m条边,使这些边都不相交。解题报告:题意可能刚开始不是很好理解,比如1 5连边,2,6连边,由于点是顺序排列的,一画图就可以发现,这两条边必须一个从圆外面连,一个从内部连,否则就会相交。如果再加入3 7这条

2015-10-16 21:43:44 398

原创 hdu 1824 Let's go home (2-sat)

# include # include # include # include using namespace std;# define MAXN 6010# define MAXM 10010struct node{ int to; int next;} edge[MAXM];int tot;int tim,num;int be[MAXN];bool

2015-10-14 21:19:59 550

原创 FZU 2198 快来快来数一数(矩阵快速幂)

/*a[i]=6*a[i-1]-a[i]+1;矩阵快速幂+预处理vc++可过。。。。*/# include # include # include # include using namespace std;struct node{ __int64 m[3][3];};const __int64 mod=1000000007;node f(node a,no

2015-10-06 20:42:13 714

原创 poj2823 Sliding Window (优先队列)

/*题意: 有N个数,每次从左到右选取M个数,第一行选取每个区间中的最小值输出,第二行选取最大值并输出。*/# include # include # include # include # include using namespace std;int a[1000010],maxx[1000010],minn[1000010];struct cmp1{ bool

2015-10-05 19:17:39 618

原创 poj3074/3076 Dancing Links (数独)

/*一个9*9的数独解法: 跳舞链建图方式(就是01矩阵)如下行:一共9 * 9 * 9 == 729行。一共9 * 9小格,每一格有9种可能性(1 - 9),每一种可能都对应着一行。列:一共(9 + 9 + 9) * 9 + 81 == 324 种前面三个9分别代表着9行9列和9小块,乘以9的意思是9种可能(1 - 9),因为每种可能只可以选择一个。81代表着81个小格,限

2015-09-20 21:28:23 391

原创 hdu1573 X问题(中国剩余定理解的个数)

/*求在小于等于N的正整数中有多少个X满足:X mod a[0] = b[0], X mod a[1] = b[1], X mod a[2] = b[2], …, X mod a[i] = b[i], … (0 < a[i] <= 10)。中国剩余定理解的个数最终解出一个答案为al,循环为b1*/# include # include # include using names

2015-09-14 18:32:11 539

原创 hdu 5438 Ponds(强连通)

/*拓扑+强联通题意: 有n个池塘 m条管道连接 把连接管道小于2的池塘删掉 剩下的连通分量为奇数的池塘相加为多少 先拓扑删边+强连通判断奇偶*/# include # include # include # include # include # include using namespace std;const int MAXN = 20

2015-09-13 18:25:41 481

原创 codeforces 555C Case of Chocolate(map)

/*题目大意:给一个巧克力,把副对角线(参照线代)下方的先都吃掉,然后每次给出一个询问,从对角线出发,要么向上,要么向左,吃到已经吃过的地方或者边缘为止,输出每次能吃多少小格巧克力。*//*对于U的操作,能到达的y的上界和x值大于它最接近的操作的y的上界是一样的:1.如果是L的操作,上界就是那个L操作的y值。2.如果是U的操作,上界就是这次U操作所能到达的上界。对于L的操作,则

2015-09-08 21:54:07 698

原创 hdu 1403 Longest Common Substring (后缀数组模板)

/*题意:判断给定的两个串中,最长的公共串。思路:将它们合并为一个串,然后利用后缀数组求解。SA[i]存放排名第i大的子串首字符下标rank[i]存放suffix(i)的优先级height[i] 表示sa[i]和sa[i-1]的最长前缀*/# include# include# includeusing namespace std;# define maxn 100001

2015-09-06 11:12:31 379

原创 poj 3259 Wormholes (bellman_ford)

/* John的农场里N块地,M条路连接两块地,W个虫洞,虫洞是一条单向路, 会在你离开之前把你传送到目的地,就是当你过去的时候时间会倒退Ts。 我们的任务是知道会不会在从某块地出发后又回来,看到了离开之前的自己。 简化下,就是看图中有没有负权环。有的话就是可以,没有的话就是不可以了。 */# include # include # include using namesp

2015-09-03 20:35:56 348

原创 poj1860 Currency Exchange (bellman_ford)

/*有多种汇币,汇币之间可以交换,这需要手续费货币的交换是可以重复多次的,所以我们需要找出是否存在正权回路,且最后得到的s金额是增加的怎么找正权回路呢?(正权回路:在这一回路上,顶点的权值能不断增加即能一直进行松弛)*/# include # include # include using namespace std;struct node{ int u; i

2015-09-02 22:01:09 409

原创 hdu 1595 find the longest of the shortest (dijkstra)

/*假设图中某条路径被堵死,它的最坏情况下的最短路径是多少?基本算法就是先求出最短路径,然后假设最短路径中的某一条边被堵死,再求最短路,取这些最短路的最大值即可。*/# include# include# includeusing namespace std;# define inf 100000000int dis[1010];int map[1010][1010];in

2015-08-31 19:44:35 471

原创 hdu 3591The trouble of Xiaoqian (多重背包)

/*解题思路是:首先这个人有各种钱币,每种钱币若干,所以我们对这个人的钱用多重背包解决;再者是找钱的人,可以认为他们有各种各样的钱币,都是无限件,所以对于收银员进行完全背包处理;还有就是处理二者之间的关系 dp[i]表示支付i元钱至少多少张纸币,dp2[i-T]表示:收银员要找的钱的张数两者相加即是所需要的张数,然后取最小值:*/# include# include# i

2015-08-31 11:19:43 473

原创 hdu 2844 Coins (多重背包)

/*题意 :给你一些不同价值和一定数量的硬币,求用这些硬币可以组合成价值在[1 , m]之间的有多少dp[i]来表示容量为i这个包包可以装多少价值,最后计数是要计价值和容量相等的个数*/# include# include# includeusing namespace std;int sum,dp[100010];void CompletePack(int v){ f

2015-08-31 09:41:49 354

原创 lightoj 1304 The Best Contest Site Ever (二分匹配)

/*分块 行的快为一方 列的为另一方进行匹配 */# include # include # include using namespace std;# define N 10010int tot;int head[N];int vis[N];int link[N];int uN;struct node{ int to; int next;} Edg

2015-08-17 15:02:51 409

原创 hdu 1507 Uncle Tom's Inherited Land* (二分匹配)

/*给你n*m的土地,有k个1*1的方块被挖掉, 现在你要卖剩下的地(<=50),地只能是1*2 或2*1卖,问你最多能卖几块。并输出摆放方式*/#include #include #include #include #include using namespace std;const int MAXN = 510;int uN,vN;//u,v的数目,使用前面必须赋值i

2015-08-16 21:42:55 333

原创 poj 3014 Cake Pieces and Plates 分蛋糕(dp)

/*题意:求将m块蛋糕放进n个盘子里的方案数dp[i][j] 把j个蛋糕放到i个盘子里的方案数分3类讨论:1.i>j,肯定有空的,那么就直接等于dp[i-1][j],就是i-1个盘子装了j个蛋糕了,你再拿了一个盘子出来,这个盘子保证不装;2.i==j若里面有空的盘子那么同上,没空盘的时候只有一种情况,n个13.j>i没空盘的时候是这样处理的:先把每个盘子里放一个蛋糕,保证没空

2015-08-12 15:26:33 1035

原创 poj1664 放苹果 (母函数)

/*把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法*/# include# include# includeusing namespace std;int main(){ int t,i,j,k,n,m; int c1[15],c2[15]; while(~scanf("%

2015-08-11 19:58:57 436

原创 poj 1032 Parliament (整数拆分)

/*题意:将n拆分为若干个数,使得这些数的乘积最大。若将n拆成两个数,有如下两个规律:1、只要不拆成1和n-1,拆出来的数的乘积一定比n大。2、拆出来的数越接近n/2,两数乘积越大。有了这两个规律,就可以琢磨本题的做法了。首先,n要拆的越多越好,但是不能拆出1,所以最好是都拆成2。但是题目要求拆出来的数不能相同,所以构造的时候,先从2开始按公差为1的等差数列进行构造,可能当

2015-08-11 19:40:12 403

原创 hdu 2680 Choose the best route (dijkstra)

/*求点与点之间最短距离。因为此题的起始点不定,所以可用反向图来求得,终点确定,从终点出发*/# include # include # include using namespace std;# define INF 10000010int map[2010][2010];int dis[2010];int vis[2010];int n;void dijkstra(i

2015-08-10 19:15:10 381

原创 codeforces 567D One-Dimensional Battle Ships (set)

/*题意:在1~n的格子里,有k艘,每艘长为a的船,并且这些船不相交且不能相邻。现在有m个射击,每个射击给你一个位置(1~n),并且不会重复。由于对方每次都说没打中,因此你想找到至少要射击几次才能证明对方说谎。若不能证明对方说谎,输出-1。思路:n个格子,船长为a,则能放(n+1)/(a+1)艘船。(由于要求不能相邻,因此a+1)。每次在set中插入射击点,二分上下界 原来可以放

2015-08-07 14:19:14 521

原创 hdu 2119 Matrix (最小覆盖)

/*题意:一次消除一行或一列1,最少几次能把其中的1消去最小覆盖==最大匹配*/#include #include #include using namespace std;int map[110],vis[110];int a[110][110];int n,m;int bfs(int x){ int i; for(i=0;i<m;i++)

2015-08-04 21:46:17 379

原创 hdu 5349 MZL's simple problem (set)

# include # include # include # include # include using namespace std;int main(){ int n,op,i,a; sets;///默认从小到大 元素不重复 while(~scanf("%d",&n)) { s.clear(); for(i=0;

2015-08-04 20:08:48 360

原创 hdu 4647 Another Graph Game (贪心)

/*题意:题目是给一个无向图,其中每个节点都有点权,边也有边权,然后就有2个小朋友开始做游戏了ALICE &BOB 游戏规定ALICE 先行动然后是BOB,然后依次轮流行动,行动时可以任意选取一个节点并获得节点的点权,如果他已经把一条边的2个端点都取了,那么他可以获得那边的边权思路: 贪心。对于一条边来说, 如果拿了一个点, 说明已经拿了该边的一半权值。如果某边的两个的顶点分

2015-08-04 18:39:19 354

原创 hdu 4893 Wow! Such Sequence! (线段树 区间更新+单点更新)

/*1 k d 第k个数加d2 l r 查询l到r的和3 l r l到r更新到最近的f[]*/# include # include # include using namespace std;# define lson l,m,rt<<1# define rson m+1,r,rt<<1|1# define N 100005__int64 sum[N<<2],need[N

2015-08-03 21:22:54 338

原创 hdu 4902 Nice boat (线段树)

/*题意:给你n个数q个询问:q==1时 l到r区间的数更新为xq==2时 l到r区间的数更新为gcd(a[i],x)输出变化之后的n个数*///模拟# include # include # include # include using namespace std;# define N 100005int a[N],e[N];int b[N],c[N]

2015-08-02 22:01:45 366

原创 hdu 2852 KiKi's K-Number (树状数组)

/*题意:给定一个容器,里面存放各种数值,规定三个操作,一个是在容器中增加一个数值,一个是在容器中删掉一个数值,一个是询问容器中比a大的数中第k大的数,将其输出。如果在删除过程中没有这个数,则输出"No Elment!"如果容器中没有比a大的第k个数,则输出"Not Find!".*/# include # include # include # include using n

2015-08-02 19:17:00 325

原创 hdu 4638 Group (离线树状数组)

/*题意: 在l到r之间有多少段连续的数 离线处理每个查询,遍历每个点,设当前处理的区间终点为R, 处理每个查询的时候,首先假设所有的数a[i]都是自己独立成段, 如果有a[i]+1,或者a[i]-1的数在区间[L,R]内,那么它肯定不是独立成段的, 也就是我们要减去在[L,R]内不独立成段的数的个数。 问题就转化为查询[L,R]之前不独立成段

2015-08-01 21:22:48 401

原创 hdu 4635 Strongly connected (强连通缩点)

/*题意:给你一个有向图,问你最多能添加多少条边使得这个图依然不是强联通的。做法:1,求出图中的所有强连通分量2,把上述的强连通分量缩成一个点。3,问题现在变成问一个完全图,最少需要去除多少条边使得这个图不强联通,那么肯定是去除所有强联通分量中含有点数最少的点的所有进边。*/# include # include # include # include #includ

2015-07-30 19:38:25 354

原创 hdu 5316 Magician (线段树)

/*题意:求一个区间内的最大的子序列的和:要求必须子序列中相邻的数下标奇偶性不同。维护区间内的 开始奇结束偶开始奇结束奇开始偶结束奇开始偶结束偶*/# include # include # include using namespace std;# define lson l,m,rt<<1# define rson m+1,r,rt<<1|1# define

2015-07-29 18:35:13 422

原创 zoj 2112 Dynamic Rankings (动态主席树)

/*Q x y z 代表询问[x, y]区间里的第z小的数C x y 代表将(从左往右数)第x个数变成y*/#include #include #include #include using namespace std;# define lson l,m# define rson m+1,r# define N 60010int a[N],Hash[N],T[N],

2015-07-29 14:43:58 448

原创 hdu 4417 Super Mario (主席树+二分)

/*求l,r中比k小的数的个数主席树+二分第几小的值与k相比*/#include #include # include using namespace std;# define lson l,m# define rson m+1,r# define N 100005int a[N],Hash[N];int T[N];///树祖宗节点的编号int sum[N<<5];//

2015-07-28 21:51:04 415

原创 poj 2104 K-th Number (主席树)

/*求l,r这个死序列中第k小的数*/#include #include # include using namespace std;# define lson l,m# define rson m+1,r# define N 100005int a[N],Hash[N];int T[N];///树祖宗节点的编号int sum[N<<5];//数目int L[N<<5];

2015-07-28 20:53:46 374

原创 hdu 4411 Arrest (最小费用最大流)

/*题意:有N+1个顶点M条边的无向图。编号为0的顶点是警察厅。编号为1~N的顶点都有犯罪团伙。现在警察厅需要派出K支小队抓住这些犯罪团伙,第i个点的犯罪团伙被抓到之后会马上通知第i-1个犯罪团伙。现要求把所有犯罪团伙都抓到小队需要走的最短距离(包括从警察厅出来和回到警察厅)思路:这道题的关键之处就在于。。1.必须走过所有的点。2.走过这些点的顺序必须是递增的。。在走第i个点

2015-07-27 21:46:24 386

原创 hdu 1533 Going Home (最小费用最大流)

/*题意:给定一个N*M的地图,地图上有若干个man和house,且man与house的数量一致。man每移动一格需花费$1(即单位费用=单位距离),一间house只能入住一个man。现在要求所有的man都入住house,求最小费用。 把man作为一个顶点集合U,house作为另一个顶点集合V,把U中所有点到V中所有点连线, 费用cost[u][v]为abs(△x)+abs(△

2015-07-26 21:16:18 357

空空如也

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

TA关注的人

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