摘要: 首先先把题目搞明白, 两个指令, 1.随机走向一个城市 2.删除一条边 使从1出发到n的天数最短。 一开始的思路是二分,然后暴力删边,跑最长路判断。明显时间复杂度太高了。 既然他是一步一步走的,那么就一步一步分析,不如说一层一层分析 dp方程为dis[i]为从1到i的最小距离,cnt[i]为i的入度 阅读全文
posted @ 2022-06-24 11:48 Asder1228 阅读(125) 评论(0) 推荐(0) 编辑
摘要: https://vjudge.net/contest/500589#problem/D 一开始想拓扑,用了一个multiset维护其子节点对自己的贡献,然后每次将他的set遍历一遍,然后就,再决定他用不用加一下。 因为贪心所以尽量加到r[x],因为贪心,把当前点加到l[x],即可,因为他对父亲的贡献 阅读全文
posted @ 2022-06-22 17:32 Asder1228 阅读(47) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2022-06-05 22:04 Asder1228 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2022-02-20 10:33 Asder1228 阅读(3) 评论(0) 推荐(0) 编辑
摘要: #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 阅读全文
posted @ 2022-02-15 12:00 Asder1228 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 把S1中的字符按照s2中的位置进行存储,按s1的位置顺序倒着存进新的序列里,求个LIS即可。 #include #include #include #include using namespace std; const int M = 110000; vector A[M]; int s[M],t[ 阅读全文
posted @ 2022-02-14 06:14 Asder1228 阅读(75) 评论(3) 推荐(2) 编辑
摘要: 阅读全文
posted @ 2022-02-13 21:23 Asder1228 阅读(25) 评论(0) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2022-02-07 18:55 Asder1228 阅读(4) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2022-01-26 16:46 Asder1228 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 有时候判断某个坐标是否存在,用map会超时 这里介绍两种做法 首先是unordered_set,时间复杂度理论上是~~O(1)~~的但是,实际上是*O(玄学)*的,码量小,易操作 下面是hash表做法 链式前向星 直接求hash,直接判断 查询一般来讲是O(1)的 但是,特殊数据会变成O(n)的,主 阅读全文
posted @ 2022-01-26 16:15 Asder1228 阅读(142) 评论(0) 推荐(0) 编辑