自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 线段树练习(3)hdu2795 Billboard

题目大意: 有一块h*w的矩形广告板,要往上面贴广告; 然后给n个1*wi的广告,要求把广告贴上去; 而且要求广告要尽量往上贴并且尽量靠左; 求第n个广告的所在的位置,不能贴则为-1;  分析:初学线段树不得不做的一个好题利用线段树可以求区间的最大值; 将位置即h用来建树(h 树中存储的为该位置还拥有的空间; 若左子树的最大值大于他,就查询左子树,否则查

2016-08-03 16:07:25 292

原创 线段树习题(2)hdu 1394 求最小逆序数

分析:这个题打破我对线段树的理解,线段树可以有很多种操作,不只针对于区间的一些东西,比如本题,逆序数的求解逆序数的定义:对于n个不同的元素,先规定各元素之间有一个标准次序(例如n个 不同的自然数,可规定从小到大为标准次序),于是在这n个元素的任一排列中,当某两个元素的先后次序与标准次序不同时,就说有1个逆序。一个排列中所有逆序总数叫做这个排列的逆序数。简洁来说,if i  > j and a[

2016-08-03 15:42:33 355

原创 线段树练习(1)

现在我们来做几个最基础的线段树区间查询,单点更新,以及区间求和的模板题1、hdu1166 敌兵布阵分析: update:单点增减   query:区间求和#include #include #define lson l, m, rt<<1 #define rson m+1, r, rt<<1 | 1using namespace std;const int

2016-08-03 15:22:52 306

原创 线段树学习(一)

线段树,作为一种超级强大的数据结构,一种特殊的区间树。经我近几日的研究,发现线段树于我以前理解的有所不同,以前就我理解线段树只是一种简单的模板,区间查询,单点更新,几天便可精通,其实不是这样的,线段树拥有很强大的功能(区间查询,求和,异或,单点更新,区间修改,区间合并,扫描线)线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对

2016-08-03 15:08:10 302

原创 尼克的任务(线性DP)

题目描述尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始

2016-07-26 19:23:22 388

原创 奶牛的锻炼

问题 A: 奶牛的锻炼时间限制: 1 Sec  内存限制: 128 MB提交: 48  解决: 13[提交][状态][讨论版]  题目描述   奶牛Bessie有N分钟时间跑步,每分钟她可以跑步或者休息。若她在第i分钟跑步,可以跑出D_i米,同时疲倦程度增加1(初始为0)。若她在第i分钟休息,则疲倦程度减少1。无论何时,疲倦程度都不能超过M。另外,一旦她开始休息,只有当疲惫程度

2016-07-26 19:17:05 443

原创 POJ 1961(KMP, 最短循环节)

分析: 稍微改动POJ2406 循环节#include #include #include #include using namespace std;const int maxn = 1000000 + 5;int next[maxn];void getnext(int len, char *src){ int i = 0, j = -1; next

2016-07-26 19:09:50 295

原创 POJ 2752 既是前缀又是后缀

分析:给定一个字符串s,从小到大输出s中既是前缀又是后缀的子串的长度。此题非常简单,借用KMP算法的next数组,设s的长度为n,则s串本身必定满足条件。其他满足条件的子串都有个特征,就是该子串的最后一个字符肯定与s的最后一个字符相同。这正是next数组发挥作用的时候。从n - 1位既最后一位开始回滚,若s[next[n-1]] == s[n-1],则子串s[0,1,2,...,next[

2016-07-26 19:06:53 586

原创 POJ 2406 循环节

分析: 可用KMP解决(next[] 数组的优良特性之一) 最小周期长 = len - next[len] #include #include #include #include using namespace std;const int maxn = 1000000 + 5;int next[maxn];void getnext(int len, char *sr

2016-07-26 18:54:49 363

原创 (06-09补)Uva 10795 A Different Task 新汉诺塔游戏(递推)

分析:对于递推,我一向是不擅长的,这个题看了刘老师的解法,不由惊叹。。。哎~~~差距可是大了去了考虑编号最大的盘子,如果这个盘子的初始局面和结束局面在同一根柱子上,则不需要移动,那么我们应该找出初始与结束所在柱子不同编号最大的一个,设为k(k必须移动)。把大于k的盘子看作不存在。假设k要从柱子1移动到柱子2,编号比k小的既不能在柱子1上也不能在柱子2上,那么只能位于柱子3上,换句话说,这时

2016-06-12 00:26:47 360

原创 (06-09补)Uva 10755 Garbage 废料堆

分析:1、最大子段和问题     问题定义:对于给定序列a1,a2,a3……an,寻找它的某个连续子段,使得其和最大。如( -2,11,-4,13,-5,-2 )最大子段是{ 11,-4,13 }其和为20。     (1)枚举法求解     枚举法思路如下:     以a[0]开始: {a[0]}, {a[0],a[1]},{a[0],a[1],a[2]}……{a

2016-06-12 00:03:40 436

原创 (06-08补)UVALive 3902 Network 网络

题目大意:n台机器连成一个树状网络,其中叶节点是客户端,其他节点是服务器。现在有一台服务器在节点s,服务器能传播的信号的距离为k,因为有的用户距离服务器的距离大于k,所以必须添加服务器。问最少要添加几个服务器,才能使每个客户端都收到信号分析:首先以S为根节点建立一颗有根树,并dfs建树时记录点的深度,是否为叶子。把叶子按深度从大到小排序,每次贪心选一个深度最大的叶子,然后找到他的k级祖

2016-06-10 20:16:42 447

原创 (06-07)二分

1、UVALive 3971 Assemble 组装电脑分析:最小值最大问题,一般采用二分来解决。。。本题核心:品质因子尽量大#include #include #include #include #include #include #include using namespace std;int cnt;map id;int ID(char* s){

2016-06-08 19:28:00 254

原创 (06-06)思维的体操

1、Uva 11292 王者斗恶龙分析:最少花费,找能砍掉恶龙投的最小雇佣骑士便可,贪心一下(可以分别两个全部从小到大排序,之后挨着砍),也可以训练一下优先队列#include #include #include #include #include using namespace std;int main(){ int n,m; while (s

2016-06-07 13:30:25 369

原创 Vijous系列(1)LIS 最长不下降子序列的应用

1、P1028魔族密码 :https://vijos.org/p/1028分析:最长不下降子序列的变形, 把数字类比成前缀问题#include #include #include #include #include using namespace std;const int maxn=2005;string word[maxn];int a[maxn],s[ma

2016-05-29 20:03:55 452

原创 python初学(3)列表(List)应用(待续ing)

list 的应用1、遍历list(1)、for 循环迭代(2)、while循环索引实例: li = [1 , 2 , 3 , 4 , 5 , 6] for x in li: print x, print '' print '------------------------------'

2016-05-28 22:59:26 319

原创 python初学(2)列表 list

(ID为注释,方便后面理解)1、Python包含6种内建的序列,list,tuple,字符串,Unicode字符串,buffer对象,xrange对象。。。现主要进行list和tuple的学习概述:list 类似于 C语言里的数组,但又不相同, C语言里的数组是某一个是数据类型(数据类型唯一),而 list 数据类型不唯一实例: li = [ 1, 'a', 3.4

2016-05-26 00:26:14 377

原创 背包浅学(1)关于对背包九讲的理解(未完待续ing)

1、 01 背包(1)题目:有N件物品和一个容量为V 的背包。放入第i件物品耗费的空间是Ci,得到 的价值是Wi。求解将哪些物品装入背包可使价值总和最大。(2)分析:这是最简单的背包问题,一个物品只有放与不放两种情况(3)状态转移方程:定义F[ i , j ] 为前i个物品正好放入容量为j的背包中所获得的最大价值,  转移方程 F[ i, j ]  = max{F[ i

2016-05-25 15:55:38 769

原创 python初学(0)python简介(python初学之路)

Python 简介 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 是交互式语言: 这意味

2016-05-25 10:51:28 382

原创 python初学(1)字符串

1、字符串的形式 :    单引号 '' 三单引号 ''' '''    双引号 "" 三双引号 """ """(1)为什么要设定单双引号?防止类似所打印的字符串中出现单或双引号,当然也可以用转义字符来解决 \" \'(2)三单与三双 与单的区别三引号可以允许字符串里面出现换行符,打印文章2、三种字符串    长字符串 用三引号声明    Unicode字符串

2016-05-25 10:46:29 7821 3

原创 乘法逆元(扩展欧几里得或费马小定理)

乘法逆元方法一:扩展欧几里得lint ex_gcd(lint a,lint b,lint &x,lint &y)//扩展欧几里得(扩展gcd){ if (a==0&&b==0) return -1; if (b==0){x=1;y=0;return a;} lint d=ex_gcd(b,a%b,y,x); y-=a/b*x; return d;}lint mod

2016-05-16 22:15:41 514

转载 百度之星2016资格赛 1001代数取模/逆元/费马小定理

乘法逆元模板题Ps:费马小定理解决(也可以用扩展欧几里得算法)逆元 :(a/b) (mod N) = (a * x) (mod N)。 x表示b的逆元。并且 b*x ≡ 1 (mod N )  注意:只有当b与N互质的时候才存在逆元。一般情况下,ax+by=1;得 x为a mod  b 的逆元,y为 b mod a的逆元。根据费马小定理,对于素数n,任意不是n的倍数的b,都

2016-05-16 21:13:35 504

原创 bestcoder百度之星2016AK 1001&1002&1003&1004 题解

1001、分析:迷迷糊糊做了出来,其实关于逆元,我一直是懵圈的。。。泪奔,多方询问各位大神,下次等我彻底理解逆元的相关问题,再来详细解释#include #include #include #include #include #include #include #include #include using namespace std;#define

2016-05-14 20:30:51 676

原创 BC 81

1、Machine分析:3进制,水题#include #include #include #include using namespace std;char str[4]={'R','G','B'};int main(){ int t; scanf("%d",&t); while (t--) { int m

2016-05-13 21:52:21 354

原创 百度之星(陈题2015)部分题解

1、大搬家分析:一个不是很水的递推,只要想明白了怎么能实现三次搬家能回来,题就变水了;只有a->b,之后两个都不动,再b->a,便可以实现三次搬家搬回原样,那么这个题便转化为配对的种数了设S[n]为n时的情况种数,有两种情况:(1)、n不动,有S[n-1]种情况(2)、n和前面(n-1)中的任意一个配对,有(n-1)*S[n-2]#include#in

2016-05-13 21:40:01 681

原创 hihocoder 20 展胜地的鲤鱼旗

时间限制:10000ms单点时限:1000ms内存限制:256MB描述岩手县北上市的「北上市立公园展胜地」,是陆奥国三大樱花名所之一。每年的四月中旬到五月初,这里都会举办盛大的祭奠。除了可以在盛开的樱花步道上乘坐观光马车徐行、还有横跨北上川上的鲤鱼旗,河畔还有当地特有的为祭奠祖先而编创的北上鬼剑舞。假设,我们用一个包含 '(', ')'的括号字符串来区别每面

2016-05-08 10:37:04 615

原创 KMP初学(1)LA 3026 周期

分析:KMP算法入门题,只用到NEXT[]数组,主要在于NEXT[]数组的构建,详细介绍见我前几篇博客,KMP初学if (next[i] >0 && i%(i-next[i]) == 0)                printf("%d %d\n",i,i/(i-next[i]));#include #include #include #include usi

2016-05-08 10:28:48 306

原创 题目1 : 打折机票(hihocoder 20挑战赛)

时间限制:10000ms单点时限:1000ms内存限制:256MB描述 因为思念新宿的"小姐姐"们,岛娘计划6月份再去一趟东京,不过这次看来她需要自掏腰包。经过了几天的夜战,岛娘终于在体力耗尽之前,用Python抓下了所有6月份,上海至东京的全部共n 张机票。现在请你帮助债台高筑的岛娘筛选出符合时间区间要求的,最贵的机票。输入输入数据

2016-05-08 10:22:58 754

原创 AC自动机应用(2)LA 4670出现次数最多的子串

分析:与我上一个博客几乎是一个题,只是由输出是否存在河蟹词语到输出重复次数最多的子串,并打印出来次数最多的子串区别:加一个标签#include #include #include #include #include #include #include using namespace std;struct TrieNode{ int id;//标签

2016-05-08 10:19:21 539

原创 Trie图 & AC自动机初学(1)

题目来源于:Hihocoder时间限制:20000ms单点时限:1000ms内存限制:512MB描述前情回顾上回说到,小Hi和小Ho接受到了河蟹先生伟大而光荣的任务:河蟹先生将要给与他们一篇从互联网上收集来的文章,和一本厚厚的河蟹词典,而他们要做的是判断这篇文章中是否存在那些属于河蟹词典中的词语。当时,小Hi和小Ho的水平还是十分有限,他

2016-05-08 10:13:20 3224

原创 LA 3942 背单词(dp+Trie)

分析:d[i]=sum{ d(i+len(x) } [i,L]的种类数可以正向枚举,也可以逆向枚举,Trie+dp的结合题,第一次见,其实dp的思维还是比较简单的#include #include #include #include #include using namespace std;const int mod=20071027;struct TrieNode

2016-05-08 09:51:53 614

原创 并查集初学(4)向量思维 POJ1182(食物链)&& POJ1703

分析:这两个题,便算是初学者中的大成题了,学会了这两个题,几乎并查集算是入门了,可以秒掉不少题了POJ1182 一般博客都只是给了一个公式,不给推导过程,对于这个公式,有很多理解办法,但我认为应该是用向量思维来理解最好,简单明了此大神写的详解非常完美(可以借鉴):http://blog.csdn.net/c0de4fun/article/details/7318

2016-05-08 09:37:47 481

原创 并查集初学(3)无间道之并查集 && POJ2542 && POJ1611

1、hihocoder上面讲的一道题无间道之并查集水题,精髓在于使用map容器进行打标签#include #include #include #include #include #include using namespace std;const int maxn=10005;int p[maxn];map M;int m;int Find(int

2016-05-08 09:26:28 756

原创 并查集初学(2)LA 3644 & LA3027

1、LA 3644题目:http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=12648并查集入门题,寻找是否存在环,若存在,则cnt++#include #include #include #include const int maxn=100010;using names

2016-05-08 09:15:43 258

转载 并查集初学(1)

转载自:作者:CYJB出处:http://www.cnblogs.com/cyjb/GitHub:https://github.com/CYJB/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于

2016-05-08 09:01:21 272

原创 背包问题(01背包和完全背包)一维数组实现

01 背包问题http://hihocoder.com/problemset/problem/1038一维数组优化且说小Ho搞清楚了计算方法,正在埋头苦写代码,在一旁看他写代码的小Hi是在看不下去了,决定再指点指点小Ho:“小Ho啊!”“怎么了?”小Ho眼睛盯着屏幕,望都没望小Hi一眼。“你现在是不是需要开一个N * M大小的二维数组best,来记录求解出的best

2016-05-03 09:12:03 9387 1

原创 KMP初学

时间限制:1000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一只河蟹,于是河蟹就向小Hi和小Ho提出了那个经典的问题:“小Hi和小Ho,你们能不能够判断一段文字(原串)里面是不是存在那么一些……特殊……的文字(模式串

2016-05-03 09:04:22 1508

原创 刷油漆(树形dp)

时间限制:10000ms单点时限:1000ms内存限制:256MB描述上回说到,小Ho有着一棵灰常好玩的树玩具!这棵树玩具是由N个小球和N-1根木棍拼凑而成,这N个小球都被小Ho标上了不同的数字,并且这些数字都是处于1..N的范围之内,每根木棍都连接着两个不同的小球,并且保证任意两个小球间都不存在两条不同的路径可以互相到达。没错,这次说的还是这棵树玩具的故事!小

2016-05-03 09:01:25 612

原创 数论一·Miller-Rabin质数测试

时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho最近突然对密码学产生了兴趣,其中有个叫RSA的公钥密码算法。RSA算法的计算过程中,需要找一些很大的质数。小Ho:要如何来找出足够大的质数呢?小Hi:我倒是有一个想法,我们可以先随机一个特别大的初始奇数,然后检查它是不是质数,如果不是就找比它大2的数,一直重复,直到找到一

2016-05-03 08:53:02 452

原创 最长回文字串

小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。   这一天,他们遇到了一连串的字符串,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能分别在这些字符串中找到它们每一个的最长回文子串呢?”   小Ho奇怪的问道:“什么叫做最长回文子串呢?”   小Hi回答道:“一个字符串中连续的一段就是这个字符串

2016-05-03 08:49:59 268

汽水瓶c语言解答

一个简单的小程序,有兴趣可以看看,本人新手一枚,望指教

2015-11-21

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

TA关注的人

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