自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 超强手动扩栈方法

#ifdef OPENSTACK int size = 128 << 20; // 64MB char *p = (char*)malloc(size) + size; #if (defined _WIN64) or (defined __unix) __asm__("movq %0, %%rsp\n" :: "r"(p));

2017-08-28 11:06:50 769

转载 加强版输入输出挂

没想到这个东西真的能用上 ,2017多校第10场namespace IO { const int MT = 10 * 1024 * 1024; /// 10MB 请注意输入数据的大小!!! char IO_BUF[MT]; int IO_PTR, IO_SZ; /// 要记得把这一行添加到main函数第一行!!! void begin() {

2017-08-24 15:45:02 302

原创 ABBYY Cup 3.0 E3

E3. Summer Homework(线段树+矩阵)题目链接 题意是给一个序列,支持三种操作 1、把第x个数改为v 2、求l到r之间的和 3、给l到r之间加上一个数字 和函数定义是Sum(l,r) = a[l]*f[0] + a[l+1]*f[1] + a[l+2]*f[2] + ……+a[r]*f[r-l] f[]为斐波那契数列 这个题其实即使没有第一种第三种操作,

2017-08-24 11:30:29 375

原创 hdu6170

HDU6170 Two strings题目链接 题意是给两个串,第一个串是只包括大小写字母的串,第二个串除了大小写字母还包含了 ” * ” “.” 。 “.”可以匹配任意字符 ,“ * ”可以让前面的字符出现任意次,包括0次。 问这两个串能不能匹配上。 这道题有很多种解法,用java正则或者模拟或者dp都行。 给出dp做法,dp[i][j][0/1/2]代表第一串前i个和第二

2017-08-22 21:20:37 518

原创 HDU6161

Big binary tree多校1001 题目链接 题目是给一棵完全二叉树,从上到下从左到右给每个节点标号,每个点有权值,初始权值为其标号,然后有两种操作: 1、把u点权值改为x 2、查询所有经过u点的路径中,路径上的点权和最大。 节点有n个,修改有m个,n<=1e8 ,m<= 1e5 我们容易想到维护一个dp[u]代表从u点往下走能获得最大的权

2017-08-22 20:59:48 974

原创 hdu6155

Subsequence Count题目链接 ccpc网络赛1006 题意是给一个01字符串,然后有2种操作, 1、把l到r这个区间的字符翻转, 2、查询l到r这个区间有多少个不同的子序列,(注意是子序列,可不连续),对1e9+7取模 这个题目在比赛的时候过的人很少 其实对于第二种操作,我们容易得到一个dp[i][0/1]代表前i个字符以0/1结尾的不同子序列有多少个,容易得到方程if(s

2017-08-21 19:43:28 1044

原创 hdu6105

多校第六场1010题目链接 题意是有两个人在玩游戏,有一棵树,一开始每个节点都是没有颜色的,然后A先手,B后手,每次A可以选一个未上色节点涂成白色,B选一个未上色节点涂成黑色,同时与其直接相邻的点也被涂成黑色(无论已经上色与否),B在游戏过程中随时可以做一个小动作就是切割树的一条边。当所有点都被上色时,如果节点中有一个是白色的,那么A获胜否则B获胜,问最后胜利的情况。 看起来B好像很吊的样子,

2017-08-11 16:05:57 553

原创 高维前缀和

前几天补2016大连icpc现场赛的题目时,遇到了一个树分治,这个题除了套一个树分治的模板还要加上高维前缀和的东西。然后发现自己什么都不会….(只是一个铜牌题),补了一下相关的知识,先写一下高维前缀和吧。for(int i = 0; i< 3 ;++i){ for(int j = 0; j<8 ;++j) if( !(j&(1<<(i))) ) a[j] += a[j|(1

2017-08-10 20:24:26 2954 2

原创 hdu5534

Partial Tree题目链接 题意是有n个点,需要加边把他们连接成一棵树,然后每个点的点权的其度数对应的价值。然后问能够连接形成的树的最大权值。 抽象出来其实就是有n-1个物品,背包大小为 2*(n-1), 然后每个物品可以取多次,但是必须取出恰好n个东西出来,因为对应n个点。朴素的解法是我们直接多加一维状态去表示,但是很麻烦的是三维的dp显然没办法在这个题里面做。 有一个精妙的操作可以

2017-08-07 13:03:22 457

原创 Codeforces Round #427 (Div. 2) D.Palindromic characteristics

题目链接 题意是这样的:定义了一种k阶回文串,1-阶是普通的回文串,k-阶回文串的前半串和后半串必须是相等的(不是回文,例如abcabc,如果长度奇数中间的不管他)然后其前半串必须是k-1阶回文串,后半串必须是k-1阶回文串。 然后给一个串,问这个串有多少子串是i阶回文串(i从1到n,依次输出) 分析一下可以看出如果一个串是k阶回文串,那么他必然是k-1阶回文串,于是我

2017-08-06 16:34:23 321

原创 hdu6070

多校第四场1004Dirt Ratio 这个题意提炼出来就是让我们求一个序列中有区间中的不同数字和该区间长度的比值的最小值。 这个题目十分巧妙,因为之前刚刚写过codeforces上的一个类似题目,详见这里 : Codeforces Round #426 (Div. 2) D. The Bakery 当时做多校的时候有往这个方面去想但是又不知道怎么去做,看了题解后才有总结。

2017-08-06 16:23:44 406

原创 Codeforces Round #426 (Div. 2) D. The Bakery

题目链接 给一个序列,要求把序列划分成k段,每一段里的权值是这一段里不同数字的个数。求如何划分使得k个区间的权值和最大。 我们容易想到dp[i][j]代表前j个分为i段时的最大值 dp[i][j] = dp[i-1][k] + size(k+1 , j) ( 0<=k<j ) //size(a,b)表示a到b这个区间里有多少个不同数字但是这显然是个二维的方程,比赛时怎么都

2017-08-06 15:49:05 482

原创 hdu6078

多校第四场1012Wavel Sequence 题意是定义一种波浪数列,满足a1< a2 > a3 < a4 > a5 给两个数列a,b,选出a b的一个公共子串,且是一个波浪数列,问这样的方案有多少种。 这个题相当于公共子序列里再套一个dp 定义dp[i][j][k]为a串前i个且以b串j结尾且上升状态为k时的方案数,那么就可以枚举转移了。 dp[i

2017-08-05 21:18:48 732

空空如也

空空如也

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

TA关注的人

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