自定义博客皮肤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.

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

原创 【Codeforces659D】Bicycle Race【向量叉积】

【题目链接】题意:给出一个n边形,并且从左下角开始顺时针给出点坐标,求凹进去的地方的个数。向量叉积算出方向,统计一下就完了。/* Footprints In The Blood Soaked Snow */#include #include #include using namespace std;typedef long long LL;typedef pai

2016-03-31 23:03:43 460

原创 【Codeforces659G】Fence Divercity【数学】【计数DP?】

【题目链接】题意:给出一些积木,现在可以拿走一些积木,但是拿走一个积木的要求是该积木上面的积木都被拿走,并且要求拿走的积木构成的阴影图是连通的。最底下一层不能拿走。求方案数。其实是个数学计数问题,题解说的很详细了,不多说了。/* Footprints In The Blood Soaked Snow */#include #include using namespace

2016-03-31 22:48:43 803

原创 【Codeforces659E】New Reform【BFS】

【题目链接】题意:给出一个n个点,m条边的无向图,现在你可以任意规定每个边的方向,使得这个图变为有向图,要求入度为0的点尽量少。仔细分析一下就看出来了。如果一个连通块里有n - 1条边,即一棵树,那么答案为1。如果大于n - 1条边,那么可以在环上选一个起点规定方向,那么答案为0。BFS一次就好了。/* Footprints In The Blood Soaked

2016-03-31 22:45:49 455

原创 【BZOJ1609】[Usaco2008 Feb]Eating Together麻烦的聚餐【最长不下降子序列】

【题目链接】正反做一次最长不下降子序列,显然答案是n减去最长不下降子序列的长度。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 30005, inf = 0x3f3f3f3f;int n, num[maxn], dp[max

2016-03-31 22:40:14 976

原创 【BZOJ1296】[SCOI2009]粉刷匠【区间DP】【背包DP】

【题目链接】区间DP+背包,感觉比较厉害的题。【qpswwww的题解】/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 55, maxt = 2505;int n, m, t, f[maxn][maxn], sum[maxn]

2016-03-31 20:38:54 464

原创 【BZOJ1708】[Usaco2007 Oct]Money奶牛的硬币【完全背包】

【题目链接】裸完全背包,这题为什么是gold.../* Footprints In The Blood Soaked Snow */#include #include using namespace std;typedef long long LL;const int maxn = 10005, maxv = 30;int n, m, v[maxn];LL dp[ma

2016-03-31 19:43:47 626

原创 【BZOJ4300】绝世好题【DP】【LIS】

【题目链接】很容易想到O(n^2)的LIS做法,但是显然是不行的。把所有数用二进制表示,发现由递推我们可以得到,最长的子段全部的数字&起来必须至少有一位为1,即这些数字的这一位都是1。那么我们只需要对二进制的每一位,找一个这一位全是1的最长子段即可。听说这是个傻逼题?/* Footprints In The Blood Soaked Snow */#inclu

2016-03-31 17:59:00 304

原创 【BZOJ4236】JOIOJI【数学】【排序】【乱搞】

【题目链接】%%%【lych_cys的题解】/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 200005;int n, si[maxn], sj[maxn], so[maxn];char str[maxn];struc

2016-03-31 17:24:01 564

原创 【BZOJ1016】[JSOI2008]最小生成树计数【最小生成树】【搜索】

【题目链接】参考了【hzwer的题解】orz要利用最小生成树的性质:对于所有的最小生成树,边权相等的边出现次数都相同。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 105, maxm = 1005, p = 31011;i

2016-03-31 16:40:39 345

原创 【BZOJ1426】收集邮票【期望DP】

【题目链接】参考【pygbingshen的题解】,推了一晚上终于推出来了。注意题意指的是,第i次买的时候价钱为i,不是编号为i的邮票价钱为i(否则样例应该是11...)。设g[i]表示已经收集了i张邮票,要收集到n张邮票的期望购买次数。设pr(x, i)表示已经收集了i张邮票,购买x次能收集到n张邮票的概率。那么根据g[i]定义,有(pr(x, i)是可以表

2016-03-31 11:15:46 1358

原创 【BZOJ3450】Tyvj1952 Easy【期望DP】

【题目链接】这题是【BZOJ4318】的减弱版。拿过来改改就行了。/* Footprints In The Blood Soaked Snow */#include const int maxn = 300005;typedef double DB;int n;char str[maxn];int main() { scanf("%d%s", &n, str

2016-03-30 17:49:48 389

原创 【BZOJ1066】[SCOI2007]蜥蜴【最大流】

【题目链接】题里说的距离指的是欧几里得距离。把每个点拆成两个点,中间连接容量为高度的边。如果一个点可以到达另一个点,那么一个点的尾连接另一个点的头,容量为inf。从源点向有蜥蜴的点连边,容量为1。从可以出地图的点向汇点连边,容量为inf。/* Footprints In The Blood Soaked Snow */#include #include using

2016-03-30 10:26:13 470

原创 【BZOJ1798】[Ahoi2009]Seq 维护序列seq 【线段树】

【题目链接】线段树各种标记一直没写过。注意乘法的时候也要更新加法标记。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;typedef unsigned long long ULL;const int maxn = 100005;int n;ULL

2016-03-30 08:40:01 401

原创 【BZOJ1862】[Zjoi2006]GameZ游戏排名系统【Splay】【Hash】

【题目链接】同【BZOJ1862】/* Footprints In The Blood Soaked Snow */#include #include #include #include #include using namespace std;typedef long long LL;const int maxn = 1000005;const LL inf =

2016-03-29 19:08:10 352

原创 【BZOJ1056】[HAOI2008]排名系统【Splay】【Hash】

【题目链接】题不难,就是写得累。注意题面有误,score需要LL,而且可能为0。懒得写hash就用了个map。/* Footprints In The Blood Soaked Snow */#include #include #include #include #include using namespace std;typedef long long

2016-03-29 19:07:13 444

原创 【BZOJ1085】[SCOI2005]骑士精神【搜索】【剪枝】

【题目链接】大暴搜。加个剪枝,如果当前棋盘与目标棋盘相差超过限定步数,那么肯定不行了。注意要保证步数最小,所以要从小到大枚举步数。/* Footprints In The Blood Soaked Snow */#include #include #include using namespace std;const int maxn = 7;int ans

2016-03-29 17:27:38 656

原创 【BZOJ1045】[HAOI2008] 糖果传递【绝对值不等式】【中位数】【数形结合】

【题目链接】大白上一开始的题...一开始只会O(n^2)做法,后来发现是大白上原题,发现原来是个数形结合。设xi表示第i个人给了第i-1个人的糖果数,x1表示第1个人给了第n个人的糖果数。设目标糖果数为M(是已知的,为平均值)。设一开始每个人的糖果数为numi。那么有:对于第1个人,num1 - x1 + x2 = M → x2 = M - num1 + x1 = x1

2016-03-29 14:50:05 896

原创 【BZOJ1072】[SCOI2007]排列perm【暴搜】

【题目链接】似乎std是状压?算了下O(Tn!)的确可以过,敲了一发,真过了.../* Footprints In The Blood Soaked Snow */#include #include #include using namespace std;typedef unsigned long long ULL;typedef unsigned int uin

2016-03-29 14:33:51 521

原创 【BZOJ2435】[Noi2011]道路修建【TreeDP】

【题目链接】对于u这个子树,显然如果一条边(u, v)减去之后,v这个子树就变成子问题了。TreeDP一下就行了。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;typedef long long LL;const int maxn = 1000005;

2016-03-29 11:20:34 381

原创 【BZOJ4034】[HAOI2015]T2【树链剖分】【线段树】

【题目链接】之前写的,忘了发上来了。裸树剖。/* Footprints In The Blood Soaked Snow */#include #include using namespace std; typedef long long LL; const int maxn = 100005; int n, m, head[maxn], cnt, w[max

2016-03-29 11:07:11 327

原创 【BZOJ4196】[Noi2015]软件包管理器【树链剖分】【线段树】

【题目链接】1A了。。裸树剖,没啥说的.../* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 100005;int n, head[maxn], cnt;struct _edge { int v, next;} g

2016-03-29 11:00:22 335

原创 【BZOJ1079】[SCOI2008]着色方案【计数DP】【奇怪的姿势】

【题目链接】想了一天多,感觉似乎只能是5^15。看了一下题解,发现还能这么玩...神奇的题。【iwtwiioi的题解】/* Footprints In The Blood Soaked Snow */#include using namespace std;typedef unsigned long long ULL;const int maxn = 16,

2016-03-29 10:16:17 520

原创 【BZOJ3100】排列【杂项】

【题目链接】同【BZOJ1318】注意会卡空间.../* Footprints In The Blood Soaked Snow */#include #include using namespace std;typedef unsigned int uint;typedef long long LL;const int maxn = 1000005, inf = 0

2016-03-29 10:05:49 354

原创 【BZOJ1318】[Spoj744] Longest Permutation【杂项】

【题目链接】因为答案一定包含1,那么枚举每个数,发现1就计算一次。记录每个数和它相同的数的下一个位置next[i]。先向后尽量多的取不重复的数。然后再去找前面。可以发现答案数列中的最大值就是答案数列的长度,假设最大值在1的前面,向前枚举,不断用数去更新最大值,可以得到长度len。注意要保证i + len - 1 然后判断[i, i + len - 1]的和是否等

2016-03-29 09:57:46 642

原创 【BZOJ1041】[HAOI2008]圆上的整点【数学】

【题目链接】奇怪的姿势。【csyzcyj的题解】/* Footprints In The Blood Soaked Snow */#include #include typedef long long LL;LL R;inline int gcd(LL a, LL b) { for(; b; b ^= a ^= b ^= a %= b); return a;

2016-03-28 20:25:54 331

原创 【BZOJ1083】[SCOI2005]繁忙的都市【最小瓶颈生成树】

【题目链接】最小瓶颈生成树 = 最小生成树水过。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 305, maxm = 50005;int n, m, fa[maxn];struct _edge { int u, v,

2016-03-28 18:11:21 409

原创 【BZOJ1064】[Noi2008]假面舞会【DFS】【分类讨论】

【题目链接】以为要分层图...没思路,去看题解,膜拜proverbs【proverbs的题解】/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 100005, maxm = 1000005;int n, m, head[max

2016-03-28 17:52:22 419

原创 【BZOJ1057】[ZJOI2007]棋盘制作【最大全0子矩阵】【单调栈】【悬链法】

【题目链接】第一感觉就是最大全0子矩阵,但是不太一样,那么转化一下。发现可选部分是0与1相间的,那么我们可以把可选部分的1都变成0,就变成最大全0子矩阵了。考虑怎么变。如果我们强制让最左上角的格子为0,那么对于一个格子(x, y)(1)如果x和y奇偶性相同,且(x, y)上为1,那么这个格子应该变为0。(2)如果x和y奇偶性不同,且(x, y)上为0,那么这个格子应该变为0

2016-03-28 17:04:31 736

原创 【BZOJ3629】[JLOI2014]聪明的燕姿【质因数分解】【暴搜】

【题目链接】有点神奇。膜拜一发【wulala的题解】/* Footprints In The Blood Soaked Snow */#include #include #include using namespace std;typedef unsigned long long ULL;const int maxn = 50005;int n, cnt, p

2016-03-28 16:10:34 547

原创 【BZOJ4318】OSU!【期望DP】

【题目链接】考虑递推,用立方差公式转移,同时要维护E(x^3),E(x^2),E(x),E(1)。考虑第i次操作,设操作前末尾最长的1长度为x。(1)如果操作失败,贡献为0;(2)如果操作成功,贡献为(x+1)^3 - x^3。那么期望为(1 - pi) * 0 + pi * ((x+1)^3 - x^3)。化简一下答案为-pi * x^3 + (x + 1)^

2016-03-28 12:14:07 1271 1

原创 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡【概率DP】【高斯消元】

【题目链接】竟然被卡eps。设xu为到达u点没有爆炸的概率。方程为xu - (1 - p / q)∑xv / du[v] = [u = 1]。高斯消元一发就好了。答案要乘p / q。/* Footprints In The Blood Soaked Snow */#include #include #include using namespace st

2016-03-28 10:56:08 1052

原创 【BZOJ1024】[SCOI2009]生日快乐【搜索】

【题目链接】注意“要求每个人必须获得相同面积的蛋糕”,且n 对于一块蛋糕,切割点必须是均匀分布的,如果已知了要切割多少份,那么切割点的位置是可以算出来的。所以我们可以枚举切成的两块小蛋糕包含多少份。大暴搜就行了。/* Footprints In The Blood Soaked Snow */#include #include using namespace s

2016-03-28 08:44:43 308

原创 【BZOJ1022】[SHOI2008]小约翰的游戏John【Anti-Nim】

【题目链接】传说中的anti-nim...orz【dzy的blog】/* Footprints In The Blood Soaked Snow */#include inline int iread() { int f = 1, x = 0; char ch = getchar(); for(; ch '9'; ch = getchar()) f = ch =

2016-03-27 23:03:07 560 1

原创 【BZOJ1054】[HAOI2008]移动玩具【BFS】【Hash】

【题目链接】大暴搜...hash去重一下就行。搜到答案时候直接输出是因为BFS时队列前的状态步数是最小的。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 7, maxq = 1 << 17, inf = 0x3f3f3f3f;c

2016-03-27 22:15:28 472

原创 【BZOJ1025】[SCOI2009]游戏【计数DP】【质因数分解】【置换】

【题目链接】只想到求和为n的数的lcm了...以为要求lcm然后离散化dp,最后发现1到1000的lcm已经炸了,然后就无奈了...iwtwiioi神犇说的非常清晰【链接】/* Footprints In The Blood Soaked Snow */#include #include using namespace std;typedef unsigned long

2016-03-27 20:54:20 713

原创 【BZOJ1029】[JSOI2007]建筑抢修【优先队列】【贪心】

【题目链接】很容易确定是贪心。按T2排序,然后依次选择。当遇到一个建筑不能修时,找一个已经修复过的建筑,且修这个建筑的时间最长(浪费时间最多)。然后算一下如果不修那个建筑,修当前这个建筑,能不能修成功。此时答案不变,但是时间会变少或者不变。修过的建筑用优先队列维护。论如何把大顶堆写成greater.../* Footprints In The Blood Soa

2016-03-27 20:08:33 454

原创 【BZOJ1529】[POI2005]ska Piggy banks【并查集】

【题目链接】一个罐子的钥匙只可能在一个罐子里面(有可能是自己),打开了那个罐子就可以打开这个罐子,说明每个点的入度都为1。那么对于一个连通块,只有这一种情况:一开始在一个环里(有可能是自环),环上引出一条链,那么随便打碎一个环上的罐子,就可以打开其他的罐子。那么答案就相当于连通块的个数了。用并查集搞一搞就好了。/* Footprints In The Blood Soake

2016-03-25 10:07:21 372

原创 【BZOJ1037】[ZJOI2008]生日聚会Party【计数DP】【特殊的姿势】

【题目链接】设dp[i][j][k1][k2]表示前i个男生,前j个女生,男生比女生最多多k1个,女生比男生最多多k2个。有两种决策,(1)在下一个位置放男生,那么有dp[i + 1][j][k1 + 1][max(k2 - 1, 0)] += dp[i][j][k1][k2]。(2)在下一个位置放女生,那么有dp[i][j + 1][max(k1 - 1, 0)][k2 +

2016-03-23 07:48:36 417

原创 【HDU5647】DZY Loves Connecting【TreeDP】

【题目链接】BC的一个题。看的这篇文章。/* Footprints In The Blood Soaked Snow */#include #pragma comment(linker, "/STACK:102400000,102400000")typedef unsigned long long ULL;typedef unsigned int uint;const

2016-03-22 21:28:51 434

原创 【BZOJ1090】[SCOI2003]字符串折叠【区间DP】

【题目链接】设dp[x][y]表示[x, y]这个区间可以折叠的最小长度。那么dp[x][y] = dp[x][i] + dp[i + 1][y]。对于可以折叠的一部分,有dp[x][y] = dp[x][i] + 2 + calc((y - x + 1) / (i - x + 1))。calc()是算十进制数字的长度的。/* Footprints In The B

2016-03-22 21:27:21 357

空空如也

空空如也

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

TA关注的人

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