摘要:
洛谷2月月赛前三题题解。 T1:由最优性可知,我们每次一定要选出现最多次的字符进行操作,因此我们只需要找原始字符串中出现次数最多的字符,不停对其进行变换,直到其长度符合要求。 注意数据类型问题,由于变换的时候可能会超出$unsigned long long$的上限,因此我们需要判断其是否溢出。 1 阅读全文
摘要:
$Day -???$ 和爱国爱党的$LQX$书记打了个赌,谁$TG$分低请另一个京味斋。 $Day 0$ 机房同学去聚餐,美其名曰"散伙饭",可能又有几个进队的。。。 我没有去,因为我太菜了。 $Day 1$ 考点被分配到80中,在望京。 开车要三十多分钟。。。 一年OI一场空,开了long lon 阅读全文
摘要:
临近$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$; 这个问题乍一看还是没啥思路 阅读全文