- 博客(198)
- 收藏
- 关注
原创 Android Hilt 使用心得/踩坑 多module
学习博客:Android Developer Hilt 概览官方博客就不错如果你学习过spring Ioc实现,Hilt里的使用方式大体相同。多module中 application的放置问题多module里,application经常会放在一个子module中,作为基层module,但是在Hilt中的Application所在module需要得到所有使用依赖注入所涉及到的module依赖(注意下面这段话)所以若application放在子module中就会造成循环依赖,这里我放在了app壳里;我
2021-04-19 12:32:51
1767
2
原创 从一次远程ip连接docker引发的计网复习
上一次认真学习计网还是去年春招找实习2333,现在回头复习一下,看了几本书,博客,感觉又有了新的学习心得。背景 最近买了丐版阿里云服务器,在本地写毕设,做完一部分想发到阿里云上部署瞅瞅。通过idea-docker插件连接阿里云上的docker,惊呼竟然可以通过公网ip直接连接(在这之前楼主都是以为只有有了域名才可以访问,一直以为需要通过公网ip+私网ip的方式才能建立连接)。 通过上文也可以知道楼主计网基础并不扎实了2333。 总共看了两本书,一篇博客:《网络是怎样连接的》《计算机网络》
2021-03-13 11:24:05
237
原创 Spring Security踩坑记录
jwt概念json web token,参看jwt入门教程-阮一峰spring security参考文章原理:认证流程架构简介实操:Spring Security系列(内有目录)踩坑记录authenticationManager must be specified需在config中注入该bean@Configuration@EnableWebSecuritypublic class MyWebSecurityConfiguration extends WebSecurityC
2021-03-10 18:47:14
875
原创 OkHttp3 学习
最近在看安卓网络相关的东西,学习记录一下跟最下方参考的文章比起来有点班门弄斧的感觉,推荐直接看参考文章核心RealInterceptorChain一条责任链这个设计的比较巧妙,通过拦截器执行再执行的过程,使用方不需要关心在哪一部分被消费掉,只需要关注结果即可下面分析这两个方法copy复制一份,生成新的internal fun copy( index: Int = this.index, exchange: Exchange? = this.exchange, requ
2020-11-22 21:25:37
147
原创 ThreadLocal的使用及剖析
好久未用,来复习一下。可供参考的文章使用场景多线程下,该变量在每个线程中都是不同的实例,该变量调用链很深,不想每一层的方法中都放一个形参。比如一个demo: object Test { var name: ThreadLocal<String> = ThreadLocal() fun work() { //synchronized(this) { PrintService.work() //} }
2020-09-30 15:04:37
105
原创 安卓Retrofit始终对onFailure响应的可能问题
最近参考《第一行代码》中的彩云App进行了实现,其中Retrofit总是对onFailure响应,其中可能原因有以下几点:我使用了Gson解析数据,故可能是服务器端json格式与实体类不一致的情况可以打印一下onFailure的异常信息,若出现了W/System.err: java.net.SocketException: socket failed: EPERM (Operation not permitted)开头的异常信息,多半是安卓模拟器的原因,卸载App重装就好了。233333..
2020-06-21 10:52:46
990
1
原创 牛客算法周周练2 D E
比赛链接:周练2乍一看可能有点问题,实际上仔细想一下就发现这两个题都是把一些简单的思维与算法结合了一下。D:7e5的规模的树,边权都为1,点权都为0。7e5次操作,每次选择一个点,将所有与他距离不超过2的点的点权都加1,然后询问当前点的点权为多少。将这个树变成有根树后,距离不超过2,有两种情况:x向他的子树走1步,或2步那么很显然把点都映射到一个bfs序列,记录每个节点的第一个儿子...
2020-04-15 13:42:27
214
原创 快排与堆排
发现挺多面经里有提到。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5+7;int a[maxn];void Sort(int l,int r){ if(l>r) return ; int i=l,j=r; int x=a...
2020-02-27 23:42:52
303
原创 19蓝桥国赛B组C/C++ I第八大奇迹
题意:有一条河,沿河的一侧生活着一个部落。这个一字型的部落有n个据点,从左至右依次编号1~n。部落的人们有时会在某个据点建立建筑,每个建筑都有各自的价值。一开始,每个据点的都没有建筑,价值都是0。如果在已有建筑的据点建立新的建筑,那么新的建筑会代替旧的建筑(旧的建筑就此消失)。有两种操作C和Q:1、C x y,表示在据点x建立一个价值为y的建筑。2、Q x y,询问在据点x~y之间(包括...
2020-02-22 15:44:35
646
6
原创 16清华推研 魔法学校(莫队)
题目链接:AcWing 1327题意:中文题意。很明显将时间轴按照莫队的一套即可。单次转移复杂度log2nlog_2nlog2n,莫队本身n∗n\sqrt n*nn∗n,综合一下n∗n∗log2nn*\sqrt n*log_2nn∗n∗log2n,卡常。这是一份超时代码,AC代码为改掉排序方式(不太懂):#pragma GCC optimize(2)#include<bi...
2020-02-21 19:42:51
366
1
原创 codeforces 621 D Cow and Fields
题目链接:D题意:给定一个点数为3e5,边数为3e5的且保证连通的边权都为1的无向图,给定k个特殊点,(2<=k<=n)(2<=k<=n)(2<=k<=n),定义要计算的路径长度是从1到n的最短路,现在要求你选择两个特殊点之间加一条长度为1的边,问你在所有方案中,要计算的路径长度最大的是多少。昨晚看这一场很晚了就没打,但十一点多看了一下该题,口胡了一个做法。...
2020-02-18 12:35:20
244
原创 codeforces 620(Div.2)E.1-Trees and Queries
题目链接:620E题意:给定一颗1e5规模的边权都为1的树,接下来1e5次询问,询问间独立,每次添加一条树中不存在的边,再给定两点询问两点间的路径长度是否可以达到k,两点间的路径可以多次包含相同点,相同边,可以来回走。这个题和我以前做过的一个题很像。一颗树的话两点间的最短路径是唯一的,所以如果没有新的边的话,只要路径长度是小于等于询问值,且两者的奇偶性相同则说明可以达到该询问值。如果加入一...
2020-02-16 12:53:03
421
原创 codeforces 619(Div.2)E. Nanosoft
题意:给定一个n∗m,(1<=n,m<=500)n*m,(1<=n,m<=500)n∗m,(1<=n,m<=500)的只含有四种颜色标识的矩阵,定义合法矩阵为:类似这样的四个块相同,且每个块内颜色一致,颜色分布位置也与之一致。接下来有3e53e53e5次询问,每次给出(r1,c1),(r2,c2)(r1,c1),(r2,c2)(r1,c1),(r2,c2)...
2020-02-15 00:46:22
287
原创 Socket(网络)编程初试
前言最近学习了UDP,TCP协议在网络编程中的应用,写一点东西总结一下复习用。UDP协议该协议是一种不需要双方建立通信连接的协议,以数据包的形式发送数据,是一种不安全的协议。以下代码展示了一个客户端发送数据,服务端接收数据的小例子。UDP协议发送端发送数据/* * UDP协议发送数据 * 1.创建发送端Socket对象 (DatagramSocket 用来接收发送数据报包的套接字)...
2020-02-13 23:11:47
147
原创 计算区间[1,x]中所有数字二进制下某一位是1的数字个数
ll sum(ll x,int y){ //[1,x]中,第y位是1的个数,y从1开始编号。 if(x==0) return 0; ll s=1LL<<y; ll cnt=x/s; ll ans=cnt*s/2; ll d=cnt*s+(1LL<<(y-1)); ll dd=x-d+1; if(dd>0) ans...
2020-02-08 21:28:48
413
原创 牛客寒假2020集训营3补题
J题意:思路很好想,先floyd,再dp。关键在于k2k^2k2的复杂度优化。全图只有200个点,最坏是一条链,而且每个精灵出现的时间是各不相同的,那么就说明将精灵按照出现时间排序后,只要两个精灵数组的相对距离是大于200的,那必然可以抵达,于是可以维护一个Max表示距离超出200的可以取得的最大值,那么复杂度可以降到k*n。#include<bits/stdc++.h>u...
2020-02-08 21:21:21
143
原创 牛客寒假2020集训营2补题
题意:将a数组排序。定义dp[x],为将下标属于[1,x]内的元素进行若干次魔法达到的最小值。则一个显然的想法是枚举i为终点,j为最后一次进行魔法的位置,则有dp[i]=j∈min(dp[j]−a[j+1])+a[i]dp[i]=j\in min(dp[j]-a[j+1])+a[i]dp[i]=j∈min(dp[j]−a[j+1])+a[i];...
2020-02-06 18:26:46
143
原创 区间dp入门题
最近学习了一下一些简单的区间dp的题目。蓝书和西北工业大学ACM2017暑假集训 - 区间DP这个。1.石子合并最多300个石子堆按顺序排列在一条数轴上,每次选择相邻两堆进行合并,合并代价为两堆石子石子数量之和,要求将所有石子堆合并为一堆最小化合并代价。考虑dp[l][r]dp[l][r]dp[l][r]为合并第lll到rrr堆石子的最小代价。则一个显然的状态转移为枚举中间点kkk,作为...
2020-02-03 23:09:05
197
原创 容斥求[1,n]中与x互质的数字个数
数据范围:n,x均是不超过1e18的正整数。首先对x进行质因子分解后:x=p1q1∗p2q2∗p3q3∗...∗pzqzx=p_1^{q_1}*p_2^{q_2}*p_3^{q_3}*...*p_z^{q_z}x=p1q1∗p2q2∗p3q3∗...∗pzqz,p为质因子,z的长度不会超过17个,17个质数的连乘已经到1e18的范围了。其次如果要算出与x的gcd不为1的个数的话...
2020-01-30 21:32:07
1571
原创 2020 CCPC-Wannafly Winter Camp Day3 G-火山哥周游世界(树形dp)
题目链接:G-火山哥周游世界题意:一颗n个点的无根带权树,有k个特殊点,可以走到任一个点停止,现在要让你求对于每个点i作为起始点,走遍所有特殊点所花的最小路径和,n<=5e5n<=5e5n<=5e5先考虑若要从起点出发,最后回到起点所需要的路径和,这个是到所有特殊点的所有边权加起来乘2,去和回。若不回到起点选择某个特殊点作为终点停止,则是上述路径和减去从起点到该特殊点的路径...
2020-01-28 11:12:21
348
原创 POJ3585(二次扫描与换根法)
题目链接:AcWing287题意:给定一颗无向带权树,要你找出一个节点作为根,向叶子节点流水,使流水量最大。二次扫描与换根法的入门题。设d[]表示以1为根的情况下,每个节点向他的子树流水量的最大值。那么可以得出转移方程:d[x]=∑y∈Son of x{min(d[y],edge(x,y)),deg[y]>1edge(x,y),deg[y]=1 d[x]=\sum_{y \i...
2020-01-15 18:29:48
569
原创 cf501D(变进制数,康托展开)
题目链接:cf501D题意:给出两个0~n-1的全排列,n<=200000,假设两个全排列分别是第x,y个全排列,现在要你计算第(x+y)%(n!)个全排列,并输出。好久以前做的了,咕咕咕了好久,比赛打完了来更一下。变进制数的概念请见这里:yummy的博客大概有两个应用:将一个全排列转化为变进制数,变进制数转为十进制算出第几个全排列。变进制数转化为全排列。该题先算出两个变进...
2019-12-15 10:05:32
224
原创 bzoj3251: 树上三角形
题目链接:bzoj3251题意:有根树,支持两种操作,询问从u->v的简单路径上是否存在三个点权可以构成三角形,单点修改点权。两边之和大于第三边,显然这是个很套路的东西,这个性质就是斐波那契性质,而斐波那契数列至多在五十项左右的时候炸int,故若简单路径长度大于50,那么必然有解,否则暴力check即可。#include<bits/stdc++.h>using names...
2019-11-23 09:52:54
130
原创 2019徐州icpc
day0徐州好热,酒店特别给力,我们仨家庭房还有一个大浴缸233day1这里的饭好奇怪。。。鱼香肉丝为啥是咸的。。。吃不惯诶衣服是加绒的卫衣好评热身赛还行,感觉机子有点慢啊前面是北大洪华墩,后面是咖啡鸡,夹逼准则一下2333day2前一天晚上睡的特别早,以至于我在大概三点左右就醒了睡不着了,一直头脑清醒直到早上七点。。。正式赛签到打了个表瞅了瞅,结合了一下质数分布密度就过了。...
2019-11-22 18:53:40
421
原创 2019icpc沈阳
day0坐了七小时高铁极度自闭,下车路上好滑,拖着行李箱特别快乐233。抵达酒店吃了特别难吃的汉堡王!然后掏出电脑,打了训练赛(之前拉好的cf div2 c,d,e随机题)。day1报到+热身赛领到衣服发现是个马甲,马甲还行。吃饭发现是自助,草太好吃了,队爷吃了两份2333。热身赛坐第三排最最侧,抬头发现前排都是神仙。第三题想到random了,没想到随机列向量2333。十点睡觉,...
2019-11-21 11:41:18
1496
4
原创 Codeforces Round #447 (Div. 2) E. Ralph and Mushrooms(缩点,拓扑)
题意:一个有向有环有重边有自环图,一条路径可以多次经过,并且每次路径长度的计算方式为:设路径长度为www,在第一次到达时路径长度为www,第二次到达时为max(w−1,0)max(w-1,0)max(w−1,0),第三次为max(w−1−2,0)max(w-1-2,0)max(w−1−2,0),第四次为max(w−1−2−3,0)max(w-1-2-3,0)max(w−1−2−3,0),即若在第...
2019-11-13 17:02:41
141
1
原创 HDU - 3488(二分图带权匹配)
题目链接:Q - Tour HDU - 3488 题意:找出若干个环覆盖所有点,并且总边权和最小。节点个数200200200,边数300003000030000,可能含有重边。因为要找若干个不相交的环,而且题目保证一定有解,故说明最后的选择中一定是每个点被出,入一次,故可将一个点拆为入点和出点,出点在左侧,入点在右侧,若没有边权的限制就是二分图匹配了,加上边权的限制就是带权二分图匹配,因为要...
2019-11-11 21:18:05
219
原创 1295 XOR key (可持久化trie)
题目链接:1295 XOR key模板#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=50009;int tot;int Son[maxn*30][2];int sum[maxn*60];void insert(int p,int q,int x){ ...
2019-11-10 09:47:13
165
原创 F. Dominant Indices(动态开点线段树 or dsu on tree)
题目链接:F. Dominant Indices题意:有根树,根为1,定义d[x][i]d[x][i]d[x][i]为x的子树中距离x为i的点的个数,对于每个点,求出最小的i使得d[x][i]d[x][i]d[x][i]最大。dis[x]dis[x]dis[x]表示x与树根的距离,对于每个子树动态开点维护距离为valvalval的点的个数,以及最大值,dfs回溯合并线段树即可。参考了一下橘子...
2019-11-09 16:07:00
231
原创 D. Misha and Permutations Summation(变进制数康拓展开)
题目链接:D. Misha and Permutations Summation题意:两个全排列,算出这两个全排列分别是第几个全排列,然后这两个数字相加,取模(n!),然后再输出一个全排列表示第几个全排列,第几个是从0开始编号的。大概在暑假的时候洛谷上看到一个变进制数的概念,就是将一个全排列转化为一个变进制数:yummy的博客然后将两个变进制数相加,如果最高位还会产生进位说明相加超过了(n!...
2019-11-09 15:07:53
195
原创 Codeforces Round #597 (Div. 2)(最小生成树)
题目链接:这里题意:有n个城市分布在二维平面上,现在要选择一些城市建立电站,一些城市通过线路连接到这些电站,第i处建立电站的花费是cic_ici,在i与j之间架设线路花费为(ki+kj)∗曼哈顿距离(k_i+k_j)*曼哈顿距离(ki+kj)∗曼哈顿距离。并且电站的电具有传递性即若a处有电,b连接a,c连接b,则c处也有电,现在要求你输出最小花费,以及具体方案。数据范围:n<=20...
2019-11-07 17:31:16
161
原创 AcWing1073. 树的中心(树形dp)
题目链接:树的中心LT’s blog题意:找一个点,使得他到其他点的最长距离最小,边权有正有负。最开始的时候我想这个点一定在树的直径上的中点位置处,WA了好多次后注意到题目数据范围,把这个思路直径否决了。如果我们将这颗树化为一个有根树,那么一个点到其他点的最远距离就是:MAX(他到子树某个点的最远距离,他经过父亲节点到其他的点的最远距离)。第一部分可以直接一次dfs得到,对于第二部分来说...
2019-11-06 19:57:26
356
原创 cf686D(子树的重心)
cf686D题意:求解有根树中所有子树的重心。徐州打铁归来补题。首先树的重心的性质如下:树的重心一定存在于直连儿子中节点个数最大的一个中,或就是本身。树的重心的所有子树中(删去该节点)最大的一颗的节点个数一定小于等于所有节点数量和的一半。重心不下移,若求解出子树的重心,则整个树的重心一定是子树重心或子树重心的父亲。。。。父亲。。。父亲。一颗树最多只有两个重心,并且这两个重心一定是相...
2019-11-05 19:02:47
367
原创 spring boot 添加spring mvc支持
<!--添加 tomcat 的支持.--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> ...
2019-10-31 08:42:25
170
原创 poj3580 or bzoj1895(splay)
参考:Clove_unique及键盘里的青春支持某位置单点插入,区间加法,区间最小值,单点删除,区间翻转,区间轮转。甚至还可以再加上区间赋盖,区间和,区间最大子段和等一系列线段树可进行的操作。splay打包带走#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=...
2019-10-30 20:36:46
131
原创 P1486 [NOI2004]郁闷的出纳员(线段树或splay)
题目链接:P1486 [NOI2004]郁闷的出纳员题意:中文题意一、权值线段树注意到加值与减值都是对整体加减,故可以记录修改量changechangechange,表示所有的+ki+k_i+ki与−ki-k_i−ki,那么插值可以看做插一个权值为x−changex-changex−change的点,工资下降可看做是对值域区间[0,minn−change−1][0,minn-change...
2019-10-29 21:23:39
176
原创 codeforces 19D(线段树端点维护set 或脑补CDQ?)
题意:二维平面三种操作,添加一个点,删除一个点,询问一个点的严格右上方中离他最近的点,若有多个则横坐标小的优先,操作次数2∗1052*10^52∗105,保证操作合法。对横坐标离散化后,线段树叶子节点建立set,存放y坐标,那么增与删都很好做,同时线段树维护y坐标最大值,查询的时候如果左右子树同时都可能满足,则优先查询左子树,若找不到答案再查右子树,查询过程中同时使用max进行搜索剪枝。#in...
2019-10-28 15:43:30
153
原创 2019厦门ccpc J(点分治)
看到厦门的榜特别惨,比较好奇这套题。题意:多组样例,一颗带有点权的无根树,定义两点路径D为其简单路径上的边的数量,定义MAX为其路径上的点权最大,MIN为其路径上的点权最小,现要你求最小的 D-MAX+MIN。 数据量总的节点数量,及最大点权均不超过10610^6106想了很久,看了一句话题解也只想到一个O(n∗log2n∗log2n)O(n*log_2n*log_2n)O(n∗log2n...
2019-10-23 09:45:07
1204
4
原创 G. Path Queries (dsu)
题目链接:G. Path Queries题意:给定一颗无根树,带边权,定义两点间的路径长度为该路径上的最大边权,q次询问qiq_iqi,询问点对数(u,v),u<v(u,v),u<v(u,v),u<v,u到v的路径长度<=qi<=q_i<=qi两种做法:将路径权值从小到大排序,询问排序,然后用并查集维护连通块的size,对于询问qiq_iqi,将边...
2019-10-22 11:18:30
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人