自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UESTC1132 酱神赏花 【DP+单调队列】

【题目大意】中文题面。需要注意的是AI,BI,TI和题面里的输入顺序不同【解题思路】由于bi是常数,所以可以用Σb来减去答案即可。所以实际上我们维护的是|x-ai|的最小值状态定义:dp[i][j]表示第j时刻(注意是时刻不是时间,此处的j只表明花出现的顺序而不关心花出现的具体时间)人在i位置时所对应的|x-ai|的最小值考虑转移方程:dp[i][j]=min(dp[k

2017-04-22 11:39:52 390

原创 UESTC395 Dynamic Query System 【简单平衡树(数组Treap)】

【题目大意】题目包含多组数据每组数据读入一个正整数n表示操作数量,接下来n行,每行一个操作操作分为八种:1)I X 表示将X插入序列2)R X 表示将X从序列中删除,注意,由于X可能被插入了多次,所以只要随便删除一个即可3)S 表示询问该序列的元素个数(重复的也算)4)L X 表示询问序列中严格比X小的数有多少个5)W K 表示询问第K大的数是什么(从1开始标号),

2017-04-21 20:50:35 373

转载 c++ 指针详解

指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子:  例一:int *ptr; char *ptr; int **ptr; int (*ptr)[3

2017-04-15 09:12:47 265

转载 c++ 友元函数及友元类

友元是指:采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分(注意友元函数不是类的一部分),但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全

2017-04-15 08:56:42 370

转载 C++ Vitual函数

主要是最近做模拟题时遇到了,于是把网上写的特别好的转载过来。Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如下面例子中的函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对p

2017-04-14 22:59:47 1122

原创 SCOI2017 赛后总结及反思

SCOI2017 赛后总结及反思前言前不久才去打了校赛,现在是参加省选,时间变了,经历变了,但是地点没变,仍然是那栋熟悉的实验大楼。我也没变,还是一如既往的弱,一如既往的水。比赛历程D1T1树链剖分裸题,然而我是在省选后的那个周一学的树链剖分,于是0分。 D1T2强力DFS,然而考场上写挂了。 D1T3计算几何,感觉自己还是时间分配不当,花了大量时间来优化30%,结果悲催的拖累了T2……D2T1

2017-04-12 23:52:38 1443

转载 c++引用与指针的区别

★ 相同点:    1. 都是地址的概念;    指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。    ★ 区别:    1. 指针是一个实体,而引用仅是个别名;    2. 引用使用时无需解引用(*),指针需要解引用;    3. 引用只能在定义时被初始化一次,之后不可变;指针可变;    引用“从一而终” ^_^

2017-04-07 21:30:19 224

原创 HDU1429 胜利大逃亡(续) 【状压搜索BFS】

【题目大意】高级版的走迷宫,小写字母a~j表示钥匙,分别对应A~J门,求出走出迷宫的最小步数【解题思路】首先想一想为什么只要求匹配a~j而不是a~z,发现j是第10号字母,而地图是20*20的,而20*20*(2^10)差不多接近常用的字节大小,由此想到了状压搜索。于是dp[i][j][k]表示在(i,j)坐标下对应的钥匙的状态,k的某一位上是零表明该位的钥匙还没有拿到,否则表示已

2017-04-06 23:51:21 390

原创 HDU1348 Wall 【简单凸包】

【题目大意】首先读入N,L分别表示有N座城堡以及城墙到城堡的最近距离不得低于L然后N行输入每个城堡的平面坐标需要求出最短的能够满足条件的城墙长度。条件:1)城墙到城堡的最近距离不得低于L2)城墙必须包含最外圈的所有城堡输入包含多组数据保留0位小数输出【解题思路】该题是典型的凸包问题在此简单介绍一下凸包:凸包(Convex Hull)是一个计算

2017-04-06 17:08:31 457

原创 POJ3254 Corn Fields 【状压DP入门】

【题目大意】读入两个数m,n;然后下面一个m*n的矩形,由0或1组成。如果该格为0,则表示该处的土地不肥沃,不能放牛。如果该格为1,则表示该处的土地肥沃,可以放牛。求出最后Farmer John放牛的方案数。【解题思路】观察到数据规模只有12,但是要求取模1e8,所以优先考虑状态压缩DP由于m,n都是随读入变化,全部考虑很麻烦,所以我们固定列,只考虑行。设dp[i]

2017-04-06 16:23:54 287

原创 UVA 558 判断环 【炒鸡简单的图论题】

In the year 2163, wormholes were discovered. A wormhole is a subspace tunnel through space and timeconnecting two star systems. Wormholes have a few peculiar properties:• Wormholes are one-way o

2017-04-04 21:48:27 365

原创 大学生程序设计竞赛暨西南地区高校邀请赛 赛后总结

大学生程序设计竞赛暨西南地区高校邀请赛 赛后总结前言又是一次踏入电子科技大学的校门,又是一次半失落半喜悦的走出春芽生长的校园。 多校赛,是一个神奇的比赛。一共11道题,5个小时,每A一道题,都会有志愿者来发气球。 猜猜我们队有几个气球吧。 1个。 是的,只有1个。 作为一只蒟蒻,我只能靠过人的英语能力帮队友看完了所有题,翻译了所有题,然后便只是有时候灵光一闪想出一个复杂度不对劲的算法。比赛

2017-04-03 22:57:56 623

原创 SPOJ-LIS2 Another Longest Increasing Subsequence Problem 【三维偏序CDQ】

【题目大意】首先输入N个整数,接下来N行每行输入两个整数x,y表示i号点的x,y坐标输出所有满足i【解题思路】第一眼看起来像是二维偏序的问题,但是注意到本题其实是在空间里面的一条最长上升折线,所以还需要考虑下标的问题。所以本题转化为了一个三维偏序问题,指满足i三维偏序问题,可以使用CDQ学姐发明的算法,用以下一句话概括:一维排序,二维分治,三维树状数组。其算

2017-04-03 17:46:42 480

原创 POJ2823 Sliding Window 【单调队列、单调栈初步】

【题目大意】给你一个长度不超过1e6的序列,现在有一个数字k,表示长度为k的子序列自左到右滑动时保持长度为k。现在要求出该长度为k区间在滑动的过程中区间的最大值最小值。【解题思路】如果此题直接模拟或者利用最大值的单调性来做的话,在长度为k的区间上无法保证次大值的正确性。本题的正确的思路是单调队列。首先求出每次滑动的最小值。我们考虑维护一个下标队列,首先将前k的数直接加入

2017-04-03 17:27:30 390

原创 HDU 1166 敌兵布阵 【简单的树状数组||线段树】

【解题思路】直接树状数组过【代码】#include#include#include#include#include#include#include#include#include#include#define LL long long//#define LOCAL#define lowbit(i) (i&(-i))using namespace std;c

2017-04-01 18:16:49 347

原创 UESTC 844 程序设计竞赛 【维护值稍多的线段树】

【题目大意】维护一个序列,使之支持一下两种操作:1、单点修改2、查询一个区间子区间最大值(在某个区间中任意寻找一段连续子区间,使得该子区间的和最大)(以下将该值称为‘答案’)【解题思路】线段树做法:考虑维护四种和:sum,suml,sumr,subsum,分别是区间和,左端点开始连续最大和(以下将该值称为‘左始和’),右端点结束连续最大和(以下将该值称为‘右结和’),答案

2017-04-01 17:36:15 496

原创 HDU 4006 The kth great number【线段树二分】

【题目大意】输入两个正数n,k,代表n次操作和查询第k大数,有两种操作:1、I A 代表将A加入序列2、Q 代表询问第k大数多组数据,1【解题思路】本题采用线段树无疑,但是需要注意的是询问操作。首先将操作离线,然后将所有I操作对应的A离散化。然后将A压入线段树,在对应节点处prefix++(prefix就是答案)然后每遇到一次询问,都在线段树上二分,具体过程见下

2017-04-01 08:34:57 526 1

原创 UESTC 841 休生伤杜景死惊开 【线段树】

【题目大意】给出一个数组A,求出满足iAk的数对(i,j,k)的个数【解题思路】第一反应是三元逆序对或者类似的东西,但发现做不出来,于是换思路。想了一会发现可以直接维护两颗线段树,但是压入的是数值不是下标,一颗处理一下区间和最后倒回来枚举j求出一个left值和right值(即j对答案的贡献),乘起来累加进答案即可【代码】#include#include#includ

2017-03-31 12:25:56 1275

原创 HDU3608 最长回文子串 【Manacher算法】

【题目】多组数据(T每次输入一个字符串,判断它的最长回文子串的长度例如abababaabab的答案就是8(babaabab)【解题思路】Manacher算法模板题【代码】#include#include#include#include#include#include#include#include#include#include#define LL

2017-03-30 16:57:24 441

原创 POJ2777 Count Color 【简单的线段树】

【题目大意】现在有一个长度为L cm的板,每一厘米划分成一个格子,一开始每个格子颜色涂为1(1号颜色),之后有O个操作,一共有两种操作:1、C a b c 代表将区间[a,b]全部刷成c颜色(一共有T种颜色,会读入)2、P a b 代表询问区间[a,b]有多少种不同的颜色数据范围:1注意可能读入的a,b出现a>b的情况,需要交换一下;【解题思路】(虽然我A了但是貌似时间和空

2017-03-30 16:37:22 350

原创 POJ2752 Seek the Name, Seek the Fame 【既是前缀又是后缀的子串】

【题目大意】输入一个仅含小写字母的字符串,求出其子串的长度,该子串满足条件:既是前缀又是后缀。输入包含多组数据。【解题思路】分析题意,得知该题是求给定字符串的所有前缀后缀子串的长度。(以下将前缀后缀串简称为PS串(Prefix-Suffix))显然,设B为A的PS串,则有A[i]=A[len-1](下标从零开始),其中A[i]为B的最后一位。所以可以利用KMP优越的匹配性能直接

2017-03-21 21:37:32 456

原创 UESTC 1091秋实大哥の恋爱物语 【简单KMP】

【解题思路】此题首先容易看出是KMP算法,唯一的难点在于上下平移。我们很容易证明对于两个串A,B,如果A能够在B中匹配x次(可以上下平移),那么A和B中每一个数减去前一个数的差组成的新串匹配次数一样。例如:A:1 2 3 1 2 3B:1 2匹配次数:4做差之后->A:1 1 -2 1 1B:1匹配次数:4所以只需要预处理一下,将模式串和匹配串都做差处理

2017-03-21 17:12:46 428

空空如也

空空如也

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

TA关注的人

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