自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lambda QAQ

fmap :: (q -> a) -> f q -> f a

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

原创 Hdu 5765 Bonds

丢链接check(mask)check(mask)就是用bfsbfs的方式来检查maskmask是否联通具体的,donedone 是已经访问过的点集,diddid是可以访问的点集首先找一个maskmask的点startstart加到diddid里显然donedone是diddid的子集,每一次找到一个在diddid中并且不在donedone中的点stst,把和st直接联通的在maskmask中的点加

2016-07-29 21:52:30 816 2

原创 Hdu 5768 Lucky7

求[x,y][x,y]这个区间内满足(mod7)=0\pmod{7} = 0 (modp1)≠a1\pmod{p_1} \neq a_1(modp2)≠a2​\pmod{p_2} \neq a_2​…..(modpn)≠an\pmod{p_n} \neq a_n的数的个数0≤x<y≤1018 0\le x < y \le 10^{18},∏i=1npi≤1018\prod\limits_{i=1}

2016-07-29 09:07:14 460

原创 Hdu 5731 Solid Dominoes Tilings

问n×m n \times m的格子铺上1×21 \times 2的骨牌使得对于任何一条行/列分割线都会跨越骨牌定义anyn,many_{n,m} 为用骨牌铺满n×m n \times m的格子在不考虑题目条件的方案数然后容斥容斥的时候我们列举列分割线,求在当前枚举的列分割线存在的情况下没有行分割线的方案数,然后按照枚举的分割线的方案数做一个奇加偶减的容斥就好具体的,我们假设分割线分隔出来的块共p

2016-07-28 09:23:03 576 1

原创 poj 2411 Mondriaan's Dream

人生第一个插头DP(基于轮廓线的状态压缩动态规划虽然这个题好像有别的姿势,不过在学习了插头dp之后还是练习了一下插头dp入门看 基于连通性状态压缩的动态规划问题这个课件就好就好#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define LL long long const int bit=

2016-07-25 19:33:33 277

原创 Hdu 5750 Dertouzos

BC的时候听说这个题卡时限以为会FST,没想到居然过了 赛后看了一下我的时间复杂度居然是O(T×min(⌊np⌋,t))O(T \times min(\lfloor \frac{n}{p} \rfloor,t))(tt是pp的最小素因子在素数表的rankrank)感觉也是十分的神奇#include<cstdio>#include<cstring>#include<algorithm>usin

2016-07-25 11:03:17 313

原创 hdu 5735 Born Slippy

hdu 5739 Fantasia偷偷放上题解 -by zimpha 感谢叉姐在ICPCCamp上出的这道题最初的原型 – Data Structure You’ve Never Heard Of, 同样感谢Claris老师的教导. 由于and, or和xor方法都差不多, 这里仅考虑and操作. 不妨令dp(s)=f(s)−wsdp(s)=f(s)-w_s, 我们大概要求的就是dp(i)

2016-07-25 10:46:31 542

原创 hdu 5739 Fantasia

给出一个点带权的图,定义一个联通分量的价值为所有点的权值的乘积定义一个点的价值为这个删掉这个点之后的所有联通分量的价值的和求所有点的价值偷偷贴上题解 首先求出所有的点双联通分量, 对于每一个点双联通分量SS, 新建一个节点ss, 向SS中每个节点vv连边. 这样一来, 新增的点和原来图中的点会构成一个森林(据说这个有个名字, block forest data structure). 很容易观察

2016-07-23 11:37:45 416

原创 poj 2942 Knights of the Round Table

建补图找点双联通分量对每一个分量二分染色,染色失败的打上标记最后没有打上标记的点就是所求的点重新学习了一下点双联通分量。并且学会了不用将边入栈的姿势#include<cstdio>#include<vector>#include<cstring>#include<algorithm>#include<stack>using namespace std;#define LL long lo

2016-07-23 11:26:01 229

原创 hdu 5279 Rigid Frameworks

照着题解敲过了这个题。。给出一个转移dp(i,j)=3i×j−∑1≤a≤i,0≤b≤j,a<i∨b<j(i−1a−1)(jb)×3(i−a)×(j−b)×dp(a,b)dp(i,j) = 3 ^{i\times j} - \sum\limits_{1 \le a \le i,0\le b\le j,a < i \lor b<j} \binom{i-1}{a-1}\binom{j}{b}\times

2016-07-20 20:51:00 336

原创 hdu 5716 GCD

一句话题面,询问区间GCD和区间GCD等于所询问的区间GCD的区间个数数的个数1e5,数的大小1e9区间GCD满足区间加法,所以线段树搞搞就好了关于第二个询问,需要实现预处理GCD 为x的区间的个数具体的,考虑固定左端点的情况,不难发现gcd是随着区间长度的增加而递减的,形象的来说就是一些线段(不妨设为(g,length),其中g代表的是左端点固定时候右端点在这个线段中时的区间gcd,length代

2016-07-20 12:59:58 459

原创 poj 2057 The Lost House

论文题,树dp多说两句,这个题的决策是在一个节点时选择子节点遍历的顺序通过贪心来优化dp#include<cstring>#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;const int maxn = 1123;vector<int> edge[maxn];vo

2016-07-18 21:26:36 266

原创 Poj 3140 Contestants Division

水题,一遍dfs就好#include<vector>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;#define LL long long const int maxn = 112345;vector<int> edge[maxn];void init(int n){ for(int

2016-07-18 09:46:26 259

原创 Poj 1947 Rebuilding Roads

树dp+背包考虑是否加入子树k 时间复杂度O(n3)O(n^3)#include<cstdio>#include<vector>#include<algorithm>#include<cstring>using namespace std;const int INF = 0x3f3f3f3f;const int maxn = 200;vector<int> edge[maxn];int

2016-07-18 09:16:27 222

原创 Hdu 5720 Wool

总的来说大概就是一个区间并嗯。。。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;#define LL long longconst int maxn = 112345;LL arr[maxn];pair<LL,LL> seg[maxn];int main(

2016-07-18 08:04:38 243

原创 Hdu 5719 Arrange

简单的加加减减去强行写一个树状数组也是没谁了…已经有官方题解了窝就贴一个代码嗯#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define LL long longconst int maxn = 112345;const int mod = 998244353;int arr[maxn];i

2016-07-18 08:02:16 231

原创 Bzoj 1500 维护数列

区间信息用lazy封装还是很劲的具体见代码嗯#include<bits/stdc++.h>using namespace std;struct Info{ int size; int lmax,rmax,sum,value; Info(int val = 0){ size = 1; lmax = rmax = sum = value = va

2016-07-12 16:36:47 323

原创 bzoj1251 序列终结者

不错的伸展树入门题查询区间最大值,支持区间加一个值,区间翻转区间更新的时候像线段树一样打一个标记就好值得注意的一点是,虽然这是自底而上伸展的代码,但是该节点的祖先节点的lazy标记在zig/zag的过程中一定会”污染”到这个节点以及zig/zag的时候要保证这两个点是”干净的”其它的就很模板了,具体见代码#include<bits/stdc++.h>using namespace std;stru

2016-07-07 12:42:09 361

原创 Hdu 1666 敌兵布阵

Hdu 1666 敌兵布阵单点更新,区间查询的线段树裸题强行拿来测了一下伸展树的板子#include<bits/stdc++.h>using namespace std;struct Info{ int mer; int size; Info(int m = 0){ mer = m; size = 1; }};Info operat

2016-07-06 11:16:45 335

空空如也

空空如也

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

TA关注的人

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