DP
文章平均质量分 52
Hillan_
An OIer From ZJ
展开
-
【bzoj1023】[SHOI2008]cactus仙人掌图
http://z55250825.blog.163.com/blog/static/150230809201412793151890/%%%%反正自己就是sb。。第一道仙人掌dp。。。 感觉很神奇啊#include#include#includeusing namespace std;char c;inline void read(int &a){a=0;do c=ge原创 2015-12-13 10:13:26 · 558 阅读 · 0 评论 -
BZOJ2657: [Zjoi2012]旅游(journey)
我记得第一次看到这个题的时候我的小学弟把我们虐爆了 后来发现这TM就是树的直径啊!!! 日吗。。。#include<cstdio>#include<iostream>#include<cstring>#include<map>using namespace std;#define Side sidestruct side{ int x,y; inline frien原创 2016-02-27 10:56:02 · 360 阅读 · 0 评论 -
BZOJ1057: [ZJOI2007]棋盘制作
悬线法DP 根据前者推的最远处开始算 可以证明是n*m的#include<cstdio>#include<iostream>#include<cstring>using namespace std;char c;bool flag;inline void read(int &a){ a=0;do c=getchar();while(c!='-'&&(c<'0'||c>'9'原创 2016-03-15 14:06:00 · 422 阅读 · 0 评论 -
BZOJ3935: Rbtree
听说是单纯行? 我不会QWQ 对着别人的代码打了一发树形DP 按DFS序处理#include<cstdio>#include<cstring>#include<iostream>const int Max_N=501,INF=1<<14;using namespace std;inline int min(int a,int b){return a>b?b:a;} struct原创 2016-04-12 13:44:04 · 674 阅读 · 0 评论 -
BZOJ1187: [HNOI2007]神奇游乐园
Day1前挖的坑现在才补好…就是一个三进制描述状态.. 感觉最近状态不是很好啊..还是好好准备一下市统测吧 垃圾新高考误我竞赛毁我青春妨我把妹#include<cstdio>#include<iostream>#include<cstring>using namespace std;char c;bool flag;inline void read(int &a){ a=0;原创 2016-05-24 20:34:04 · 632 阅读 · 0 评论 -
BZOJ3125: CITY
心累..上次的板子是错的 今天被折腾死了…. 貌似比标算多了一两个log? 反正预处理可以去掉 ~~反正A了..我就懒得去改了~~#include<cstdio>#include<iostream>#include<cstring>using namespace std; #define ll long longchar c;bool glag;inline void read(原创 2016-05-26 19:07:09 · 647 阅读 · 0 评论 -
BZOJ3492: PA2012 Binary Dodgeball
感谢YJQ和visitWorld两位打野..画个图发现是个Nim游戏 然后发现是个数位DP..#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longll DP[51][4][81][2];ll check(ll max){ ll base=1ll<<49原创 2016-05-18 12:43:20 · 559 阅读 · 0 评论 -
BZOJ2505: tickets
数位DP F[A][B][C][L][R]表示当前为第A位 前面的和为B上一次剩下的可用贡献为C 是否到了上下界同时需要记录一下每一个F对应的C#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<cmath>using namespace std;char c;#define ll原创 2016-07-05 20:56:20 · 541 阅读 · 0 评论 -
Ural1540 Battle for the Ring
区间DP+SG函数看到代码淦过去的时候我的内心是崩溃的… 明明O(n^4)啊。。#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>using namespace std;char c;inline void read(int&a)原创 2016-12-11 19:22:25 · 347 阅读 · 0 评论 -
Hackerrank Connect the country
题目链接: https://www.hackerrank.com/challenges/connect-the-country由于n的整数拆分不超过6000 我们可以考虑用每个整数拆分表示一个状态 预处理每个状态之间的转移 然后暴力跑复杂度不是很会证明 反正跑得过去#include<cstdio>#include<map>#include<cmath>#include<cstring原创 2016-12-08 19:33:20 · 435 阅读 · 0 评论 -
Stirling数学习笔记
劼爷上的课现在才去整理…第一类Stirling数 s(n,m)表示n个元素组成m个圆排列s(n,m)表示n个元素组成m个圆排列 由以上定义我们可以得出递推公式:由以上定义我们可以得出递推公式: s(n,m)=∑n−1i=0s(n−i,m−1)∗Ci−1n−1∗(i−1)! s(n,m)=\sum_{i=0}^{n-1}s(n-i,m-1)*C_{n-1}^{i-1}*(i-1)! 以及原创 2016-12-18 15:39:16 · 1924 阅读 · 0 评论 -
HDU5766 Filling
Burnside+插头DP 旋转有四个群 不动 旋转 π2\frac{π}{2} ππ 3π2\frac{3π}{2} 显然要染色在某置换下不动则每一块结构相同 考虑分别计算 显然 旋转π2\frac{ π}{2} 与旋转 3π2\frac{ 3π}{2} 答案相同我们只需要考虑旋转π2\frac{ π}{2}的情况 此时将n*n的格子分成[n+12][\frac{n+1}{原创 2017-02-15 15:40:53 · 348 阅读 · 0 评论 -
BZOJ3679: 数字之积
我们会发现对于一个乘积一定可以分解为2 3 5 7的倍数然后就根据这个来做了预处理出每个数的幂次总感觉数位DP用记忆化搜索更方便?#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#define ll long longusing namespace std;char c;inline void re原创 2016-03-23 12:48:03 · 629 阅读 · 0 评论 -
BeestCoder #76
鏼爷的题还真的是hentai我真的不是很想打那个数位DP讲道理啊 题目用的东西的确不难 但是难想啊QAQ1001 没打1002 貌似用一点不等式的东西就好了? 感谢×××友情提供的代码1003 G[i]表示子树需要附加贡献 F[i]表示子树贡献#include<cstdio>#include<iostream>#include<cstring>using namespace原创 2016-03-31 19:02:59 · 503 阅读 · 0 评论 -
BZOJ4316: 小C的独立集
很裸的仙人掌DP (奇怪的是没有人来做这是第一次独自打仙人掌DP打的时候可能因为思路比较清晰 然后只有一个low打错了然后需要说的是po姐貌似程序有问题。。我的一个小数据他就坏了。。9 92 33 44 25 66 37 88 29 21 3就是这个。。。#include#include#includeusing nam原创 2016-01-16 17:14:41 · 654 阅读 · 2 评论 -
1096: [ZJOI2007]仓库建设
http://www.cnblogs.com/iwtwiioi/p/4108902.html这个很详细了。。。。。。。斜率优化第一题今天头晕 就偷懒不写题解了。。#include#include#include#includeusing namespace std;char c;inline void read(long long &a){ a=0;do c=g原创 2015-11-29 11:54:25 · 469 阅读 · 0 评论 -
BZOJ1492: [NOI2007]货币兑换Cash
CDQ的论文讲的很清楚了其实这一道题写成斜率优化的形式之后我们会发现一个很严重的问题 斜率不是单调的然后能用斜率优化么?可以。。。用CDQ将前一半的决策点处理一边 后一半就能线性更新了然后总的复杂度是CDQ分治的复杂度%%%CDQ代码的话是直接copy的 昨天打代码手打残了 不想打了#include#include#include#include#incl原创 2015-12-20 12:58:45 · 940 阅读 · 0 评论 -
BZOJ1978: [BeiJing2010]取数游戏 game
反正就是DP然后用因子更新减少复杂度#include#includeusing namespace std;inline int max(int a,int b){return a>b?a:b;}int pre[10000005],f[50005],n,l;char c;inline void read(int &a){ a=0;do c=getchar();while(c原创 2015-12-20 15:25:11 · 621 阅读 · 0 评论 -
BZOJ3037: 创世纪
WA了好几拨 发现自己好傻以前还是会打仙人掌的现在连外向基环树都不会打了。。 注意分一下类 关于取还是不取的#include<cstdio>#include<cmath>#include<cstdlib>#include<iostream>using namespace std;int n;bool check[1000001];int f[1000001],g[1000001];原创 2016-03-01 17:46:32 · 668 阅读 · 0 评论 -
BZOJ1138: [POI2009]Baj 最短回文路
BFS丑的不得了。。。9.5s过的。。。。。#include#include#include#includeusing namespace std;char c;inline void read(int &a){a=0;do c=getchar();while(c'9');while(c='0')a=(a<<3)+(a<<1)+c-'0',c=getchar();}原创 2016-02-15 12:46:16 · 460 阅读 · 0 评论 -
BZOJ4409: [Usaco2016 Feb]Circular barn
这一道题的话因为满足抉择单调性然后Claris说可以暴力(二分求分界点 太神了!!#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;char c;inline void read(int &a){ a=0;do c=getchar();while(c<'0'||c>'9'); whi原创 2016-03-03 19:50:01 · 906 阅读 · 0 评论 -
BZOJ1072: [SCOI2007]排列perm
状压DP 先看看当前有多少种然后推下去#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;int f[1024][1000];int s[11];char c;inline void read(int &a){ a=0;do c=getchar();while(c<'0'||c>'9');原创 2016-03-16 07:41:25 · 405 阅读 · 0 评论 -
BZOJ2431: [HAOI2009]逆序对数列
DP F[i][j]F[i][j] 表示当前i个元素j个逆序对的方案 然后用类似前缀和的方法更新#include<cstdio>#include<iostream>using namespace std;char c;inline void read(int &a){ a=0;do c=getchar();while(c<'0'||c>'9'); while(c<='9'原创 2016-03-17 14:33:01 · 424 阅读 · 0 评论 -
BestCoder Round#77
今天开始将要转一下做题的OJ了。。 虽然感觉放着权限号在那里不好。。。。。然后先写一下BC #78的题解吧1001 就是在枚举子集的过程中我们发现当n > 1时,x出现了偶数次,所以其对答案的贡献就是0;当 n = 1时,其对答案的贡献是 x1002 简单的排列组合1003 考虑离线之后我们就可以用并查集做了1004 DP 是可以用单调队列优化成O(n)O(n)的 不过我打的是O(n2原创 2016-03-29 20:39:20 · 374 阅读 · 0 评论 -
BZOJ4092: [Zjoi2015]幻想乡Wifi搭建计划
我承认我是SB 我看到网上没有题解 那我就来写一篇好了 很多人(包括我 看到这一题会认为这个是网络流 然后一直想该怎么建模。。。 后来lbn教了我这一题的做法(%%%%% 先处理出可以被WIFI覆盖的景点 弹入一个序列SS中 然后将SS中的元素按x大小排序 用f[i][j][k]f[i][j][k]表示上面取了前j个圆 下面取了前k个圆 我们就有一个DP的式子(lbn给我的 f原创 2016-03-19 12:57:11 · 1969 阅读 · 0 评论 -
BZOJ4762: 最小集合
感谢度教。。。转化条件1 : 使得Or集为全集使得Or集为全集 其他不变一个合法集合S必不存在一个大小为|S|−1的子集T满足条件1一个合法集合 S 必不存在 一个大小为 |S|-1的子集T满足条件1 即一个集合合法必不存在一对长度和小于|S|的前缀与后缀使得Or集为全集即一个集合合法 必不存在一对长度和小于|S|的前缀与后缀使得Or集为全集然后考虑暴力 g[i][j][k]表示已经做了前原创 2017-03-13 12:10:16 · 1269 阅读 · 0 评论