自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Codeforces 611C New Year and Domino(dp)

C. New Year and Dominotime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThey say "years are like dominoes, tumbling on

2015-12-31 22:18:58 544

原创 Codeforces 610С — Harmony Analysis 找规律

Codeforces Round #337 (Div. 2) C. Harmony Analysistime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe semester i

2015-12-27 23:12:01 3836

原创 Codeforces 607A dp

A. Chain Reactiontime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere are n beacons located at distinct positions o

2015-12-24 21:32:23 593 2

原创 Codeforces 608B 找规律

B. Hamming Distance Sumtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputGenos needs your help. He was asked to solve

2015-12-24 18:36:35 819

原创 Codeforces 609D 贪心+二分

D. Gadgets for dollars and poundstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputNura wants to buy k gadgets. She ha

2015-12-23 23:14:46 474

原创 hdu 5596

GTW likes math由于是整数区间,直接枚举即可。时间复杂度O(T∗(r−l))O(T*(r-l))O(T∗(r−l))GTW likes gt首先这道题有一个很显然的O(n∗logn)O(n*logn)O(n∗logn)的做法,直接区间加,求区间最大值即可。但是此题还有一个O(n)O(n)O(n)的做法。我们发现b1,b2,...,bxb_1,b_2,...,b_xb​1

2015-12-12 23:19:49 476

原创 Codeforces 605A

题意:有n个数字组成的序列,每次可以把序列中的某个数放到开头或者尾部,问最少需要多少次操作才能使序列从小到大排列分析:不需要移动的元素是在排列后的序列与排列前的序列的相对位置不变的的序列,在排列后连续的一段序列,如果他们原先的位置是递增的,那么他们是不需要移动的,因为只要把他们之间的元素移走就好了,我们要找的就是最长的一段这样的连续序列。这段序列是不需要移动的。#include

2015-12-10 20:27:09 478

原创 最长上升子序列 nlogn时间复杂度 poj 2533

最长上升子序列模板题:#includeusing namespace std;#define maxn 1002int a[maxn],d[maxn];int main(){ int n; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++) scanf("%d",&a[i]);

2015-12-10 17:27:30 518

原创 UVa 11548 例题9-7划分回文串

题意:输入一个由小写字母组成的字符串,把它划分成尽量少的回文串分析:d[i]为0-i划分的最小回文串的个数则d[i]=min{d[j]+1 | s[j+1~i]是回文串}。判断s[j+1~i]是否是回文串,也是O(n)的时间复杂度,可以记忆化搜索,判断过的标记一下,就不会重判了。但这题数据好像有点水,记忆化后反而变慢了。#include#include#include#inclu

2015-12-09 09:55:35 441

原创 nyoj 最长公共子序列

最长公共子序列时间限制:3000 ms  |  内存限制:65535 KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中

2015-12-09 08:52:44 225

原创 Codeforces 601A Dijkstra最短路

题意:有个地方有些城镇,城镇与城镇间如果有铁路相连,就不会有公路相连,没有铁路连接的城镇就会有公路相连。给你n个城镇数目,m铁路线,问同时从1出发,分别坐火车和坐汽车到达n点,两者都到达的时候最少的用时。其中火车和汽车不能同时到达中间点。分析:题目中的要求不能同时到达某个中间点,这该怎么办呢,刚开始我就想找出最短路径,然后遍历一下两条路径是否经过同时同一点,但仔细想想发现这是不必要的,因为公路

2015-12-08 13:03:00 950

原创 codeforces 602B

题意:有n个数字,找出最长的一段连续的序列,要求这个序列的最大数和最小数相差不能大于1分析:一段序列,可能有的会重复,那么就压缩一下,把连续的相同的数字压缩为一个,并记录数字个数,这样在从头走一遍就好了。/*Sample test(s)Input51 2 3 3 2Output4Input115 4 5 5 6 7 8 8 8 7

2015-12-08 10:13:27 557

原创 hdu 2647 拓扑排序

题意:老板要给员工发工资,但是员工会有些小要求,就是老板你给我发的奖金要比比某某人多,如果老板不能满足所有人的要求,输出-1,否则求一下老板总共最少要发多少工资,基本工资是888元。分析,这题以前做过,使用邻接表做的,又遇上了.明显的拓扑排序题。同一级的人发的奖金是一样的,相邻级别之间奖金差1,以前是用了一个结构体数组,保存了这个人的级别(也就是第几层),最后统计一下就好了。这次用vect

2015-12-07 22:45:55 296

原创 nyoj 860 变形0-1背包

又见01背包时间限制:1000 ms  |  内存限制:65535 KB难度:3描述     有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W 的物品,求所有挑选方案中物品价值总和的最大值。  1   1   1   1 输入多组测试数据。每组测试数据第一行输入,n 和 W ,接下来有n行,每行输入两个数,代表第i个物

2015-12-07 18:57:54 271

原创 hdu 5000 0-1背包

题意:有n种属性,每种属性的数值可以是0-T[i],当一个人属性全部小于等于另一个人的属性时,小的那个人会被淘汰,问最多同时存在多少人分析:要想同时存在的人数最多,那么这一类人的所有的能力和是相等的(假设有x个人),如果有一个人不相等,它的能力如果更大,那个他一定能消灭x个人中的一个,顶替他,如果它的能力更小,一定会被x中的一个人消灭,所以说效果上,这x个人可以等效成能力和是相等的。那么我们要

2015-12-07 16:10:12 285

原创 Uva 562 0-1背包

题意:给你n枚硬币,分成两份,求两份硬币之和的差最小是多少。分析:求出总的硬币和的一半当做背包容量,然后让背包尽可能装多的硬币,这就装换成了0-1背包问题。这题刚开始没理解题意,数组开小了。。。#include#include#include#include#include#includeusing namespace std;#define maxn 50002#

2015-12-07 15:12:21 201

原创 hdu 5592 线段树

设fif_if​i​​是第iii个前缀的逆序对数,pip_ip​i​​是第iii个位置上的数,则fi−fi−1f_i-f_{i-1}f​i​​−f​i−1​​是iii前面比pip_ip​i​​大的数的个数.我们考虑倒着做,当我们处理完iii后面的数,第iii个数就是剩下的数中第fi−fi−1+1f_i-f_{i-1}+1f​i​​−f​i−1​​+1大的数,用线段树和树状数组可以轻松地求出当前第k

2015-12-06 19:55:54 239

原创 快速排序的两种实现方法

快速排序有很多实现方法,主要的有两种,总结一下:第一种:设置左右两个指针,low,high,设置枢纽记录当前比较对象temp,然后首先从高位置high向前搜索找到第一个比temp小的数,然后放到low位置,再找再从low位置开始向后找比temp大的数,再放到high位置,直到low==high。最后把temp放到low位子上。一遍快排完成。这样结束后数组low的左边的数都比low小于或等于

2015-12-06 17:48:29 455

原创 poj 1258 Agri-Net prim算法 最小生成树

DescriptionFarmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course.Farmer John ord

2015-12-02 21:18:51 256

原创 poj 3723 Conscription 并查集+Kruskal 求最小生成树

题意:要招募n个需要征募女兵N人,男兵M人。每征募一个人需要花费10000美元。但是如果已经征募的人中有一些关系亲密的人,那么可以少花一点钱。题目中给你R个男女之间的亲密度关系,如果a号男和m号女有亲密度关系,那么只要现在招募到他们中的一个人,那么招募另外一个人的花费将变为10000-他们之间的亲密度。然后要求你求出招募到所有人的最小花费。分析:可以求出最多可以减多少钱,用kruskal算

2015-12-02 19:04:47 431

空空如也

空空如也

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

TA关注的人

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