摘要:
临近$CSP$...... 下午打了一发月赛,感觉很爽。 非常菜的我只做了前两题......然而听说前两题人均过...... 写法不优秀被卡到$#1067$...... T1:基础字符串练习题: 前缀和水题,只需要维护前缀最小值即可 很菜的我选择了用堆维护,凭空多了个$log$。 于是就慢成**了。 阅读全文
摘要:
[MtOI2019]黑蚊子多: 送分向水题,直接模拟即可。 1 #include<iostream> 2 #include<cstdio> 3 #define N 1505 4 using namespace std; 5 int n,m,k,a[N],now,ans,hve[N]; 6 int m 阅读全文
摘要:
题目传送门 考虑一条边所做的贡献,为这条边两端的树节点的数目之差的绝对值,因此我们可以搜索,随便钦定一个点为根,然后记录一下每个点子树的大小,那么对于每条边所做的贡献,就是w[i]*abs((n-siz[v[i]])-siz[v[i]]),其中i为边的编号,abs为取绝对值,siz[x]表示x的子树 阅读全文
摘要:
题目传送门 考虑用线段树进行区间求和,暴力修改。 我们发现开根号操作并不能直接像加减一样直接修改,但是他有一个非常良好的性质,对于一个小于等于1e12的数,其进行下取整开根操作至多不超过6次就可以到1,对于1,我们显然不需要进行任何操作,因此修改的复杂度是O(nlogn),数据只有1e5,因此不用在 阅读全文
摘要:
这种最优解和深度有关的,可以使用迭代加深对dfs进行优化。 但显然普通的IDDFS效率还是不能满足这题的要求,因为直接枚举分母明显是不行的(可能达到1e7),那么我们可以对IDDFS进行上下界剪枝。 下界优化1:我们可以发现,题目要求升序排列,因此可以从上次分母+1开始枚举 下界优化2: 我们发现枚 阅读全文
摘要:
题面传送门 我们发现只有25个格子,应该是可以用爆搜过掉这道题的。但是裸的dfs时间复杂度过高,我们要进行相应的优化。 首先,由于马的数量过多,我们应该选择让空格“走”。 接下来我们发现这道题又很明显的一个限制条件,最多不能超过15步,所以我们可以使用迭代加深进行优化,所谓的迭代加深搜索,本质上还是 阅读全文
摘要:
初赛退役见祖宗。。。我AFO了… day -1 机房颓主定理直接歇逼 看了看网络协议。。。不知道不会考… day 0 果然像教练预测的一样,ccf的网站崩掉了。 10:30正式开考 网络协议、计算机史和电脑基础一个没考。 我歇逼了 后面几道估计也会跪掉,反正倒数第二题没什么把握。 下午J比S还难 图 阅读全文
摘要:
题意简述:给定一颗$N$个点边带权的树,再给定$M$条链,问将树上的某条边权值改为0后,这些链中最长的至少有多长。 由于答案显然具有单调性,因此可以考虑二分答案。 二分答案后就变成了这样一个问题:将一条边的边权变为0后,是否可以让所有m条路径中每条的权值都小于$mid$; 这个问题乍一看还是没啥思路 阅读全文
摘要:
NOIP2016D1T2...... 我连D1T2都需要看题解才能做了...... AFO...... 题目传送门 解析: 考虑有一个玩家,其起点为$u$,终点为$v$。 则其路径可以分成两部分,一部分为$u->lca(u,v)$,另一部分为$lca(u,v)->v$ 对于前半部分,可以对点x(x在 阅读全文
摘要:
树上莫队模板题。 使用欧拉序将树上路径转化为普通区间。 之后莫队维护即可。不要忘记特判LCA 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 # 阅读全文