上一页 1 2 3 4 5 6 7 8 9 10 ··· 36 下一页
摘要: 题目链接 题目思路 字典树居然还能求逆序对,震惊 就是利用字典树求逆序对的思想来解决此题 妙蛙种子 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<"I AM HERE"<<endl; 阅读全文
posted @ 2021-11-09 21:22 hunxuewangzi 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 题目思路 暂时无题目链接 问了一下其他队过的思路,大概是这样 别人的口胡 从小到大先把1移到它要去的地方然后再移2一直到n,但是不是直接移动 比如现在1的位置是5最终要到位置1,你就先区间查询1-4位置的最小值,然后把1移到查询的位置 然后这个区间的最小值移动到了5这个位置然后继续查询位置1到当前位 阅读全文
posted @ 2021-11-07 20:09 hunxuewangzi 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 不知道为什么打的比银川还难受 感觉真的尽力了,前期三个签到过的很顺利,成功打到20多名 后面卡壳d,卡了很久没思路,想到了b题一个线段树上二分,然后郑教去写,写了三小时终于过了 中间还看了下e,其实就是有最小环的问题,思考了下其实就是n次dij d题最后也没写出来 有点想退役了,太难受了 本来还想睡 阅读全文
posted @ 2021-11-07 16:56 hunxuewangzi 阅读(105) 评论(0) 推荐(1) 编辑
摘要: 题面 这题目要到pta写,还要购买真有点毒瘤 题目思路 这个题目最好的写法是泰勒展开然而我只会洛必达... 回以一下部分的高数知识 对于有商的求导公式 [f(x)/g(x)]'=[f'(x)g(x)-f(x)g'(x)]/[g(x)]^2。 泰勒展开即为 而现在是要知道$ln(1+x)$的泰勒为 \ 阅读全文
posted @ 2021-11-03 15:41 hunxuewangzi 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 我一直以为树上背包的复杂度为$O(nm^2)$ 而其实应该是$O(nm)$ 以为$sz$为$m$的最多$n/m$个,所以计算次数为$n/m*m^2=nm$ 而树上背包不应该这么写 for(int i = head[u]; i; i = nxt[i]) { if(to[i] == fa)continu 阅读全文
posted @ 2021-11-02 17:33 hunxuewangzi 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 主要是不知道怎么加边,而题解巧妙的把加边换成了删点 然后再进行树上背包,细节也有点多 官方题解如下 枚举位于最终边独立集上的加入的边权为 p 的边的数量 t,那么 0 ≤ t ≤ k 且 2t ≤ n,这 是因为每条边将占据图中的两个点。 假设最终要加入 t 条边,那么需要从图中 阅读全文
posted @ 2021-11-02 17:11 hunxuewangzi 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 其实就是发现行和列不影响然后就可以求了 官方题解如下 不难发现行与列是两个独立的问题,因此只需要求出行的最短循环节的长度,再求出列的 最短循环节的长度,相乘就是答案。 以行为例,首先通过 Hash 将问题转化为一维问题。一维问题则是经典问题,对于一个长 度为 n 的字符串,长度为 阅读全文
posted @ 2021-11-02 13:43 hunxuewangzi 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 首先$log(i+j)$只和$i+j$化为二进制的最高位有关 并且$i&j=0$ 所以不会有进位,那么就是和$i,j$中的二进制最高位的最高位有关 然后就是数位$dp$ 设的是$dp[pos][p][lim1][lim2]$ 第$pos$的位置最高位位$p$,以及$i,j$是否有 阅读全文
posted @ 2021-11-02 00:09 hunxuewangzi 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 考虑$a[i]$的贡献 只有比$a[i]$小的数才对$a[i]$有贡献 假设有一个数$a[j]<a[i]&& j<i$ 那么在区间$[l,r] ;l\leq j,i\leq r$的情况下$a[i]$至少要乘以2 $a[j]$在右边同理 每次线段树先搞小的数,再搞大的数,然后再维护 阅读全文
posted @ 2021-11-02 00:00 hunxuewangzi 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 对于$l-1$找到它$m$个字母最接近的位置的最远位置 然后进行倍增即可 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<"I AM HERE"<<endl; us 阅读全文
posted @ 2021-11-01 20:12 hunxuewangzi 阅读(415) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 36 下一页