自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 最短路 并查集/利用边的性质求最短路

题意:N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离输入:第一行两个正整数N(2接下来M行两个整数,表示相连的两个城市的编号,输入数据中保证没有重边输出:N-1行,表示0号城市到其他城市的最短路,如果无法到达,输出-1,数值太大的以MOD 100000 的结果输出。思路:由于第i条边的权值w[i] = 2^i,

2012-04-22 15:49:41 5505 1

转载 最小路径覆盖

在一个PXP的有向图中,路径覆盖就是在图中找一些路经,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每每条路径就是一个弱连通子集.由上面可以得出:1.一个单独的顶点是一条路径;2.如果存在一路径p1,p2,......pk,其中p1 为起点

2012-04-18 16:34:28 594

转载 线段树(1)

给定一段区间和若干查询关于子区间性质(比如元素总和,最大最小值等等)的请求,要求高效返回结果是很常见的要求。接下来几篇文章我详细说一说应对这些需求所用的数据结构。从求子区间元素和问题说起。给定序列a[1...n],要求从sum(i,j) = a[i]+a[i+1]+...+a[j]很简单,一个循环就可以了。但如果很多个查询过来,每次都循环一遍就太低效了。我们希望能对结果进行缓存,如果有相同的查

2012-04-15 15:41:11 989

原创 POJ 3122 Pie 二分

题意:有N块馅饼,要分给F+1个人。1.可以将一块馅饼分成若干份,但是每个人最多只能拿一块馅饼。2.所有人的馅饼面积必须i相同。求每个人最多能拿到的馅饼的面积。#include#includeusing namespace std;const double eps = 1e-6;const double pi = acos(-1.0);int R[20000

2012-04-06 21:20:57 556

原创 POJ 1905

题意:给出一个弓形的弧长和弦长,求弧的最高点到弦的垂直距离。题解:先推出公式,然后二分。注意这题的二分对象可以有几种选择。第一次直接选了垂直距离h:L' = [(4*h^2) / (4*h)] * arcsin[ (4*h*l) / (4*h^2+l^2) ]。这个公式单调性不明显,并且比较复杂,所以不考虑。然后选择的是角度α:2*α*R = L'R*sinα = l/2所

2012-04-06 20:31:07 888

原创 POJ 3258 River Hopscotch 二分

题意:奶牛们喜欢在河里的石头上玩跳房子游戏,每次从一个石头跳到另一个石头上。现在知道起点的石头,终点的石头,以及终点石头到起点石头的距离L。又知道起点-终点之间还有N个石头,每个石头到起点的距离记为rock[i]。Farmer John想去掉N个石头中的M个,问如何去掉使得任意两块石头之间的距离的最小值最大。#include#includeusing namespace std;

2012-04-06 16:38:33 942

原创 POJ 3723 Monthly Expense 二分

题意:给你n个值,要求将其划分成m部分(顺序不能打乱),如何划分使得最大部分的值最小。题解:二分,对于每一个中间值,检测一次。#includeint N, M;int spend[200000];bool check ( int num ){ int i, sum, cnt = 0; for ( i = 0; i < N; ) {

2012-04-05 22:39:34 701

原创 POJ 1850 Code 统计问题

题意:存在下面的编码方式:a - 1 b - 2 ... z - 26 ab - 27 ... az - 51 bc - 52 ... vwxyz - 83681 其中字符串的长度逐渐增加,并且每一个字符串的字符只能是升序。例如b不能排在a的前面。#include#includeusing namespace std;#define li

2012-04-05 20:23:49 827

原创 POJ 3252 Round Numbers 数字统计

题意:若一个数的二进制形式中0的个数不少于1的个数,那么就称这个数为round number,现在输入两个整数start,finish求在这两个数之间有多少个round number。#include#include#define lint __int64using namespace std;lint C ( int m, int n ){ if ( m <

2012-04-05 20:19:22 838

原创 POJ 3244 Difference between Triplets 公式转换

题意:两个三元组(x1,y1,z1),(x2,y2,z2)的距离如下定义D = max {x1 − x2, y1 − y2, z1 − z2} − min {x1 − x2, y1 − y2, z1 − z2}现在给你n个三元组,让你求出任意两个三元组的距离之和。 题解:公式转换非常有用,必须引起重视先简化一下模型:令a = x1-x2, b=y1-y2, c=z1-z2

2012-04-05 20:09:00 1288

原创 POJ 3286 How many 0's? / 2282 The Counting Problem 排列组合统计数字

比如算4123中有多少个2 按位统计,,,先算各位,,个位是2的情况有413种,,,因为各位左边可以0~412,,,而右边没有数字,,,然后是十位,,,十位是2的有41*10 + 1*4种,,当左边从0~40时,,,右边可以从0~9,,,而左边为41时,,右边只能从0~3然后是百位,,,,百位有4*100种,,,,即左边从0~3,,右边从0~99千位有  1*1000,,,左边

2012-04-05 20:06:30 2124 2

原创 POJ 1430 Binary Stirling Numbers (斯特林数)

题意:给你n,k,求S(n,k) mod 2。题解:没什么好说的,知道公式就好解决。C(z,w) = z! / [(w!) * (z-w)!],要判断奇偶性只需要统计一下分子分母的所含的因子2的个数。#include#define lint __int64lint getTwo ( lint x ){ lint cnt = 0, bit = 2; whi

2012-04-05 19:59:14 3016

C++ STL 标准模板库

ACMer必备.内容非常详尽,不过是英文版的额。

2012-07-24

空空如也

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

TA关注的人

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