自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BraketBN

Think, Thank, Thunk.

  • 博客(12)
  • 收藏
  • 关注

原创 【BZOJ2121】字符串游戏【区间DP】

【题目链接】 int开成bool,调了半天... 设ok[i][j]表示模板串[i, j]这段是否能被删除完,再设dp[i]表示模板串[1, i]删除之后最少剩多少字母,那么显然有 dp[i] = dp[i - 1] + 1 if(ok[j][i]) dp[i] = min(dp[i], dp[j - 1]) 现在考虑如何得到ok[i][j]。 设f[i][j][k][

2016-06-27 09:14:45 560

原创 【BZOJ1069】[SCOI2007]最大土地面积【凸包】

【题目链接】 显然四个点都在凸包上,按逆时针设为i, a, j, b,枚举i和j,a和b都是单调的,复杂度为O(n^2) 闲得无聊写了个暴力。。 /* Forgive me Not */ #include #include #include using namespace std; typedef long double LD; typedef double DB;

2016-06-12 22:39:18 591

原创 【HDU4787】GRE Words Revenge【AC自动机】【AC自动机合并】

【题目链接】 调了4个小时多... /* Forgive me Not */ #include #include #include using namespace std; const int maxn = 100005, maxl = 5000005, maxq = maxn; int n, q[maxq]; char str[maxl], tmp[maxl]; struc

2016-06-12 22:28:52 775

原创 【BZOJ4510】[Usaco2016 Jan]Radio Contact【DP】

【题目链接】 看了半天题才看懂... 题解: 设dp[i][j]表示FJ走到第i步,Bessie走到第j步时,的最小花费。 那么从dp[i][j]向dp[i + 1][j],dp[i][j + 1],dp[i + 1][j + 1]转移就完了。 复杂度: 时间复杂度O(nm),空间复杂度O(nm) 收获: 要留意到无后效性 /* Forgive me

2016-06-10 11:43:09 1025

原创 【BZOJ4579】[Usaco2016 Open]Closing the Farm【并查集】【离线】

【题目链接】 感觉和BZOJ1015差不多。。 题解: 倒着考虑操作,就变成了加边。 记录当前时刻有多少个连通块,如果有一个,那么答案是YES,否则是NO。 对于当前点,把当前点与已经添加进的点合并。每合并一次,连通块减一。(一开始连通块先++) 复杂度: 时间复杂度O(n+mα(n)) 空间复杂度O(n+m) 收获: 当两个点已经在一个并查集里的时

2016-06-10 10:10:42 1070

原创 【BZOJ4580】[Usaco2016 Open]248【区间DP】【或 贪心】

【题目链接】 以为adjacent是不同的意思,结果是相邻23333,写了个贪心WA了一发。 题解: 设dp[l][r]表示将l和r合并之后,得到的最大的数,于是就可以转移了 dp[l][r] = dp[l][k] + 1(dp[l][k] == dp[k + 1][r]) 另外还有贪心写法,只不过太麻烦了... 话说好像写记忆化搜索的会被卡。。 复杂度: 时间

2016-06-10 09:21:24 1289

原创 pkusc2016滚粗记

第一次写游记。 Day0 和yzx,hjs一块,早上7点飞机,上了飞机一直睡...醒来后差不多已经降落了。 从机场坐地铁,到北大站。(原来圆明园和中关村都在北大旁边呀) 先去了宾馆,结果前台告诉我们房间还没退出来,由于肚子有点饿,就去对面的KFC填了填肚子。 到了13点房间才空下,把东西放好,睡了会。 起来14点半,去北大报道。 北大好大啊...腿都没劲了orz 找到了理科

2016-06-08 22:40:36 4090 1

原创 【BZOJ3011】[Usaco2012 Dec]Running Away From the Barn【可并堆】

【题目链接】 pkusc时候做的题,现在发上来。 每个节点维护一个大根堆,维护从根节点到当前节点以及当前节点的子节点的路径长度(即深度)。 如果当前节点的堆的堆顶 - 当前节点的深度 大于L,那么删除堆顶,直到满足条件为止。 那么堆的size就是当前节点的答案。 当一个节点处理完毕后,把当前节点的堆与当前节点的父亲的堆合并,就可以了。 当一个节点的儿子都处理完后,那么就可以

2016-06-07 14:45:34 817

原创 【BZOJ2348】[Baltic 2011]Plagiarism【二分】【或 Two Pointers】

【题目链接】 大水题竟然WA了2发。。 (1)二分找到位置后,贡献应该是id - l... (2)被卡精度了 /* Forgive me Not */ #include #include #include using namespace std; typedef long long LL; const int maxn = 100005; int n, num[max

2016-06-02 16:55:57 427

原创 【BZOJ2654】tree【二分】【最小生成树】

【题目链接】 奇怪的二分。 考虑给白边的边权加上一个数,这个数越大,MST时选的白边就越少。 注意排序时候,如果边权相等,要先选白边。 /* Forgive me Not */ #include #include #include using namespace std; const int maxn = 50005, maxm = 100005, inf = 0x3f3

2016-06-02 16:03:48 610

原创 【BZOJ1300】[LLH邀请赛]大数计算器【快速幂】【姿势】

【题目链接】 比较有意思... 经典的组合数取模问题,我们用质因数分解解决。 低位的计算就不说了,直接快速幂取模就可以。 对于高位的计算,我们计算log10下的答案,即log10(p1^a1*p2^a2*...*pk^ak) = a1*log10(p1) + a2*log10(p2) + ... + ak*log10(pk) 记上式为ans,那么答案应该为10^ans,但是我们只要最

2016-06-02 15:21:32 693

原创 【BZOJ1742】[Usaco2005 nov]Grazing on the Run 边跑边吃草【区间DP】

【题目链接】 算是比较经典的区间DP,比较重要的思路是,把未来的花费放到现在计算。 一开始写了个空间O(n^2)的记忆化搜索,结果被卡内存了,最后换成循环了... /* Forgive me Not */ #include #include #include using namespace std; const int maxn = 3001, inf = 0x3f3f3f

2016-06-01 17:46:41 916

空空如也

空空如也

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

TA关注的人

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