摘要:
传送门 解题思路 带权值的并查集。front[x]表示x前面有几个战舰,num[x]表示所在列战舰的个数,然后front在回溯是修改。 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namesp 阅读全文
摘要:
传送门 解题思路 贪心+dp。首先一定是让吃的慢的先吃这是很显然的,所以按照b[i]排一遍序,然后考虑dp,设dp[i][j]表示前i个人第一个队伍的排队时间为j的最小时间,转移比较容易理解 #include<iostream> #include<cstdio> #include<cstring> 阅读全文
摘要:
传送门 解题思路 和以前做的一道题比较像,贪心+dfs,首先用一个优先队列,将所有的叶节点存到优先队列里,每次找到一个深度最大的,向上扩展2*2+1个节点,这些点都打上标记,然后把向上第6个点的当做叶节点继续放入优先队列,直到所有点被遍历。时间复杂度O(nlogn)。 #include<iostre 阅读全文
摘要:
传送门 解题思路 平衡树,支持插入,删除,找前驱后继,set水过。 #include<iostream> #include<cstdio> #include<cstring> #include<set> using namespace std; const int MAXN = 50005; inl 阅读全文
摘要:
传送门 解题思路 好多大佬用的dp啊,貌似贪心可以做,每次所选的一定是每个连续递增或递减序列的最后,直接模拟就行了,注意判断一下头和尾相等的情况。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us 阅读全文
摘要:
传送门 解题思路 比较简单的模拟题,转圈一定有一个循环节,而且循环节长度一定小于m,因为循环节是一个%m的剩余系,然后一遍模拟记录下来循环节,快速幂即可。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> 阅读全文
摘要:
传送门 解题思路 记得当时考试我还是个孩子,啥也不会QAQ。现在回头写,用动态开点的线段树,在每行和最后一列开线段树,然后对于每次询问,把x行y列的删去,然后再把x行m列的元素加入x行这个线段树,然后再把删去元素加到最后一列里,用一个vector维护变化后的标号。 代码 #include<iostr 阅读全文
该文被密码保护。 阅读全文