自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AK_HuangYC的博客

人一我十,人十我百

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

原创 51nod 1105 第K大的数 (二分答案)

数组A和数组B,里面都有n个整数。数组C共有n^2个整数,分别是A[0] * B[0],A[0] * B[1] ......A[1] * B[0],A[1] * B[1]......A[n - 1] * B[n - 1](数组A同数组B的组合)。求数组C中第K大的数。例如:A:1 2 3,B:2 3 4。A与B组合成的C包括2 3 4 4 6 8 6 9 12共9个数。

2015-11-30 17:05:24 1058

原创 HDU 5586 Sum (区间和最大)

问题描述给n个数{A}_{1},{A}_{2}....{A}_{n}A​1​​,A​2​​....A​n​​,你可以选择一个区间(也可以不选),区间里每个数x变成f(x),其中f(x)=(1890x+143) mod 10007f(x)=(1890x+143)mod10007。问最后n个数之和最大可能为多少。输入描述输入有多组数据。每组数据第一行包含一个整数n.(1\leq n\

2015-11-29 11:46:25 327

原创 HDU 5587 Array (找规律_二分)

问题描述Vicky是个热爱数学的魔法师,拥有复制创造的能力。一开始他拥有一个数列{1}。每过一天,他将他当天的数列复制一遍,放在数列尾,并在两个数列间用0隔开。Vicky想做些改变,于是他将当天新产生的所有数字(包括0)全加1。Vicky现在想考考你,经过100天后,这个数列的前M项和是多少?。输入描述输入有多组数据。第一行包含一个整数T,表示数据组数。T. \left( 1

2015-11-29 11:42:31 360

原创 51nod 1285 山峰和分段

用一个长度为N的整数数组A,描述山峰和山谷的高度。山峰需要满足如下条件, 0 A[P + 1]。以上图为例,高度为:1 5 3 4 3 4 1 2 3 4 6 2。现在要将整个山分为K段,要求每段的点数都一样,且每段中都至少存在一个山峰,问最多可以分为多少段。Input第1行:一个数N,表示数组的长度(1 <= N <= 50000)。第

2015-11-28 18:30:20 962

原创 cf#333 (Div. 2) 区间最大最小值(RMQ || STL_set)

题目大意:n个数的序列,问最长的区间,区间内最大的数和最小的数差小于等于1Sample test(s)input51 2 3 3 2output4input115 4 5 5 6 7 8 8 8 7 6output5#include#include#include#inc

2015-11-27 17:18:26 452

原创 RMQ 模板

求区间的最值问题void RMQ_init(){ for(int i=1; i<=n; i++) dp[i][0]=s[i]; for(int j=1; (1<<j)<=n; j++) for(int i=1;i+(1<<j)-1<=n;i++) dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]

2015-11-26 16:54:23 252

原创 51nod 1246 罐子和硬币

有n个罐子,有k个硬币,每个罐子可以容纳任意数量的硬币。罐子是不透明的,你可以把这k个硬币任意分配到罐子里。然后罐子被打乱顺序,你从外表无法区别罐子。最后罐子被编上号1-n。每次你可以询问某个罐子,如果该罐子里有硬币,则你可以得到1个(但你不知道该罐子中还有多少硬币),如果该罐子是空的,你得不到任何硬币,但会消耗1次询问的机会。你最终要得到至少c枚硬币(c 例如:有3个罐子,10个硬币

2015-11-24 14:59:01 682

原创 51nod 1352 集合计数 (扩展欧几里得)

给出N个固定集合{1,N},{2,N-1},{3,N-2},...,{N-1,2},{N,1}.求出有多少个集合满足:第一个元素是A的倍数且第二个元素是B的倍数。提示:对于第二组测试数据,集合分别是:{1,10},{2,9},{3,8},{4,7},{5,6},{6,5},{7,4},{8,3},{9,2},{10,1}.满足条件的是第2个和第8个。In

2015-11-23 20:06:06 700

原创 51nod 1038 矩阵取数问题 (DP)

一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。例如:3 * 3的方格。1 3 32 1 32 2 1能够获得的最大价值为:11。Input第1行:N,N为矩阵的大小。(2 <= N <= 500)第2 - N + 1行:每行N个数,中间用空格隔开,对应

2015-11-23 19:59:04 478 2

原创 HDU 5569 长度为n的上升子序列个数d (大数模板+DP)

问题描述给定长度为nn的序列b_ib​i​​,求有多少长度为kk的本质不同的上升子序列。设该序列位置为a_1, a_2 ... a_ka​1​​,a​2​​...a​k​​一个序列为上升子序列,当且仅当a_1 a​1​​a​2​​...a​k​​且b_{a_1} b​a​1​​​​b​a​2​​​​...ba​k​​。本质不同当且仅当两个序列aa和AA存在一个ii使得a_i \neq A_

2015-11-22 16:31:17 1803

原创 HDU 5569 矩阵的最小贡献 (DP)

问题描述给定n*mn∗m(n+mn+m为奇数)的矩阵,从(1,1)(1,1)走到(n,m)(n,m)且只能往右往下走,设经过的数为a_1, a_2 ... a_{2k}a​1​​,a​2​​...a​2k​​,贡献为a_1*a_2+a_3*a_4+...+a_{2k-1}*a_{2k}a​1​​∗a​2​​+a​3​​∗a​4​​+...+a​2k−1​​∗a​2k​​,求最小贡献。输

2015-11-22 16:26:15 374

原创 51nod 1154 回文串划分 (DP)

有一个字符串S,求S最少可以被划分为多少个回文串。例如:abbaabaa,有多种划分方式。a|bb|aabaa - 3 个回文串a|bb|a|aba|a - 5 个回文串a|b|b|a|a|b|a|a - 8 个回文串其中第1种划分方式的划分数量最少。Input输入字符串S(S的长度Output输出最少的划分数量。

2015-11-20 19:53:06 1477

原创 HDU 1205 吃糖果 (抽屉原理)

Problem DescriptionHOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。 Input第一行有一个整数T,接下来T组数据,每组数据占2

2015-11-18 22:44:52 377

原创 51nod 1247 可能的路径 (最大公约数变形)

在一个无限大的二维网格上,你站在(a,b)点上,下一步你可以移动到(a + b, b), (a, a + b), (a - b, b), 或者 (a, a - b)这4个点。给出起点坐标(a,b),以及终点坐标(x,y),问你能否从起点移动到终点。如果可以,输出"Yes",否则输出"No"。例如:(1,1) 到 (2,3),(1,1) -> (2,1) -> (2,3)。

2015-11-18 21:20:51 738

原创 51nod 1116 K进制下的大数 (暴力枚举)

有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只知道这个数在K进制下是K - 1的倍数。现在由你来求出这个最小的进制K。例如:给出的数是A1A,有A则最少也是11进制,然后发现A1A在22进制下等于4872,4872 mod 21 = 0,并且22是最小的,因此输出k = 22(大数的表示中A对应10,Z对应35)。Input输入大数对应的字符串S

2015-11-18 19:50:31 810

原创 51nod 1100 斜率最大

平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线所通过的两个点。(点的编号为1-N,如果有多条直线斜率相等,则输出所有结果,按照点的X轴坐标排序,正序输出。数据中所有点的X轴坐标均不相等)Input第1行,一个数N,N为点的数量。(2 <= N <= 10000)第2 - N + 1行:具体N个点的坐标,X Y均为整数(-10^9

2015-11-18 18:45:49 728

原创 HDU 5563 Clarke and five-pointed star(判断正五边形)

问题描述克拉克是一名人格分裂患者。某一天克拉克分裂为一个几何学习者,在研究多边形。在研究某一个多边形的时候,克拉克发现他多次遇到判断5个点是否能组成一个五角星的问题,在这里,这5个点分别代表五角星的五个顶点(顶角上的点)。于是他跑来想你求助,让你写出一个程序快速判定。即对于给出的5个点,判断这5个点是否能组成一个五角星。输入描述第一行一个整数T(1 \le T \le 10)T(

2015-11-17 23:57:48 605

原创 51nod 1294 修改数组 (LIS变形_DP)

Input第1行:一个数N表示序列的长度(1 <= N <= 100000)。第2 - N + 1行:每行1个数,对应数组元素。(0 Output输出最少需要修改几个数使得整个数组是严格递增的。Input示例512234Output示例3求LIS是用lower_bound(),而非严格递增用upper_bound()

2015-11-17 23:17:08 617

原创 51nod 1191 消灭兔子 (贪心)

有N只兔子,每只有一个血量B[i],需要用箭杀死免子。有M种不同类型的箭可以选择,每种箭对兔子的伤害值分别为D[i],价格为P[i](1 特别说明:1、当箭的伤害值大于等于兔子的血量时,能将兔子杀死;2、血量B[i],箭的伤害值D[i],箭的价格P[i],均小于等于100000。Input第1行:两个整数N,M,中间用空格分隔(1 <= N, M <= 5000

2015-11-16 21:37:38 695 1

原创 cf C. Wilbur and Points (STL_vector)

Wilbur is playing with a set of n points on the coordinate plane. All points have non-negative integer coordinates. Moreover, if some point (x, y) belongs to the set, then all points (x', y'), s

2015-11-16 14:16:53 564

原创 cf B. Wilbur and Array

Wilbur the pig is tinkering with arrays again. He has the array a1, a2, ..., an initially consisting of n zeros. At one step, he can choose any index i and either add 1 to all elements ai, ai + 1,

2015-11-16 14:16:09 505

原创 cf A. Wilbur and Swimming Pool

After making bad dives into swimming pools, Wilbur wants to build a swimming pool in the shape of a rectangle in his backyard. He has set up coordinate axes, and he wants the sides of the rectangle to

2015-11-16 14:14:45 427

原创 51nod 1417 天堂里的游戏 (博弈论)

多年后,每当Noder看到吉普赛人,就会想起那个遥远的下午。Noder躺在草地上漫无目的的张望,二楼的咖啡馆在日光下闪着亮,像是要进化成一颗巨大的咖啡豆。天气稍有些冷,但草还算暖和。不远的地方坐着一个吉普赛姑娘,手里拿着塔罗牌,带着耳机,边上是她的狗。狗看起来有点凶,姑娘却漂亮。Noder开始计算各种搭讪方式的成功概率,然而狗的存在......。奇怪的事情发

2015-11-16 14:00:32 710 1

原创 51nod 1098 最小方差 (排序+精度)

若x1,x2,x3......xn的平均数为k。则方差s^2 = 1/n * [(x1-k)^2+(x2-k)^2+.......+(xn-k)^2] 。方差即偏离平方的均值,称为标准差或均方差,方差描述波动程度。给出M个数,从中找出N个数,使这N个数方差最小。Input第1行:2个数M,N,(M > N, M <= 10000)第2 - 

2015-11-15 23:17:03 1258

原创 51nod 1191 消灭兔子 (贪心+优先队列)

有N只兔子,每只有一个血量B[i],需要用箭杀死免子。有M种不同类型的箭可以选择,每种箭对兔子的伤害值分别为D[i],价格为P[i](1 特别说明:1、当箭的伤害值大于等于兔子的血量时,能将兔子杀死;2、血量B[i],箭的伤害值D[i],箭的价格P[i],均小于等于100000。Input第1行:两个整数N,M,中间用空格分隔(1 <= N, M <= 5000

2015-11-14 12:52:06 839

原创 51nod 1241 特殊的排序(DP_找最长等差数列)

一个数组的元素为1至N的整数,现在要对这个数组进行排序,在排序时只能将元素放在数组的头部或尾部,问至少需要移动多少个数字,才能完成整个排序过程?例如:2 5 3 4 1 将1移到头部 => 1 2 5 3 4 将5移到尾部 =>1 2 3 4 5 这样就排好了,移动了2个元素。给出一个1-N的排列,输出完成排序所需的最少移动次数。Input

2015-11-14 10:22:51 767

原创 51nod 1103 N的倍数 (抽屉原理)

一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数。Input第1行:1个数N,N为数组的长度,同时也是要求的倍数。(2 <= N <= 50000)第2 - N + 1行:数组A的元素。(0 Output如果没有符

2015-11-13 21:45:15 907

原创 51nod 1315 合法整数集

一个整数集合S是合法的,指S的任意子集subS有Fun(SubS)!=X,其中X是一个固定整数,Fun(A)的定义如下:A为一个整数集合,设A中有n个元素,分别为a0,a1,a2,...,an-1,那么定义:Fun(A)=a0 or a1 or ... or an-1;Fun({}) = 0,即空集的函数值为0.其中,or为或操作。现在给你一个集合Y与整数X的值,问在集合Y至少删除多少个元

2015-11-12 00:40:36 743

原创 51nod 1270 数组的最大代价 (DP_好题)

数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai,都满足1   (公式表示所有两个相邻元素的差的绝对值之和)给出数组B,计算可能的最大代价S。Input第1行:1个数N,表示数组的长度(1 <= N <= 50000)。第2 - N+1行:每行1个数,对应数组元素Bi(1 

2015-11-11 19:04:16 858

原创 51nod 1276 岛屿的数量(贪心策略__锻炼思维)

有N个岛连在一起形成了一个大的岛屿,如果海平面上升超过某些岛的高度时,则这个岛会被淹没。原本的大岛屿则会分为多个小岛屿,如果海平面一直上升,则所有岛都会被淹没在水下。给出N个岛的高度。然后有Q个查询,每个查询给出一个海平面的高度H,问当海平面高度达到H时,海上共有多少个岛屿。例如:岛屿的高度为:{2, 1, 3, 2, 3}, 查询为:{0, 1, 3, 2}。当海面高度为0时,所有的

2015-11-10 23:06:04 661

原创 51nod 1202 子序列个数(DP,递推找规律)

子序列的定义:对于一个序列a=a[1],a[2],......a[n]。则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子序列,其中1例如4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。对于给出序列a,有些子序列可能是相同的,这里只算做1个,请输出a的不同子序列的数量。由于答案比较大,输出Mod 10^9 + 7的结果即可。

2015-11-10 12:02:33 759

原创 51nod 1072 威佐夫游戏 (博弈论)

问题:首先有两堆石子,博弈双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。分析:首先我们根据条件来分析博弈中的奇异局势      第一个(0 , 0),先手输,当游戏某一方面对( 0 , 0)时,他没有办法取了,那么肯定是先手在上一局取完了,那么输。第二个 ( 1  , 2  ),先手输,先手只有四种取法,1)取 1 中的一个,

2015-11-09 23:50:14 1797

原创 51nod 1097 拼成最小的数 (排序)

1097 拼成最小的数基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注设有n个正整数,将它们联接成一排,组成一个最小的多位整数。例如:n=2时,2个整数32,321连接成的最小整数为:32132,n=4时,4个整数55,31,312, 33 联接成的最小整数为:31

2015-11-09 23:07:55 804

原创 51nod 1035 最长的循环节

正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数。1/6= 0.1(6) 循环节长度为11/7= 0.(142857) 循环节长度为61/9= 0.(1)  循环节长度为1Input输入n(10 Output输出Input示例10Out

2015-11-09 19:01:18 412

原创 BFS 模板

#include #include #include using namespace std;struct node{ int x,y,step;};char map[105][105];int vis[105][105];int to[4][2]= {1,0,-1,0,0,1,0,-1};int n,m,sx,sy,ex,ey,ans;int check(in

2015-11-08 22:42:49 326

原创 51nod 最小距离之和-中位数

1 中位数 中位数:将数组大小为n的数据,从大到小,或者是从小到大排列,那么当n为奇数的时候,中位数就是(n+1)/2的这个数,当n为偶数的时候,中位数就是n/2和(n+1)/2这二个数据的平均数。中位数:也就是选取中间的数。一种衡量集中趋势的方法。要找中位数,首先需要从小到大排序,例如这组数据:23、29、20、32、23、21、33、25;我们将数据排序20、21、23

2015-11-07 14:17:29 549

原创 51nod 1108 距离之和最小 V2

三维空间上有N个点, 求一个点使它到这N个点的曼哈顿距离之和最小,输出这个最小的距离之和。点(x1,y1,z1)到(x2,y2,z2)的曼哈顿距离就是|x1-x2| + |y1-y2| + |z1-z2|。即3维坐标差的绝对值之和。Input第1行:点的数量N。(2 <= N <= 10000)第2 - N + 1行:每行3个整数,中间用空格分隔,表示点的位置

2015-11-07 10:21:33 593

原创 zufe 神奇的序列计算 (树状数组)

树状数组维护一下增加的值!!好题啊Description小胖是一个数学爱好者,他总是喜欢提出一些奇怪的问题,给出一个长度为N的序列,每次提出l,r(1a[l]*1+a[l+1]*2+...+a[r]*(r-l+1)的值(序列中数字均大于等于0),其中1形式如:add X 表示a[x]的值增加1,第二种为query L R  表示询问L,R区间的值,求和方式如上面所描述的(所

2015-11-07 00:12:14 564

原创 求组合数(模板)

复杂度O(n*n);;void init(){ ll n=100,m=100; long long i,j; memset(c,0,sizeof(c)); for(i=0;i<=m;i++) c[0][i]=c[1][i]=1; for(i=0;i<=m;i++) c[i][i]=1; for(i=0;i<=n;i++)

2015-11-07 00:10:26 921

原创 51nod 1419 最小公倍数挑战 (找规律题)

几天以前,我学习了最小公倍数。玩得挺久了,想换换口味。我不想用太多的数字,我想从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。Input单组测试数据。第一行有一个整数n (1≤n≤1,000,000)。Output输出一个整数表示选三个数字的最大的最小公倍数。Input示例97Output示例504210

2015-11-05 20:13:57 515

空空如也

空空如也

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

TA关注的人

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