摘要:
恢复内容开始 null 恢复内容结束 阅读全文
摘要:
挺有用的一个算法。 以base进制把字符串转化成整数来实现高速判断。 阅读全文
摘要:
在折腾了一天的cyaron还是无法正常运行,我觉得自己来写一份c++的数据生成总和。 1:有向无环图。(可能有重边) bool vis[N]; map<pii,int> mp; void DAG(int maxn,int maxm) { freopen("data3.in","w",stdout); 阅读全文
摘要:
上次对pip进行了一下更新,后面就用不了了。 一直显示语法错误。 首先在网上看到的解决方法: 1:cmd不要进入python中执行。更正后依旧无效。 2:利用ensuxxxx文件,找不到这个文件。 3:... 还有一堆方法全试了都没有用。 最后在学长的建议下重装了python得到解决。 猜测:pip 阅读全文
摘要:
E: 单调栈维护的题,比赛的时候没想到,线段树写了很久,但是中间没理清。 这题线段树也能做,但是要麻烦一些。 我们在栈中维护一个栈,尽量让栈顶的元素大,也就是说如果这个元素后面还有这个元素,且这个元素不在栈中。 并且小于栈顶的元素,我们就去看栈顶的元素后面还有没有,如果有我们就把栈顶元素弹出,把这个 阅读全文
摘要:
一开始一直在想这题,首先烽火站点肯定放在凸点,凹点肯定没后面的凸点更优。 那么主要就在于判断是否这个凸点没有放置的必要。 于是就有一个N^2的做法,去暴力判断。 然后我就开始考虑优化,但是没怎么想出来。 其实并没有那么难。 类似单调栈的思想去维护一个有设立烽火站的凸点的栈。 对于三个点,a,b,c。 阅读全文
摘要:
一开始的思路是把限制放入队列,然后线段树去维护中间的值。 但是发现队列的进入顺序可能会造成错误,就没想了。 这里有个很重要的条件,就是给出的这头牛是最高的牛。 然后,很显然的一点就是对于给出的限制条件,中间的牛肯定至少要比两端的牛小1。 对于这步思路,我们就将中间所有的牛都 -1,这样就把关系虚地更 阅读全文
摘要:
因为是正整数解所以不能高斯消元了。 然后一开始想的是枚举a【1】,然后想办法O(n)检查,但是这个O(n)检查就是想不出来。 然后二分复杂度确实满足,但是感觉上不满足二分性。 在一段仔细思考之后,发现,a[1]的大小会控制其他值的大小,那就可以在check之中满足二分性。 然后就可以二分了。 #in 阅读全文
摘要:
一开始想的dp用了结构体来存位置,想试一试,但是无法证明正确性,很显然就wa了。 这里的一个切入点就是位置数很小,一开始忽略了这里。 后面可以发现,对于每一回合,如果我们枚举三个人的位置肯定复杂度不够,但是有一个人的位置必定在a[i],所以只需要枚举两个人的位置。 dp[i][j][k] - 表示一 阅读全文
摘要:
1:后缀排序。 基于倍增和桶排的做法。 对于每个位置有第一关键字和第二关键字。 利用倍增来求解关键字,当所有人的排名都不一样时即完成。 2:LCP 最长公共前缀,非常有用。 洛谷: P3809 【模板】后缀排序 #include<bits/stdc++.h> using namespace std; 阅读全文