A. Reverse 菜鸡wwb又不会了..... 可以线段树优化建边,然而不会所以只能set水了 发现对于k和当前反转点固定的节点x确定奇偶性所到达的节点奇偶性是一定的 那么set维护奇偶点,然后每次set找点删点注意边界 set在删点后原来的迭代器会玄学出错,xuefeng好像被坑了,所以lowerbound一下就不用++了 B. Silhouette 很玄学的容斥 考场多QJ了18分,因为如果1-n是个序列,好像就是一个简单的容斥..... 然后用能发现是以"L"形的形状向右推的…
题目是古埃及神话??? A. 天空龙 傻逼模拟,看来没有滑天下之大稽QAQ,也没有打错快读(大雾...) B. 巨神兵 难度爆增,一脸懵比..... 60分状压: 因为是求有向图,关于有向图好像拓扑用的很多,考虑到每个图的拓扑序是一定的 那么我们可以借此转移,设f[i][j]为当前点的状态为i,出度为零的点的度数为j 向下一层转移时枚举下一层的点集,那么点集S中每个点一定要和j连边,可以和i中除j以外的点连边 然后对于每个点cnt1,表示除j以外与i的连边,cnt2表示与j的连边,该点的贡献为2…
题意 题目链接 Sol 考虑直接对询问的集合做MinMax容斥 设\(f[i][sta]\)表示从\(i\)到集合\(sta\)中任意一点的最小期望步数 按照树上高斯消元的套路,我们可以把转移写成\(f[x] = a_x f[fa] + b_x\)的形式 然后直接推就可以了 更详细的题解 #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 1e6 + 10, mod = 99824…
C - To Be an Dream Architect Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 3682 Appoint description:  System Crawler  (2014-11-05) Description The “dream architect” is the key role in a team o…
题面 传送门 题解 首先\(x\)和\(y\)两维互相独立,可以分开考虑,我们以\(x\)为例 我们把\(x\)做个前缀和,那么就是问有多少\(i\)满足\(s_is_{i-1}<0\),其中\(s_0=1\).这个条件等价于\(\max(s_i,s_{i-1})>0\)且\(\min(s_i,s_{i-1})<0\).我们可以容斥一下,就是总数减去\(\max(s_i,s_{i-1})<0\)的个数减去\(\min(s_i,s_{i-1})>0\)的个数 注意到一次单点修改…
又死了......T1 Merchant 因为每个集合都可以写成一次函数的形式,所以假设是单调升的函数,那么随着t越大就越佳 而单调减的函数,随着t的增大结果越小,所以不是单调的??? 但是我们的单调只需凭借t时刻的sum值是否大于S即可 如果某个单减的集合符合情况,那么他在t==0时就符合情况 如果不符合,那么他就不会作出贡献 所以可以二分 T2 Equation 一开始以为是高斯消元??? 当然不是..... 把每个xi均用x1表示,那么我们发现,对于深度奇偶不同的点,他的表示方式是不同的,…
一句话:我看错考试时间了,我以为11:30结束,T2T3暴力没来得及交. 为什么考试的时间忽然变了啊...没转过来 一定要看清考试的起止时间! 虽说T2T3连爆搜都没打,只打特殊性质只有32分.爆搜分还挺高的. 当特殊性质不好扩展时,记得把爆搜打上. 本来是想T1先送上暴力,然后尝试肝T2,然后是T3暴力,有时间再回来优化T1. 但是整场考试时间是崩的,也没回T1...然而T2T3 注意分数与时间的权衡. T1:Reverse BFS. 二营长打法极其简单.因为是BFS所以一个点不会被多次更新.…
这场考得我心态爆炸......... 开场T1只会$n^{2}$,然后发现bfs时每个点只需要被更新一次,其他的更新都是没用的. 也就是说,我们可以只更新还没被更新的点? 于是我先YY了一个链表,发现在链表中删除一个数之后,用它更新其他点的时候,就没有办法找到它的前趋后继了,用之前的可以被卡成$O(n^{2})$,大样例都跑了2s+,然后就死了. 然后才想到set,可以保证每个点只被更新一次,然而发现我对set一无所知,一直以为begin指向为空,而end指向最大元素,调了好久,后来发现是反的.…
最开始想的暴力DP是把天数作为一个维度所以怎么都没有办法优化,矩阵快速幂也是$O(n^3)$会爆炸. 但是没有想到另一个转移方程:定义$f[i][j]$表示每天都有值的$i$天,共消费出总值$j$的方案数.然后答案就是. 所以每次维护前缀和就可以$O(1)$转移了. 注意前缀和的初值. #include<bits/stdc++.h> #define LL long long #define mod 998244353 using namespace std; int n, m; LL d; L…
题目传送门 https://loj.ac/problem/2542 题解 肯定一眼 MinMax 容斥吧. 然后问题就转化为,给定一个集合 \(S\),问期望情况下多少步可以走到 \(S\) 中的点. 考虑 dp 的话,令 \(dp[x]\) 表示从 \(x\) 开始走的答案. 如果 \(x \in S\),那么 \(dp[x] = 0\): 否则,\(dp[x] = 1 + \frac{\sum\limits_{(x, y) \in T} dp[y]}{deg_x}\). 这个东西直接树上高斯…