自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 小记5月29~31日的经历

保研面试第一波

2015-05-31 21:24:19 710

原创 codeforces 278Div1 C题

一个多月前积分终于过了1700,现在1766分,于是只能参加Div1了。这次是虚拟参加,两个小时,A肯定过了,然后看B题没什么思路,开始看C。C的题意很简单,输出1-n的一个排列,使得前i个数的积模n各不相同,也就是0-n-1的一个排列。显然数论相关的问题,也看不出需要什么明显的结论,就开始胡猜了:1.只有n为素数时,才有解(4是特例,因此WA了一次);2.当n为素数时,怎么构

2014-11-27 21:55:47 536

转载 Codeforces Round #231 (Div. 2)

http://blog.csdn.net/accelerator_/article/details/19670387。

2014-03-10 11:13:09 428

原创 Java事件处理

创建一个可以通过鼠标按钮选择FrameBackground的背景颜色。package button;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class ButtonFrame extends JFrame { private JPanel buttonPanel; priva

2014-02-03 16:02:38 476

原创 Java内部类 练手程序

内部类的定义,内部类的特点是可以访问包含它的外部类的private变量。package innerClass;import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import javax.swing.Timer;public class InnerClassTest

2014-01-23 16:14:21 507

原创 369DIV2的D、E题 和 370DIV2的C题

369DIV2的D题其实是一道比较简单的DP题,但是比赛的时候,被概率吓到了,题目意思都没搞清楚。code:#include #include #include #include #include using namespace std;#define N 3000+10struct node { int i,j,r;//i,j,j+1,j+2,...,n-1,

2013-12-08 21:51:11 583

原创 (0):了解什么是cloud

通过阅读2009年的英语论文:Above the Clouds: A Berkeley View of Cloud Computing(伯利克大学眼中的云计算)。这是最早系统阐述云计算的论文。由于是第一次读论文,还是英文版的,相当吃力,往往读了后面忘了前面。首先我把summary仔仔细细读了一遍,文章的大概意思有:1.定义什么是cloud:The datacenter hardware

2013-12-05 18:39:44 825

原创 acm湖南大学长沙赛区 铁牌

这次11.16~11.17两天,从南京赶路来到长沙参加第四场区域赛。其实,16日的热身赛我们在众多队伍AK的情况下竟然爆零,只能说三个人(包括我自己在内)对这场比赛的准备,不论是心理准备还是考前自己的热身准备都是很不够,很不好的,这是个非常不好的预兆,似乎隐约预示着第二天的结局。17日终于到了,正赛开始。其实爆零后,晚上回宾馆反思了很多,(我的两个队友:一个有些实力,分析能力比较强,但心理

2013-11-18 01:23:15 2206 1

原创 hdu4565 矩阵快速幂

#include #include #include #include #include using namespace std;#define ll long long#define ull unsigned long longstruct Matrix { ull v[2][2];};Matrix A, B={1L,0L,0L,1L};//E Matrixu

2013-11-09 14:46:15 502 1

原创 UVa11996 splay树(WA)

写了200多行,总是WA,我也实在看不出哪里错了。。估计问题还在于翻转和查询LCP的地方,可是用10以内的小数据测怎么变都是对的。。郁闷ing。。#include #include #include #include #include using namespace std;//#define N 400000+5#define N 200#define x 89

2013-11-08 14:22:57 461

原创 UVa11922 Splay树

题意:给定初始的n个数的排列,然后把[a,b]区间的数取出来反转一下放到最后,就是left,mid,right,转成:left,right,mid。利用slpay的把任意一个特定点旋转到根节点的思路,再利用线段树懒惰标记的思路,该节点的子树需要反转,flip置为1,否则为0,然后每次旋转时(事实上是每次用到该节点,就要pushdown,maintain,这点想清楚)再执行pushdown,ma

2013-11-05 21:26:13 582

原创 2013acm南京站

今天在南理工比赛,最后89名,铜牌,这次比赛是一次非常不错的锻炼机会,心态,经验也得到了锻炼,赛前虽然准备的没有条理,但也算认真准备了一个月。我准备了一个月的数据结构,结果复旦出了一大堆数学题,,,好伤。我们在比赛的倒计时10秒,出了I题,太惊险,差点打铁。再过两周去长沙,好好加油,再接再厉。不为别的,只为无悔的青春!

2013-11-03 22:22:13 622

原创 HDOJ 4751 黑白染色问题

熟识的人没边,不熟识的连边,连边的要属于两个不同集合。WA的原因是最后的图可能是多个连通图,不能只把1入队,要遍历,如果没被染色就要入队。#include #include #include #include #include using namespace std;#define N 100+5bool g[N][N], visit[N];int pa[N];i

2013-11-01 20:56:13 745

原创 UVa 10829 后缀数组+RMQ

给定文本串T,求在T中形如UVU的字串,其中两端相同字串,则成为L-gap串,L为中间V的长度。求给定L的情况下,形如该字符串的总数,解题思想:任意一个满足条件的UVU,假设U的长度是len,那么左端的U必然包含按照len切分的T串的某个字串,及0,len,2len,3len...。(这点要仔细想清楚)那么枚举每个端点i*len,然后利用RMQ求后缀i*len和后缀i*len+L+le

2013-11-01 14:33:32 1076

原创 (考前水题) UVa 11488 Trie树

#include #include #include #include using namespace std;#define N 50000*200+5#define SIG 2struct Trie { int ch[N][SIG], len[N], visit[N]; int sz; void reset() { sz=1;

2013-10-31 22:19:07 520

原创 (考前水题)UVa 12299 线段树

#include #include #include #include using namespace std;#define N 400000+5#define inf 100000+5struct node { int L,R; int Min;}st[N];int a[N];void build_tree(int p,int l,int r){

2013-10-31 21:12:18 586

原创 (考前水题)LA2191 裸树状数组

#include #include #include using namespace std;#define N 200000+5int a[N], js[N], c[N], lowbit[N];int n;void init(){ for (int i=1;i<=N-5;i++) lowbit[i]= i&(-i);}void add(int x

2013-10-31 19:31:24 534

原创 LA4513 后缀数组/字符串hash

对于height的维护还是不太理解。后缀数组裸题:#include #include #include #include using namespace std;#define maxn 80000int s[maxn];int sa[maxn];int n, m;int t[maxn], t2[maxn], c[maxn];int Rank[maxn],he

2013-10-27 15:16:54 519

原创 UVa11107 后缀数组

这题由于这周六考大物,整整拖了一周时间,一开始写的我估计也没什么大问题,细节比较多:1.字符数组直接写成int数组,并且最后一位s[n]=0,来维护sa数组,height数组(记录LCS),rank数组;2.二分的技巧,也看到了很多;3.看来刘汝佳的书写的也不是很完美,对于后缀数组虽然给了标程,但是具体怎么使用,要注意那些细节并没有给出提示,好在还有一片国家队论文可以看,论文里讲的就比

2013-10-27 14:19:25 453

原创 Treap LA5031

动态儿插排序树的一种常用实现算法:Treap。从树根向下递归时当然都是一般的BST方式,左小又大,一步步向下;而向上回溯时却是采用维护最大堆的方式,同时为了维护二叉排序树的基本特性,每次不是直接交换节点,而是旋转;从基本的Treap中为了解题,衍生出了名次树,每个节点用一个数据记录该子树所有节点数,可以完成查询第K大数(第K小数),找任给的x在当前树中的名次;注意maintain的实现

2013-10-15 21:15:37 586

原创 BST 运用STL UVa11020

multise内部结构就是一个Binary Search Tree,要重载#include #include using namespace std;struct Point{ int a,b; //Point(int a1=0,int b1=0):a(a1),b(b1){} bool operator< (const Point& rhs) const {

2013-10-13 11:09:06 451

原创 AC自动机 UVa11019

这题的AC自动机不用维护last数组,找到每个左上角的匹配行数,如果恰好等于x,那么刚好就是一个完整的二维匹配。但是,不明白为什么一直WA啊,看了别人的代码感觉都差不多啊,我也考虑了模板串多行相同的情况啊,郁闷了。#include #include #include #include #include using namespace std;#define SIG 26

2013-10-13 10:47:34 425

原创 AC自动机 UVa11468

在给定的字符下,任意搭配,不含有任一模板串的概率,抽象的最终问题是:在Trie图上走L步,保证每一步不是单词节点,用记忆化搜索,这是对节点是否为单词节点的标记是match[u] |= match[f[u]],不再需要维护val[u]和last[u]。还是稍微有些不好理解的。#include #include #include #include #include using n

2013-10-12 09:18:17 453

原创 AC自动机 LA4670

这题调了好久:问题1:Trie图的节点数给小了,应该是150*70,我给的是150*26,少脑子了;问题2:就是数组开小了,老是提交超时,导致开始怀疑算法的复杂度有问题;另外,LA上这题的数据非常弱,非常非常弱。AC自动机的本质:先把模板串建成Trie树,然后根据KMP的思想用BFS建Trie图,说穿了就是维护两个数组,f[u]往回找,last[u]指向其他较短模板串的节点

2013-10-09 23:00:04 455

原创 KMP LA3026

KMP的精髓在于fail数组记录0到i-1的后缀跟前缀的最长匹配(当然本身匹配是忽略的),其实具体实现的代码还是比较抽象的,不是太好理解;这题揭示了KMP的fail数组的一个性质,如果f[i]>0 && i%(i-f[i])==0,那么模式串本身就是一个有循环节的字符串。#include #include #include #include #include using n

2013-10-04 23:03:34 539

原创 Trie Uva11732

不懂为什么老是submission error,也不说明白具体哪错了,至今未过。。#include #include #include #include #include using namespace std;#define MAXNODE 40005//#define MAXNODE 4000005#define SIG 62#define MAXL 1005s

2013-10-04 20:30:39 421

原创 Trie LA3942

Trie的精髓在于利用了公共前缀,生成一个关系树,一条边代表一个字符,节点的val值来记录是否为单词结尾;连续交了三遍Runtime Error,一个是Trie的节点数组开小了,总共有40万个节点,然后关键问题是我的d数组维护,我写的是d[state] = (d[state]+d[state+len[u]]) % MOD;不知道和现在的这个d[state] = (d[state]+d[i])

2013-10-04 14:24:44 528

原创 线段树UVa11992

要建多个线段树,有两个基本操作,set和add,优先级上,set比add高,注意关系;query里还是要用到pushdown,有pushdown的地方就一定要有maintain,两者有依存关系;但是pushdown之后,在哪里,在什么位置maintain,不太明白;写完了,好多错误,,maintain对于子节点和中间节点是有区别的,,query是需要pushdown的;即便如此还是

2013-10-04 01:52:47 502

原创 线段树 LA3938

又卡住了,写了前面一半,后面一半想不明白了。。#include #include #include #include using namespace std;#define N 1000005struct ans{ int x,y; ans(int x1=0,y1=0):x(x1),y(y1){}};struct node { int L,R;

2013-10-03 01:13:07 756

原创 RMQ问题 UVa 11235

RMQ问题:range minimum query。还是利用二分的性质。初始化复杂度是nlogn,查询是logn,本题要先编码,然后再利用RMQ的方法来做。#include #include #include #include using namespace std;#define N 100005#define LOGN 30int Count[N], num[N],

2013-10-02 23:25:42 526

原创 树状数组BITLA 4329

我去,数组最大值 跟 数据最大值 没搞清楚,WA了好多次都看不出来错在哪。这种错误一旦犯了,小数据根本看不不出来。。#include #include #include #include #include using namespace std;#define N 100005int lowbit[N], low[N], a[N];long long c[N], n;

2013-10-02 11:43:16 509

原创 并查集LA3027

基本题,每次把一个根加到另一棵树的结点上,距离有定义,每次询问某结点到根的距离。#include #include #include #include using namespace std;#define N 20005int pa[N],dis[N];char s[2];int n;void init(){ for(int i=1;i<=n;i++){

2013-10-02 10:30:20 565

原创 并查集 LA 3644

基本题。#include #include #include #include using namespace std;#define N 100005int pa[N];int findset(int x){ if (pa[x]==x) return x; pa[x]=findset(pa[x]); return pa[x];}void

2013-10-01 23:00:35 486

原创 uva 11997

K Smallest SumsYou're given k arrays, each array has k integers. There are kk ways to pick exactly one element in each array and calculate the sum of the integers. Your task is to find the k sma

2013-09-24 21:36:10 557

原创 uva11991

Easy Problem from Rujia Liu?Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia L

2013-09-24 20:16:30 594

原创 uva 11995 STL模拟

记住 在pop之前 要先判断 是否 empty。runtime error 了 三次。#include #include #include #include using namespace std;stack st;queue qu;priority_queue p_max;//priority_queue , greater > p_min;int flag_

2013-09-24 19:18:18 558

原创 windows程序设计 学习记录1

#include int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){    MessageBox(NULL,TEXT("Hello Windows 98!"), TEXT("HelloMsg") , 0 );    return

2013-09-14 11:59:44 414

原创 POJ 1191

最优连通子集,对于所要求的方差,展开,化简变成求大矩形分成n块,各块之和的平方的和的最小值,用记忆化搜索模拟每次切割的选择。#include #include #include #include #include using namespace std;#define M 8#define N 15#define inf 10000000int dp[M*M][M*

2013-09-06 20:50:48 458

原创 HDOJ 4578 线段树

关键问题是要同时维护每个节点的三个值,sum【1】一次方,sum【2】二次方,sum【3】三次方,还有个update()维护每次的sum值的改变。然后有个lazy【】标记,既然有lazy标记,就要有pushdown的维护。三种操作,+c,*c,=c,显然=c优先级最高,然后是*c,最后是+c,维护每个节点扣留的操作,需要按照这种顺序。可是写出来wa了4遍。对线段树的理解还是不够透彻。

2013-08-13 12:54:56 636 1

原创 Splay树的基本写法

//node为节点类型,其中ch[0]表示左结点指针,ch[1]表示右节点指针//pre表示指向父亲的指针void Rotate(node *x,int c) //旋转操作,c=0表示左旋,c=1表示右旋{ node *y= x->pre; Push_Down(y), Push_Down(x); //先将Y节点的标记乡下传递(因为Y在上面),再把X的标记向下传递

2013-08-11 17:19:50 522

空空如也

空空如也

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

TA关注的人

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