摘要:
「BZOJ2510」弱题 这题的dp式子应该挺好写的,我是不会告诉你我开始写错了的,设f[i][j]为操作前i次,取到j小球的期望个数(第一维这么大显然不可做),那么 f[i][j]=f[i-1][j](累加)+1*$\frac{f[i-1][j-1]}{M}$ - 1* $\frac{f[i-1]
阅读全文
posted @ 2019-07-18 18:42
Al_Ca
阅读(287)
推荐(0)
posted @ 2019-07-18 14:11
Al_Ca
阅读(161)
推荐(0)
摘要:
【Bzoj1875】HH去散步 先说一下边点互化的思路(貌似这种题不多?),以后看见边数少的要死的记得想边点乎化,将无向边变成有向边在考虑边之间的可达性,如果边x的终点是边y的起点(前提不是同一条边),则连一条x到y的边,表示从x可以走到y,同一条无向边转化成的两条有向边不联通(可以用最大流中异或1
阅读全文
posted @ 2019-07-18 06:33
Al_Ca
阅读(266)
推荐(1)
摘要:
bzoj 4386: [POI2015]Wycieczki 这题什么素质,爆long long就算了,连int128都爆……最后还是用long double卡过的……而且可能是我本身自带大常数吧,T了好长时间…… 先说一下超级汇点的计数吧,先说结论: 1.将所有点(此题中只有一级点)向一个超级汇点0
阅读全文
posted @ 2019-07-18 06:19
Al_Ca
阅读(258)
推荐(0)
posted @ 2019-07-17 21:38
Al_Ca
阅读(5)
推荐(0)
摘要:
【HAOI2015】树上染色 这题思路好神仙啊,首先显然是树形dp,f[i][j]表示在以i为根的子树中选j个黑点对答案的贡献(并不是当前子树最大值),dp时只考虑i与儿子连边的贡献。此时(i,son[i])产生的收益是(设子树大小为size[i])子树上的黑点个数(j)与子树外的黑点个数(m -
阅读全文
posted @ 2019-07-17 07:04
Al_Ca
阅读(128)
推荐(0)
posted @ 2019-07-17 06:38
Al_Ca
阅读(3)
推荐(0)
摘要:
C. 奇袭 C. 奇袭 C. 奇袭 题目描述 由于各种原因,桐人现在被困在Under World(以下简称UW)中,而UW马上 要迎来最终的压力测试——魔界入侵。 唯一一个神一般存在的Administrator被消灭了,靠原本的整合骑士的力量 是远远不够的。所以爱丽丝动员了UW全体人民,与整合骑士一
阅读全文
posted @ 2019-07-17 06:29
Al_Ca
阅读(201)
推荐(1)
posted @ 2019-07-16 21:46
Al_Ca
阅读(3)
推荐(0)
摘要:
B. 通讯 B. 通讯 B. 通讯 题目描述 “这一切都是命运石之门的选择。” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此得知了伦太郎制作出了电话微波炉(仮)。 为了掌握时间机器的技术,SERN总部必须尽快将这个消息通过地下秘密通讯 网络,传达到所有分部。 SE
阅读全文
posted @ 2019-07-16 21:26
Al_Ca
阅读(309)
推荐(0)
摘要:
其实是比较简单的一道期望状压dp,考试时一直在想数组表示概率,然而最后出的数总是小于一,于是无奈的把第一个点判掉放弃了其他点。 设f[i]为状态为i时到全部买到的期望次数,$f[i]=∑f[j]*p[k]+(1-∑p[k])+1$,f[(1<<n)-1]=0,倒着推,k为j中的元素,$i|(1<<(
阅读全文
posted @ 2019-07-16 20:37
Al_Ca
阅读(149)
推荐(0)
摘要:
网上搜不着,八成又是哪个学长留下的…… 因为考试第二题我们都好不容易才搞懂,学长有给我们扔了几道类似的题。 其实这道题思路挺好想的,就是一些细节还有复杂度比较难弄,好难调啊。 看到题的第一眼以为是树形背包,然后看到b的范围就放弃了。那咋办呢?首先第一维肯定是在树上某个节点,第二维呢?抓住小的干,f[
阅读全文
posted @ 2019-07-16 06:19
Al_Ca
阅读(487)
推荐(2)
摘要:
刚调完了一个非常恶心的题(可能是我写的太恶心了),心累……先写会博客吧。 今天上午该完了考试的三道题,感觉第二道真的是个好题(学长说是经常会遇到的一类题……完了完了),看了一个小时std才看懂,写了篇博客。 下午好颓啊,先是学长讲课,讲tarjan的正确性及一些细节证明(正确性不是显然的吗???),
阅读全文
posted @ 2019-07-15 21:45
Al_Ca
阅读(136)
推荐(0)
摘要:
B. 概率充电器 B. 概率充电器 B. 概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品——概率充电器:“采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率充电器,您生活不可或缺的必需品!能充上电吗?现在就试试看吧!”SHOI
阅读全文
posted @ 2019-07-15 12:01
Al_Ca
阅读(223)
推荐(0)
摘要:
这题真的神仙,蒟弱表示看题解看不懂……std看了几个小时大概看懂,还有一些细节的东西没有思考。 最难受的是题解和std好像并不是同一个人写的……数组状态不一样……看了好久才看出来f也是前缀和。 F[i][j]表示在点 i 为根的子树中,向下最长轻链长度小于等于 j 的概率。 首先递归下去并求出子树大
阅读全文
posted @ 2019-07-15 11:57
Al_Ca
阅读(287)
推荐(7)
摘要:
以为要考图论呢,结果考了一堆不知道是啥的东西,尤其是第一题(考得是暴力枚举?质因数分解??高考数学必修5???),考试时一直以为正解是个数据结构,后来发现个数单调可以二分,然而排序时间复杂度好高啊……不管了先打个暴力,复杂度$1000*n^2*log^2n$,%了几个点都过了(最后因为复杂度过高使本
阅读全文
posted @ 2019-07-15 08:39
Al_Ca
阅读(165)
推荐(0)
摘要:
先放作者的正解: 先说g吧,有i个点的话,在其中i-1个点中有$C_{i-1}^{2}$种边,每个边有选和不选两种情况。如果度不是偶数呢?用剩下那个点给他连上呗。如果剩下那个点度数不是偶数呢?这是不可能的,因为其中i-1个点,每条边会使图的总度数+2,所以图的总度数是偶数,不可能出现奇数个度为奇数的
阅读全文
posted @ 2019-07-15 08:35
Al_Ca
阅读(250)
推荐(3)
摘要:
用于模数很大直接乘会爆longlong的情况。 好处是只要a,b在long long内,无论它们乘起来多大,都可以做。 劣势是时间复杂度是log(b)的,比起正常乘法来太慢了。 其实有O(1)的方法, 只适用于a*b没有超过long long太多的情况(即a,b并不算大,大概均在10^12左右) 设
阅读全文
posted @ 2019-07-15 07:41
Al_Ca
阅读(220)
推荐(0)
摘要:
用于指数爆longlong的情况,当然你也可以打高精…… 因为昨天有人提到了慢速乘,感觉挺有用的,就顺便都学了吧,而且省选也用到十进制快速幂了。
阅读全文
posted @ 2019-07-15 07:23
Al_Ca
阅读(182)
推荐(0)
摘要:
什么沙雕题啊……考察的是啥啊,分类咋搞啊……愁死我了…… 先把作者的正解放出来: 序列因为选出的一段是一个等比序列的子序列,我们分为两种情况:1. q=1,相当于找一个最长每个数都相等的子串,这个扫一遍就行了。2. q!=1,那么这个序列最长只有 logn,那么我们可以枚举开头,不妨设开始的两个数为
阅读全文
posted @ 2019-07-15 06:42
Al_Ca
阅读(189)
推荐(0)
posted @ 2019-07-15 06:26
Al_Ca
阅读(5)
推荐(0)
摘要:
[LOJ#2255][BZOJ5017][Snoi2017]炸弹 看到这题首先想到了线段树优化建边, 我们将可以炸到的炸弹之间连上单向边,然后缩点,拓扑一下什么的就可以求出来每个问题的解了。 虽然不是正解,但貌似可做。 我们可以想一想这道题是否存在一些有趣的性质,可以让我们优化建边。 假设点a在点b
阅读全文
posted @ 2019-07-15 06:25
Al_Ca
阅读(124)
推荐(0)
摘要:
bzoj3590: [Snoi2013]Quare 根据题意,图中显然不能有桥,所以可以先用tarjan找桥判“imposibal”。 数据这么小,状压吧,我们可以把这个过程看成这样:我们已经有了一个强连通分量,那么我们要把一个点加入进这个强连通分量,可以找到一条包含这个点的链,且让链的两端都在这个
阅读全文
posted @ 2019-07-15 06:11
Al_Ca
阅读(180)
推荐(0)
摘要:
POJ2942 Knights of the Round Table 开始看错题了,“某些骑士无法出席所有会议”并不是无法出席某个会议, 我们尝试建图,按照题目给的条件,我们可以将相互仇恨的骑士之间建边。那么骑士可以坐在一起的条件就是他们之间没有边。所以我们建出这个图的补图会使解题更加方便。 然后我
阅读全文
posted @ 2019-07-15 05:59
Al_Ca
阅读(139)
推荐(0)
摘要:
[Sdoi2013]随机数生成器 难得一个完全自己推出来的数论题,结果还因为特判挂了好几个星期,今天才把特判打出来A掉。 开始以为要求ax+bx≡c(mod p)这种形式的方程,然而并不会解,nc哥告诉我不是,我才想起来求通项公式(推了一节数学课推出来了)(mikufun推了一节物理课), $X_{
阅读全文
posted @ 2019-07-14 11:01
Al_Ca
阅读(138)
推荐(0)
摘要:
#include #include #include #include #define MAXN 2500010 using namespace std; struct edge { int u,v,w,nxt; #define u(x) ed[x].u #define v(x) ed[x].v #define w(x) ed[x].w #define n(x) ed[x].nxt }...
阅读全文
posted @ 2019-07-14 06:20
Al_Ca
阅读(207)
推荐(1)
摘要:
HDU3844 Mining Your Own Business 问题描述John Digger是一个大型illudium phosdex矿的所有者。该矿山由一系列隧道组成,这些隧道在各个大型交叉口相遇。与一些业主不同,Digger实际上关心他的工人的福利,并担心矿山的布局。具体来说,他担心可能会出
阅读全文
posted @ 2019-07-14 06:16
Al_Ca
阅读(175)
推荐(0)
摘要:
「BZOJ3694」「FJ2014集训」最短路 首先树剖没得说了,这里说一下并查集的做法, 对于一条非树边,它会影响的点就只有u(i),v(i)到lca,对于lca-v的路径上所有点x,都可通过1-t-u-v-x,长度为dep[u]+dep[v]+w(i)-dep[x],lca-u同理, 将非树边按
阅读全文
posted @ 2019-07-14 06:05
Al_Ca
阅读(104)
推荐(0)
posted @ 2019-07-13 20:51
Al_Ca
阅读(6)
推荐(0)
摘要:
3331: [BeiJing2013]压力 LCA+树上差分,和之前类似的题差不多,就是多了个v-dcc缩点,唯一要注意的就是判断是否是割点,对于不是割点的点,如果他是起点或重点,ans++,和差分没有关系,对于割点,则需要用到差分,注意割点与非割点的答案要分开存储,否则会死的。 另外要注意的是数组
阅读全文
posted @ 2019-07-13 20:50
Al_Ca
阅读(190)
推荐(0)
摘要:
2208: [Jsoi2010]连通数 对于原图建反图,考虑到有环,tarjan缩点,就得到一张有向无环图,用bitset记录能到某scc的点(原图点),跑拓扑将bitset或(|)下去就可以了,最后答案为∑(bitset中1的个数*scc的大小)。开始考虑错了: 1 for(int i=1;i<=
阅读全文
posted @ 2019-07-13 20:42
Al_Ca
阅读(110)
推荐(0)
摘要:
[POI2008]BLO 一开始没看懂样例,连去掉的点都算…… 显然如果i不是割点,那么ans[i]=(n-1)*2, 如果i是割点,ans[i]=将i去掉后生成的联通块大小两两相乘的和加上i本身,但这样并不好算,换一种思路,在求割点时记录搜索树中以x为根的子树大小, (式子太长不想打了……)
阅读全文
posted @ 2019-07-13 20:34
Al_Ca
阅读(154)
推荐(0)
摘要:
int dfn[MAXN],low[MAXN],num,root; int stack[MAXN],top,cnt; bool iscut[MAXN]; int new_id[MAXN],c[MAXN]; vector dcc[MAXN]; void tarjan(int x) { dfn[x]=low[x]=++num; stack[++top]=x; if(x==ro...
阅读全文
posted @ 2019-07-13 19:51
Al_Ca
阅读(265)
推荐(0)
摘要:
int dfn[MAXN],low[MAXN],cnt; bool isbridge[MAXN]; void tarjan(int x,int edg) { low[x]=dfn[x]=++cnt; for(int i=f(x);i;i=n(i)) if(!dfn[v(i)]) { tarjan(v(i),i); low[x]=mi...
阅读全文
posted @ 2019-07-13 16:39
Al_Ca
阅读(284)
推荐(0)
摘要:
int dfn[MAXN],low[MAXN],cnt; void tarjan(int x,int edg) { low[x]=dfn[x]=++cnt; for(int i=f(x);i;i=n(i)) if(!dfn[v(i)]) { tarjan(v(i),i); low[x]=min(low[x],low[v(i)]); ...
阅读全文
posted @ 2019-07-13 16:18
Al_Ca
阅读(208)
推荐(0)
摘要:
int dfn[MAXN],low[MAXN],cnt,root; bool iscut[MAXN]; void tarjan(int x) { dfn[x]=low[x]=++cnt; int flag=0; for(int i=f(x);i;i=n(i)) if(!dfn[v(i)]) { ta
阅读全文
posted @ 2019-07-13 15:56
Al_Ca
阅读(148)
推荐(0)
posted @ 2019-07-13 06:27
Al_Ca
阅读(6)
推荐(0)
摘要:
NOIP2016天天爱跑步 这题一看显然lca+树上差分,但是因为有w的限制不能直接加,所以考虑权值线段树合并, 每个选手的起点终点对于不同的节点的影响是不同的,这就非常麻烦了,但是可以发现无论如何他的深度是固定的,而对于一个节点i,能使他+1有如下两种情况: 1.dep[x]=dep[i]-w[i
阅读全文
posted @ 2019-07-13 06:25
Al_Ca
阅读(148)
推荐(0)
摘要:
bzoj1003 物流运输 设cost[i][j]为第i天到第j天,不经过这些天关闭的所有港口(指在这一段时间不是每天都能过)的最短路, 设f[i]为前i天最短路,则f[i]=min(f[i] , f[j]+cost[j+1][i]*(i-j)+k) 因为对第一天多加了一个k,最后减去即可。 #in
阅读全文
posted @ 2019-07-13 06:12
Al_Ca
阅读(129)
推荐(1)
摘要:
「BZOJ2654」tree 最小生成树+二分答案。 最开始并没有觉得可以二分答案,因为答案并不单调啊。 其实根据题意,白边的数目肯定大于need条,而最小生成树的白边数并不等于need(废话),可以二分将每条白边的权值+mid,这样就可以控制最小生成树中白边的条数, 对于一个mid,将所有的白边权
阅读全文
posted @ 2019-07-12 21:40
Al_Ca
阅读(133)
推荐(0)