摘要:
首先先把题目搞明白, 两个指令, 1.随机走向一个城市 2.删除一条边 使从1出发到n的天数最短。 一开始的思路是二分,然后暴力删边,跑最长路判断。明显时间复杂度太高了。 既然他是一步一步走的,那么就一步一步分析,不如说一层一层分析 dp方程为dis[i]为从1到i的最小距离,cnt[i]为i的入度 阅读全文
摘要:
https://vjudge.net/contest/500589#problem/D 一开始想拓扑,用了一个multiset维护其子节点对自己的贡献,然后每次将他的set遍历一遍,然后就,再决定他用不用加一下。 因为贪心所以尽量加到r[x],因为贪心,把当前点加到l[x],即可,因为他对父亲的贡献 阅读全文
摘要:
#include #include const int M = 50000; struct tire{//路径上的权值代表字母 int nex[M][26],cnt; bool is[M]; void insert(char *s,int l){ int p=0;//踹树节点从0开始 ,from f 阅读全文
摘要:
把S1中的字符按照s2中的位置进行存储,按s1的位置顺序倒着存进新的序列里,求个LIS即可。 #include #include #include #include using namespace std; const int M = 110000; vector A[M]; int s[M],t[ 阅读全文