- 博客(31)
- 资源 (3)
- 收藏
- 关注
原创 UVALive 7139 Rotation
这个题就是模拟题,但是性质很深. 观察可得到一个结论:对于一个方格中的人来说,如果要有一个完整的时针旋转,则必然是一边走下去,一边走上去,且”包含”所以不用考虑R,L. 若车在人的正左方下降了X次,上升了Y次,那么那个人的旋转圈数便是abs(X-Y)。 然后暴力模拟车的移动: 在车向下移动的时候,我们就要给车影响右方的一个矩阵加上1。 在车向上移动的时候,我们就要给车影
2015-08-27 11:22:58 1063
原创 UVALive 7061 Dire Wolf (dp)(The 2014 ACM-ICPC Asia Beijing Regional Contest D)
该题就是求最小花费,但不是网络流,是区间DP,算起来因该是区间DP中比较简单的那种了。我们用dp[i][j]表示在区间[i,j]的最小花费,则它的转移状态为:for(int k=i;k<=j;k++){ dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k+1][j]+a[k]+b[j+1]+b[i-1]);}转移方程就这一个,注意下边界条件,和初始化
2015-08-25 11:06:05 827
原创 UVALive 7066 Intersection 求圆环面积并
稍微分析一下就出来了!就是求两个圆环的面积并!当两个圆环的圆心的距离d>=2*R, s=0;d>=2*r时,s=area(R,R)-area(R,r)*2;d#include #include#include#include#includeusing namespace std;double area(double x,double y,double r,double
2015-08-24 19:05:17 1008
原创 3196: Tyvj 1730 二逼平衡树
/************************************************************** Problem: 3196 User: moonbeam Language: C++ Result: Accepted Time:5236 ms Memory:27600 kb***********************
2015-08-22 21:01:55 476
原创 multi_treap
#include#include#includeusing namespace std;class multi_treap//multi_treap和treap类似,也是一种排序二叉树,但支持重复元素,其他功能上和treap一样{private: struct node//multi_treap的节点定义 { node* ch[2]; int v, r, s, num;
2015-08-21 20:32:35 375
原创 treap 排序二叉树的模板
Description有一个序列含有一定数量的元素,现在要求写一个程序,满足以下几个要求:【A】支持插入操作(这个序列不允许有重复元素,即是说,如果待插入的元素已经出现在这个序列中,那么请忽略此操作)【B】支持删除操作(如果此序列中不包含待删除的这个元素,则忽略此操作,否则删除这个元素)【C】查找元素x的前继元素(前继元素是指:小于x且与x最接近的元素,当然,如果x已经是序列
2015-08-21 20:19:09 445
原创 hdu 5396 Expression (dp+组合数学)
dp[i][j]表示[i,j]区间的和值。#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#define nn
2015-08-21 10:36:40 348
原创 质因子分解
今天没事做,我们来写个博客,混混等级!下面我们来解释质因子分解。我们以求数的质因子的个数为例来讲解。对于质因子分解最简单最纯粹的暴力我相信大家都会的。int getnum(int x){ int ans=0; for(int i=2;i*i<=x;i++) { while(x%i==0) { ans++;
2015-08-19 11:24:27 850
原创 hdu1255 覆盖的面积
典型的线段树+线扫描#include#include#include#include#includeusing namespace std;#define nn 1010struct node{ int l,r,c; double len1,len2;}tree[nn<<3];struct seg{ double l,r,h; int f;
2015-08-19 09:39:09 357
原创 hdu4419 Colourful Rectangle(离散,线段树,线扫描,状压)
由于状态有点多,我们用状压的思想来做这道题,用1,2,4分别来表示三原色,其他的就和线扫描一样了!这样是比较简单的做法了,当然也可以用最原始的做法!不过嘛就是有点麻烦了!#include#include#include#include#includeusing namespace std;#define nn 10005#define LL __int64#define roo
2015-08-19 09:28:44 402
原创 UVA 11019 Matrix Matcher
不会AC自动机,就来份邪教的矩阵hash;存个模板留作纪念!AC自动机的做法在大白书上有作为例题来讲的!#include#include#include#include#includeusing namespace std;#define ull unsigned long long#define ll long long#define seed1 131#define
2015-08-18 21:34:47 355
原创 HDU2795 Billboard 线段树
这是一道简单的线段树,只需要考虑好我们建树的方式即可!我们以高h来建树,点的权值为W,通过来维护区间的最大值,我们很快就能查找到编号最小的点切大于等于wi。。明白之后就是一道简单的线段树单点更新,维护区间最小值。#include#include#include#include#include#include#include#include#include#include
2015-08-18 21:29:08 708
原创 HDU4638 Group (线段树,莫队算法)
题意:给出一个数组,每次查询l,r,看区间内能分成几个连续的数列也即时求求一个区间中连续ID区间的个数。需要离线处理所有查询。我们从左往右扫描,依次考虑右端点为i的询问,设dp[l]为区间[l,i]的连续区间个数,po[i]为i出现的位置,若还未出现,则为0,设我们当前考虑的右端点为a[i],首先我们假设a[i]不能和区间[1,i-1]中的任何一个数分到一组,则我们要将dp[1]到d
2015-08-18 21:14:37 669
原创 POJ2528 Mayor's posters
线段树的区间更新,最简单的模型!建树的时候需要离散化!离散时注意要将段改成点的区间,不然离散会出错的!虽然POJ数据水不会WA ,但是还是最一下比较好!例如:131 101 3 7 10正确答案为3,离散错的话会得到答案2.#include#include#include#include#include#include#include#include
2015-08-18 21:12:36 321
原创 HDU5316 Magician (线段树区间合并)
一个漂亮的子序列指的是:一个子序列,它的每一对相邻元素在原数组中的下标的奇偶性不同。这个题就是求给定的LR区间内的若干个漂亮的子序列他们各自的和最大是多少。对于线段树每个节点,用四个值 奇始奇终、奇始偶终、偶始奇终、偶始偶终 去分别存四种不同情况的最大值。然后向上更新就好了!
2015-08-18 20:59:19 426
原创 HDU3308 LCIS 最长连续上升序列。
询问区间内最大的LCIS 我们需要记录包含最左点的LCIS ,包含最右点的LCIS,和这段的最长LCIS,然后向上更新就没了!#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker,
2015-08-18 20:51:40 313
原创 POJ1703 简单的种类并查集
#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#define nn 100010#define LL long
2015-08-18 20:50:30 294
原创 UVA11235 Frequent values
求区间内出现次数最多的数出现的次数。一道比较经典的RMQ问题,在大白书的198页也最这题进行了详细的分析!#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:
2015-08-18 20:47:30 279
原创 HDU5386 Cover 果然还是暴力
这么简单纯洁的暴力居然比赛的时候没做出来!我也是醉了!我们只要每次找一行或一列颜色除了0都相同的,然后如果有对应的操作,就把这行这列都赋值成0即可#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comm
2015-08-18 20:17:19 389
原创 hdu 5382 GCD?LCM!
赶脚多校的题太丧心病狂了!还是写个博客留个纪念吧!#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#def
2015-08-18 19:51:05 492
原创 hdu 5384 Danganronpa AC自动机
求目标串中出现了几个模式。模板题#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#define nn 1000
2015-08-18 16:13:54 362
原创 hdu 5387 Clock 简单数学
#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#define nn 1000010#define LL lon
2015-08-18 16:09:53 365
原创 Codeforces Round #315 (Div. 2) D. Symmetric and Transitive
枚举能推出其的i个相等的元素(ic[i,j]是组合数,直接用组合数的关系c[i,j] = c[i-1,j-1] + c[i-1,j]求出。dp[i,j]是 斯特林数 也是贝尔数用公式也就是贝尔矩阵 dp[i][j] = (dp[i][j-1] + dp[i-1][j-1]);也可以求出。#include#include#include#include#i
2015-08-18 10:01:45 533
原创 hdu5371 Hotaru's problem 2015年多校第七场C题 最长回文串
题意很简单,就是分成连续三段,相邻的两段为回文,求这三段的最大长度。111 2 3 4 3 2 1 2 3 4 5在这组数据是,为0;131 2 3 4 4 3 2 1 1 2 3 4 6这组数据为12.如果会最长回文的话,这道题就简单了,不会的可以先看看http://acm.uestc.edu.cn/bbs/read.php?tid=3258 ,会manacher的话
2015-08-17 21:12:40 606
原创 HDU3068 最长回文 manacher
至于manacher算法的原理,大家可以去看大神的:http://acm.uestc.edu.cn/bbs/read.php?tid=3258 这里面写的很清楚。#include#include#include#include#include#include#include#include#include#includeusing namespace std;
2015-08-17 20:37:21 410
原创 That Nice Euler Circuit (好看的一笔画)
直接就是欧拉定理:设平面图的顶点数为,边数,和面数分别为V,E和F,则V+ F-E=2;所以就只需要算顶点数和边数就好了。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(l
2015-08-17 14:49:45 450
原创 Bahosain and Digits
#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#define nn 260#define LL long lo
2015-08-17 10:10:56 441
原创 HDU1536 或者POJ2960 S-Nim 传说中的SG函数
#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#define nn 10010#define LL l
2015-08-14 20:55:02 465
原创 POJ1222 EXTENDED LIGHTS OUT 高斯消元
就一道简单的告诉消元,列30个方程解了就好了。#include#include#include#include#include#include#include#include#include#includeusing namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#define nn
2015-08-14 20:48:15 350
原创 POJ3270 Cow Sorting
解法:置换。题目链接:http://poj.org/problem?id=32701.找出初始状态和目标状态。明显,目标状态就是排序后的状态。 2.画出置换群,在里面找循环。例如,数字是8 4 5 3 2 7 明显,目标状态是2 3 4 5 7 8,能写为两个循环: (8 2 7)(4 3 5)。 3.观察其中一个循环,明显地,要使交换代价最小,应该用循环里面最小的数字2,去与另外的两
2015-08-12 11:20:29 464
原创 POJ2429 GCD & LCM Inverse
要点:大数质因子分解(Pollard_rho就可以解决)题目链接:http://poj.org/problem?id=2429代码好长呀!#include#include#include#include#include#include#includeusing namespace std;#define ll long long#define nn 110#de
2015-08-11 21:29:15 593
2015-2016 ACM-ICPC Northeastern European Regional Contest 标程
2016-08-23
网络流与线性规划24题
2015-08-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人