摘要:题目链接:http://poj.org/problem?id=2942题意:n个骑士要举行圆桌会议,但是有些骑士相互仇视,必须满足以下两个条件才能举行:(1)任何两个互相仇视的骑士不能相邻,每个骑士有两个相邻的骑士(即如果只有一个骑士,则不能举行会议)(2)圆桌会议坐下的骑士数量必须为奇数个有一张名...
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1588题意:Ferry王国有n个岛,m座桥,每个岛都可以互达,现在要烧毁一些桥使得,但烧毁后每个岛仍可以互达,问哪些桥肯定不会被烧毁。分析:给定一个无向连通图,要求图中的...
阅读全文
摘要:题目链接:http://cojs.tk/cogs/problem/problem.php?pid=8题意:n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接。因电子设备容易损坏,需给通讯点配备备用交换机。但备用交换机数量有限,不能全部配备,只能给部分重要城市配置。于是规定:如果...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1144题意:给出一个无向图,求关键节点的个数。分析:双连通分量Tarjan算法直接求割点就行了,裸的模板题。AC代码: 1 #include 2 #include 3 const int N=105; 4 struct EDGE{ 5 ...
阅读全文
摘要:题意:给出一个n个节点和m条边的图,求该图的顶点连通度。分析: 顶点连通度的求解可以转换为网络最大流问题。(1)原图G中的每个顶点v变成网络中的两个顶点v‘和v’‘,顶点v’至v''有一个条弧(有向边)连接,弧容量为1;(2)原图G中的每条边e=uv,在网络中有两条弧e'=u''v',e''=v''...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4750题意:给出一个无向图,f(a,b)表示从点a到点b的所有路径中的每条路径的最长边中的最小值,给出 p个询问,每个询问有一个数t,对于每个询问,求有多少对顶点f(a,b)小于t。注意(1,2)和(2,...
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/changsha/showProblem.do?problemId=26题意:一个人从一个地方到另一个地方,长度为L,每小时速度为speed,周一到周五每天最多走8个小时,周末最多走4个小时,给出这个人出发的时间,问周几到达。分析:水题,但是有个...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738题意:有n座岛和m条桥,每条桥上有w个兵守着,现在要派不少于守桥的士兵数的人去炸桥,只能炸一条桥,使得这n座岛不连通,求最少要派多少人去。分析:只需要用Tarjan算法求出图中权值最小的那条桥就行了...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1523题意:给出无向图的若干条边,求割点以及各个删掉其中一个割点后将图分为几块。题目分析:割点用tarjan算法求出来,对于每个割点,dfs一次图,求出有几块不连通的子图。AC代码: 1 #include 2 #include 3...
阅读全文
摘要:1 大数: 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #inc...
阅读全文
摘要:题目链接:1513 - Movie collection题意:有一堆电影,按1-n顺序排,有m次操作,每次询问第ai个电影之前有多少个电影,然后将其抽出放在堆顶。分析:线段树应用。因为每次查询后要将电影移至堆顶,所以我们可以将线段树的区间开到maxn+n,[1,maxn]先置0,在[maxn+1,m...
阅读全文
摘要:题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2520题意:有一个排列1~k,求第n个排列,其中n为,K(1≤K≤50000),S1, S2,…,...
阅读全文
摘要:题目链接:http://poj.org/problem?id=3368题意:给出n个数和Q个询问(l,r),对于每个询问求出(l,r)之间连续出现次数最多的次数。求解RMQ问题的算法有:搜索(比较暴力),线段树,ST算法(DP),其中较为高效的是ST算法,比较常用,复杂度:预处理O(nlogn),查...
阅读全文
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=4686题意:其中a0 = A0ai = ai-1*AX+AYb0 = B0bi = bi-1*BX+BY最后的结果mod 1,000,000,007n 2 #include 3 //#define LL __...
阅读全文
摘要:链接:http://poj.org/problem?id=3321题意:一颗有n个分支的苹果树,根为1,每个分支只有一个苹果,给出n-1个分支的关系和给出m个操作,Q x表示询问x的子树(包括x)苹果的数量,C x表示若分支x上有苹果,则摘下来,若没有则会生出一个,输出每个询问的值。分析:每个分支其...
阅读全文
摘要:链接:http://poj.org/problem?id=2299题意:给出n个数,求将这n个数从小到大排序,求使用快排的需要交换的次数。分析:由快排的性质很容易发现,只需要求每个数的逆序数累加起来就行了。逆序数可以用树状数组求。n 2 #include 3 #include 4 using nam...
阅读全文
摘要:链接:http://poj.org/problem?id=3067题意:左边有n个城市,右边有m个城市,建k条道路,问有这k条道路中有多少个交点。分析:将城市按x和y从小到大排序,对于每条道路,求前面有多少个y比当前的y大的,累加起来即可。即求逆序数,可以用树状数组实现。求逆序数的思路:可以把数一个...
阅读全文
摘要:链接:http://poj.org/problem?id=2155题意:给出一个n*n的矩阵,初始化为0,给出q个操作,C x1 y1 x2 y2表示将(x1,y1)至(x2,y2)的矩阵的数翻转(0变成1,1变成0),Q x y表示求(x,y)位置的点的值。分析:这是hdu1556的二维版本。把(...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1195题意:给你一个矩阵(初始化为0)和一些操作,1 x y a表示在arr[x][y]加上a,2 l b r t 表示求左上角为(l,b),右下角为(r,t)的矩阵的和。分析:裸的二维树状数组。代码如下: 1 #include 2 #...
阅读全文
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556题意:N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数[a,b]之间的气球染一次色,最后问每个气球染了多少种颜色。分析:这是树状数组的第二种应用,区间成段更新,然后求某点的值。...
阅读全文