自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fizzmy的博客

PwP欢迎来到我的blog

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

原创 BZOJ3039-玉蟾宫

权限题。 题意: 给一个n*m的01矩阵,求一个最大的全1矩阵,输出答案*3。(n,m≤1000) Solution: 非常经典的一个模型,有两种方法,一种是贪心一种是dp, 这里介绍一种dp方法——悬线法(安利王知昆dalao论文《浅谈用极大化思想解决最大子矩形问题》) 悬线法的本质是dp:用h[i][j]h[i][j]h[i][j]表示第i行第j个数往上数,最早遇到的0的位置,l[...

2017-11-29 19:14:36 291

原创 ASC1 E-Nice Patterns Strike Back

传送门(codeforces GYM) 题意: 给你一个n*m的矩形,对其进行上色,要求每个2*2的小正方形中的颜色不能相同,求方案数模p。(n<=10100,m<=5,p<=10000) Solution: 看到计数题,首先考虑组合数或者dp,组合数发现行不通,考虑dp,发现m非常小,说明可以状压,又发现n非常大,说明一定是可以用矩阵乘法的,我们很快可...

2017-11-25 23:09:30 449

原创 大整数类-高精度模板

在大部分oier看来,只要有高精度的题就是毒瘤题(雾),之前的我遇到高精度的题就直接弃疗了,但是如果考试考到,这些分就白丢了,所以说抽出时间整理了一下高精度模板,主要包括:高精加,高精减,高精乘,高精除单精先说说如何定义:struct bigint{ int s[10100]; int len; bool zf; bigint() { mems

2017-11-25 22:51:07 609

原创 Codechef MARCH14 GERALD07-莫队+并查集

传送门 这道题也是bzoj3514离线版 题意: 给你n个点,m条边,询问k个区间[L,R],求只保留[L,R]间的边,有多少个联通块。n,m,k<=200000Solution: 既然是离线那么显然可以搞事[滑稽],询问区间有什么暴力方法呢?莫队!因为在图上所以每次操作不是O(1)O(1),感觉似乎可以用并查集的样子呢,算一下复杂度为O(nn√α)O(n\sqrt n α)也是可以

2017-11-23 15:32:31 513

原创 BZOJ1226-学校食堂Dining

传送门 题意:中文题,非权限题。 Solution: 显然不能贪心,那么考虑dp,注意到b[i]≤7,所以说可以考虑状压怎么做,再结合n&amp;lt;=1000,想到了一个状态:f[i][j][k]表示前i-1个人都吃过饭了,j后面7人和j的吃饭状态,上一个吃过饭的人是k。 转移: f[i+1][j≫1][k]=f[i][j][k]f[i+1][j≫1][k]=f[i][j][k]f[i+1]...

2017-11-21 20:37:41 325

原创 bzoj2427-tarjan+树形dp+背包

传送门 一道练习综合代码能力的好题 先把被依赖的点连向依赖这个点的点,再tarjan缩点,缩点后会形成多棵树,对每棵树进行dp,最后进行一次背包即可,注意要倒着枚举。 代码: #include&lt;cstdio&gt; #include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; struct wp{ ...

2017-11-17 16:13:20 280

原创 Codeforces 313D- Ilya and Roads

传送门 题意: 给一个区间[1,n],再给出m个区间[li,ri][li,ri][l_i,r_i]以及每个区间的维修成本viviv_i,问修好k个不同的整点所需的最小成本。 (n≤300,m≤1e5) Solution: 这道题首先想到了朴素的n2mn2mn^2m的dp(按照右端点排序,f[i][j][k]表示前i个区间,选了j个点,上一个选的右端点为k的最小代价),但是显然会T,转移时...

2017-11-07 12:52:44 296

原创 AtCoder Code festival 2017qualC-D-dp+优化

传送门 题意: 给你一个字符串s,问s最少分成几块,使得每一块在经过组合后都能成为一个回文串。(|s|≤2e5) Solution: 我们可以转化一下“回文串”这个定义,对于每个字母我们可以把它分别转化到二进制的0-25位,然后如果一段字符串是回文串,那么这段字符串每个字符的异或一定是0或者2的幂,那么这道题就可以用dp做了:f[i]表示前i个字符的被分成的最小段数,转移即为 f[i]=...

2017-11-07 11:49:48 401

空空如也

空空如也

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

TA关注的人

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