会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
hfctf0210
大难不死,必有后福!
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
9
10
11
12
13
14
15
16
17
···
19
下一页
2019年5月14日
[JSOI2019]神经网络(树形DP+容斥+生成函数)
摘要: 首先可以把题目转化一下:把树拆成若干条链,每条链的颜色为其所在的树的颜色,然后排放所有的链成环,求使得相邻位置颜色不同的排列方案数。 然后本题分为两个部分:将一棵树分为1~n条不相交的链的方案数;将这些链安排顺序使得不存在两条相邻的链来自同一棵树。 第一部分显然可以O(n2)树形DP,f[i][j]
阅读全文
posted @ 2019-05-14 21:20 hfctf0210
阅读(792)
评论(1)
推荐(0)
2019年5月13日
[GX/GZOI2019]旧词(树上差分+树剖+线段树)
摘要: 考虑k=1的做法:这是一道原题,我还写过题解,其实挺水的,但当时我菜还是看题解的:https://www.cnblogs.com/hfctf0210/p/10187947.html。其实就是树上差分后值为1。 考虑k>1的做法:其实可以再次树上差分,给每个点i赋值v[i]=dep[i]k-dep[i
阅读全文
posted @ 2019-05-13 21:55 hfctf0210
阅读(171)
评论(0)
推荐(0)
[GX/GZOI2019]旅行者(dijkstra)
摘要: 二进制分组SB做法没意思还难写还可能会被卡常其实是我不会写。用一种比较优秀的O(Tnlogn)做法,只需要做2次dijkstra。对原图做一次、对反图做一次,然后记录每个点的最短路是从k个源点中的哪个转移过来的。然后枚举每条边,若两边转移过来的源点不同,则用d1+w[i]+d2来更新答案即可。 #i
阅读全文
posted @ 2019-05-13 21:49 hfctf0210
阅读(206)
评论(0)
推荐(0)
[GX/GZOI2019]特技飞行(扫描线+置换)
摘要: 感觉是6题中最难的一题,其实这题是一个二合一: 第一问:给定平面上若干点和k个关键点,关键点覆盖一个45°倾斜的正方形范围r,求有多少点被至少一个关键点覆盖。这个可以曼哈顿转切比雪夫距离,然后再扫描线求解,复杂度O(nlogn) 第二问:求最少和最多有多少次擦肩而过。显然每个交点都可以做对向交换,这
阅读全文
posted @ 2019-05-13 21:46 hfctf0210
阅读(183)
评论(0)
推荐(0)
2019年5月12日
[GX/GZOI2019]宝牌一大堆(DP)
摘要: 出这种麻将题有意思吗? 乍看很难实则很水,就是麻将式DP,想必大家很熟悉了吧。首先把“国士无双”和“七对子”两种牌型判掉,然后观察牌胡的形式,发现每多一张牌实际上就是把1个面子变成1个杠子,然后可以直接DP啦!f[i][j][k][p][q]表示到第i种牌型,(i-2,i-1,i)有j个,(i-1,
阅读全文
posted @ 2019-05-12 17:12 hfctf0210
阅读(314)
评论(0)
推荐(0)
[GX/GZOI2019]与或和(单调栈+按位运算)
摘要: 首先看到与或,很显然想到按照位拆分运算。然后就变成了0/1矩阵,要使矩阵在当前位与为1,则矩阵全为1,如果是或为1,则是矩阵不全为0,然后求全为0/1的矩阵个数即可。记录c[i][j]表示以a[i][j]在该位向上0/1的长度。然后对于每一行,单调栈求解即可。 #include<bits/stdc+
阅读全文
posted @ 2019-05-12 17:07 hfctf0210
阅读(262)
评论(0)
推荐(0)
[JSOI2019]节日庆典(Z-algorithm)
摘要: 要想让一个位置作为最小循环,其必须是最小后缀,然后一个字符串的最小后缀不超过O(logn)个,于是维护备选集合即可。 然而要在O(n)复杂度求解,需要求出原串后缀与原串的LCP长度,需要用Z-algorithm。而此时由于备选后缀存在前缀关系,比较时只需用到每个后缀与原串的LCP #include<
阅读全文
posted @ 2019-05-12 17:05 hfctf0210
阅读(572)
评论(0)
推荐(0)
2019年5月11日
diverta 2019 Programming Contest
摘要: AB 签到(A是a-b problem就不放code了) #include<bits/stdc++.h> using namespace std; int r,g,b,n,ans; int main() { cin>>r>>g>>b>>n; for(int i=0;i*r<=n;i++) for(i
阅读全文
posted @ 2019-05-11 22:45 hfctf0210
阅读(347)
评论(2)
推荐(1)
bzoj2882工艺(最小表示法)
摘要: O(nlogn)的做法十分显然,有三种可以做到O(nlogn)的:1、最容易的想法:把串扩展成两倍,然后跑一遍SA求后缀数组。2、求后缀同样也可以用SAM去求解,用map存一下。3、最暴力的方法:直接二分+hash比较第一位不同的。 其实这题想要让我们用最小表示法求解,然而我不会就来学一下。很容易发
阅读全文
posted @ 2019-05-11 12:57 hfctf0210
阅读(210)
评论(0)
推荐(0)
[JSOI2019]精准预测(2-SAT+拓扑排序+bitset)
摘要: 设第i个人在t时刻生/死为(x,0/1,t),然后显然能够连上(x,0,t)->(x,0,t-1),(x,1,t)->(x,1,t+1),然后对于每个限制,用朴素的2-SAT连边即可。 但这样的点数达到了O(nT),其实有一种方法可以只把限制的边连接建图,点数为4m,这样可能会被卡常。 有没有更优秀
阅读全文
posted @ 2019-05-11 10:40 hfctf0210
阅读(503)
评论(0)
推荐(1)
上一页
1
···
9
10
11
12
13
14
15
16
17
···
19
下一页
公告