- 博客(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 336
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人