自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 BZOJ 2440: [中山市选2011]完全平方数

二分,然后用莫比乌斯做就行了... #include using namespace std; typedef long long LL; const int maxn = 50005; int not_prime[maxn]; int prime[maxn]; int mu[maxn]; int K, p_cnt; void Init() { mu[1] = 1; p_cnt =

2015-09-30 15:06:24 611

原创 DP HDOJ 5492 Find a path

化简公式然后递推.... #include using namespace std; typedef long long LL; const int INF = 0x3f3f3f3f; int dp[33][33][60 * 33]; int g[33][33], n, m; void update(int &x, int y) { if(x > y) x = y; } void w

2015-09-29 20:00:14 416

原创 HDOJ 5483 Nux Walpurgis

先做出最小生成树,然后对每个点dfs判断树边是否可删..... #include using namespace std; typedef long long LL; const int maxn = 3005; const int maxm = 6005; const int INF = 0x3f3f3f3f; struct Edge { int v; Edge *next; }E[

2015-09-29 14:51:43 426

原创 DP Codeforces Round #322 (Div. 2) F. Zublicanes and Mumocrates

树形dp,记录一下根节点的状态即可... #include using namespace std; typedef long long LL; const int maxn = 5005; const int maxm = 10005; const int INF = 0x3f3f3f3f; struct Edge { int v; Edge *next; }E[maxm], *H[

2015-09-28 21:40:39 643

原创 HDOJ 5487 Difference of Languages

记dp[i][j] 代表走到了第一个dfa的i号节点,走到了第二个自动机的j号节点.....然后就可以转移了...... #include using namespace std; typedef long long LL; const int maxn = 1005; struct node { int s1, s2, pre, tran; node(int s1 = 0, int

2015-09-28 15:17:23 448

原创 HDOJ 5469 Antonidas 树分治

经典的树分治,找字符串用hash找就行了.... #include using namespace std; typedef long long LL; #define mp(x, y) make_pair(x, y) const int maxn = 10005; const int maxm = 20005; const int INF = 0x3f3f3f3f; const int m

2015-09-28 13:12:10 428

原创 [DP] HDOJ 5456 Matches Puzzle Game

数位DP... #include using namespace std; typedef long long LL; LL dp[505][2][2][2]; int cnt[] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6}; int mod; void add(LL& a, LL b) { a += b; if(a > mod) a -= mod; } LL

2015-09-25 13:28:45 394

原创 [半平面交] HDOJ 5462 Manors

很容易就能看出半平面交的公式...但是比赛的时候这题看都来不及看... #include using namespace std; typedef long long LL; const int maxn = 1005; const double eps = 1e-7; struct Point { double x, y; Point(double x = 0, double y =

2015-09-23 20:00:30 524

原创 [网络流] HDOJ 5457 Hold Your Hand

建出字典树,然后做最小割就行了... #include using namespace std; typedef long long LL; const int maxn = 5005; const int maxm = 400005; const int INF = 0x3f3f3f3f; struct Edge { int v, c, next; Edge() {} Edge(i

2015-09-23 18:20:45 511

原创 [线段树] HDOJ Excited Database

把一个矩阵化成3个三角形容斥,然后用等差线段树就可以做了... #include using namespace std; typedef long long LL; #define now o, L, R, tree #define lson o << 1, L, mid, tree #define rson o << 1 | 1, mid+1, R, tree #define ls o

2015-09-21 20:13:26 428

原创 hihocoder #1236 : Scores

高维bitset.... #include using namespace std; typedef long long LL; const int maxn = 50005; struct node { int val, id; node(int val = 0, int id = 0) : val(val), id(id) {} bool operator < (const no

2015-09-21 14:28:32 735

原创 [动态树] HDOJ 5467 Clarke and hunger games

按时间点建树,然后递归实现LCT的可持久化.... #include using namespace std; typedef long long LL; #define mp(x, y) make_pair(x, y) const int maxn = 300005; const int maxm = 300005; const int INF = 0x3f3f3f3f; const in

2015-09-21 10:07:57 540

原创 HDOJ 5458 Stability

由于没有看到图在任意时刻都是连通的..这一条件..于是只好打了动态树.. #include using namespace std; typedef long long LL; const int maxn = 30005; const int maxm = 400005; struct Node *null; struct Node { Node *fa, *ch[2]; int s

2015-09-19 18:44:40 429

原创 【NTT】 ZOJ 3874 Permutation Graph

推出公式以后分治ntt优化即可。。。 #include using namespace std; typedef long long LL; const int maxn = 100005; const int maxm = 300005; const int mod = 786433; LL a[maxm], b[maxm], c[maxm]; LL f[maxn], dp[maxn

2015-09-18 13:06:22 593

原创 【NTT】 HDOJ 5279 YJC plays Minecraft

推出公式以后就可以ntt了。。。 #include using namespace std; typedef long long LL; const int mod = 998244353; const int maxn = 700005; LL dp[100005],dp2[100005]; LL a[maxn], b[maxn], c[maxn], xp[maxn]; LL f[100

2015-09-17 18:21:27 428

原创 【矩阵快速幂】 HDOJ 5434 Peace small elephant

对每一列状态压缩,然后矩阵加速即可。。。 #include using namespace std; typedef long long LL; const int mod = 1e9+7; const int maxn = 130; LL mat[maxn][maxn]; LL mid[maxn][maxn]; LL res[maxn][maxn]; int n, m; void ca

2015-09-16 14:04:13 354

原创 【树分治】 ZOJ Travel

离线每个询问,然后做树分治。。 #include using namespace std; typedef long long LL; #define lowbit(x) (x&(-x)) #define pii pair #define mp(x, y) make_pair(x, y) const int maxn = 100005; const int maxm = 200005; c

2015-09-16 11:08:54 317

原创 HDOJ 5448 Marisa’s Cake

计算每一条线段对答案的贡献,然后用前缀和优化就行了。。。。 #include using namespace std; typedef long long LL; const int maxn = 100005; const int mod = 1e9+7; struct Point { LL x, y; Point(LL x = 0, LL y = 0) : x(x), y(y) {

2015-09-14 15:53:01 402

原创 【NTT】 ZOJ 3899 State Reversing

先找出第二类斯特林数的公式,然后把公式分解成卷积的形式,先做一遍NTT,然后对于每次询问只要用线段树求出有多少个空闲的房间就可以了。 #include using namespace std; typedef long long LL; #define lson o << 1, L, mid #define rson o << 1 | 1, mid+1, R #define ls o <<

2015-09-14 13:11:49 756

原创 【DP】 HDOJ 4804 Campus Design

轮廓线dp一下就行了。。和大白书上的轮廓线dp类似。。。 #include using namespace std; typedef long long LL; const int maxn = 105; const int mod = 1e9+7; char g[maxn][11]; int dp[2][1 << 10][22]; int n, m, C, D; void add(in

2015-09-11 19:59:04 307

原创 【后缀自动机】 HDOJ 5431 AB String

在sam上做dp统计有多少的串不是a的子串,然后找到长度,dfs找串就行了。。 #include using namespace std; typedef long long LL; const int alpha = 2; const int maxn = 40005; const int maxm = 25; struct node { int len; LL cnt[maxm];

2015-09-06 16:20:28 379

原创 【polya】 HDOJ Count the Tetris

套用polya计算出奇偶,旋转,反射16钟情况的方案数。。 import java.util.*; import java.io.*; import java.math.*; import java.lang.*; public class Main { public static void main(String args[]) { Scanner cin = new Scanne

2015-09-03 18:33:38 364

原创 【DP】HDOJ 5426 Rikka with Game

把子树合并到根上考虑三种转移。1)切断根与子树的边,建立外交。2)切断根与子树的边,不建立外交。3)不切断根与子树的边。 #include using namespace std; typedef long long LL; const int maxn = 100005; const int maxm = 505; const LL INF = 4e18; struct Edge {

2015-09-02 10:16:07 477

原创 HDOJ 5425 Rikka with Tree II

和上次的上海邀请赛的那个dp优化技巧类似。都是考虑double精度,来减少枚举次数。。。 #include using namespace std; typedef long long LL; const int maxn = 100005; const int maxm = 200005; struct Edge { int v; Edge *next; }*H[maxn], E[m

2015-09-01 14:14:08 320

空空如也

空空如也

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

TA关注的人

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