【解题总结】AGC001 简要题解

A BBQ Easy排序贪心,两个两个选。B Mysterious Light容易归化成下面的形式,于是可以在与辗转相除法相同的时间复杂度内求解。C Shorten Diameter枚举树的所有可能中心,然后删掉那些距离中心超过 K2\\frac{K}{2}2K​ 的点即可。D Arrays and Palindrome首先考虑什么情况下无解:如果把两个排列所有相应位置连边,那么至少要是一棵树才能保证所有位置字符相同。一个排列中有一个奇数就少半条边,因此如果 aaa 有多于两个奇数,那么边的个
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

【学习记录】矩阵乘法

基本一个 n×mn \\times mn×m 和 m×pm \\times pm×p 的矩阵相乘的时间复杂度为 O(nmp)O(nmp)O(nmp),得到的结果为 n×pn\\times pn×p 的矩阵。由于矩阵乘法有结合律,因此对于一个 nnn 阶矩阵 AAA,可以利用快速幂在 O(n3log⁡k)O(n^3 \\log k)O(n3logk) 的时间内计算 AkA^kAk。Strassen 矩阵乘法应用了分治的想法,把原来的 n×nn \\times nn×n 和 n×nn \\times nn×n 的矩
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

【单题题解】UOJ #41【清华集训2014】矩阵变换

题意原题题意已经够简明,所以直接传送门。题解显然这是一个二分图匹配问题。先看什么情况下不合法。如果对于行 i,ji, ji,j,它们各自选了 pi,pjp_i, p_jpi​,pj​,那么 pip_ipi​ 会导致不合法当且仅当 pip_ipi​ 在 iii 中的位置比 jjj 靠前。然后是一个神仙的观察:如果把行看作男性,从前向后的 [1,N][1, N][1,N] 排列看作是降序的喜爱程度,而把要构造的排列看作女性,把其在每一行出现的下标从大向小看作是降序的喜爱程度,那么这就等价于 (i,pi
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

程序员不得不知的十大职场误区

文章目录1 技术好就工资高2 我的职业规划是架构师3 我是老员工,掌握核心代码,公司不会开我4 每年都会涨薪5 公司很稳定,我会一直在这家公司干下去6 公司给你画了大饼,说会带你实现财务自由7 老板如果听了我的想法肯定能干成这个事情8 抱怨之前写的代码垃圾9 坐等领导分配任务10 瞎忙没成果,还爱在朋友圈发加班照片让老板看最近看到一些人吐槽对公司贡献很大却被公司裁掉,郁郁不解,今天就来说说职场中的一些误区,让大家早点认清现实,放弃幻想。以下是十种误区的详细解析~1 技术好就工资高工资的高低由综合实
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

生活不止眼前的代码,老程序员现摘现炒苦瓜吃苦的周末时光

文章目录写在前面视频版文字版写在前面生活不止眼前的代码,还有诗和美食!视频版 老程序员现摘现炒苦瓜吃苦的周末时光,生活不止眼前的代码 文字版苦瓜果味甘苦,能清心明目,夏季食用,清凉消暑。这是主人家里阳台上种的苦瓜,到了盛夏的7月初,苦瓜已经硕果累累。今天我们跟着男主人一起现摘现做苦瓜。男主人曾经是个程序员,很多年996的工作,平时很少在家吃饭,更是很少自己做饭。女主人和孩子回老
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

大厂面试你懂了吗

Android 面试BAT大厂主要分为以下几部分:(1)java面试题(2)Android面试题(3)混合开发面试题(4)高端技术面试题(5)非技术性问题&HR问题汇总一、java面试题熟练掌握java是很关键的,大公司不仅仅要求你会使用几个api,更多的是要你熟悉源码实现原理,甚至要你知道有哪些不足,怎么改进,还有一些java有关的一些算法,设计模式等等。(一) java基础面试知识点•java中和equals和hashCode的区别“”vseuqal :https:/
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

2020 Android 大厂面试(一)

一、图片1、图片库对比juejin.im/post/684490…Picasso Glide FrescoPicasso 毕加索 Square•使用简单,代码简洁•与Square其他类库搭配兼容性好,Retrofit OkHttp 等缺点:•功能简单 图片加载•性能(加载速度等等)较(Glide、Fresco)差•自身没有实现本地缓存Glide Google 开源•支持Memory和Disk缓存•Picasso 只会缓存原始尺寸图片,而Glide缓存时多种规格•内存开销
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

如何使用RecyclerView优雅地实现复杂列表效

/ 今日科技快讯 /发现一件很有意思的事情,今天这篇文章中介绍的RecyclerView,以及昨天文章中介绍的Lifecycles,它们共同的作者都是前天文章中介绍的Yigit Boyar大神。确实不是我有意为之,我都是按照投稿的顺序来安排推送的。而Yigit Boyar大神明天将会做客上海GDG,与大家进行一场问答式的技术活动。这种跟Google大神零距离接触的机会可不多,希望大家到时都能准时观看,我们明天见。/ 作者简介 /本篇文章来自秦川小将的投稿,给大家分享了如何使用RecyclerView实现复
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

LinkedHashMap的一份简单理解

/ 今日科技快讯 /近日,台湾地区媒体《经济日报》转引《日经亚洲评论》报道称,自去年起,已有100多位原台积电工程师和经理人员被挖角到中国大陆,从事芯片研发制造项目。对此台积电表示,员工是台积电最重要的资产,公司近年的年度离职率一直在5%以下;公司将继续致力留住人才、培育人才,提供员工具挑战性且正面的工作环境与长期职涯发展。/ 前言 /这篇文章的内容包括LinkedHashMap 常用api的源码解析以及利用 LinkedHashMap来实现LRUCache算法。说明:Linked
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

是时候来一波逆向技术分析了之Android Resources.arsc

近日,我国在中国文昌航天发射场,用长征五号遥四运载火箭成功发射首次火星探测任务天问一号探测器,火箭飞行约2167秒后,成功将探测器送入预定轨道,开启火星探测之旅,迈出了我国行星探测第一步/ 前言 /在 gradle 中,配置如下代码可以将无用的资源移除:android { ... buildTypes { release { shrinkResources true minifyEnabled true
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

LiveData vs EventBus?是否可以实现共赢

近日,据国外媒体报道,电动汽车厂商特斯拉的股价本周一再次大涨,延续上周4个交易日连续大涨的势头,CEO埃隆·马斯克的身价也因此而增至463亿美元,比马云和拼多多创始人黄峥均高出了31亿美元。/ 前言 /EventBus大家都很熟悉了,各种实现方式也是层出不穷,然而,作为有追求的程序员们,永远在不停的造轮子,毕竟,在程序员的眼中,至今,没有哪个轮子看上去是完美无暇的。因此,作为有追求的程序员中的一员,我也想假装很权威的站出来,然后无所畏惧的从远古时期讲讲事件总线的来龙去脉。有兴趣的小伙伴可以搬个
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

程序员必懂Android技巧之Lifecycle源码

巴西副总统莫朗当地时间3日在一个视频会议上表示,巴西不担心美方的威胁和施压,不会阻止华为参与该国的5G建设竞标,华为公司掌握的技术远超其它竞争对手。/ 前言 /Lifecycle 是 Jetpack 整个家族体系内最为基础的内容之一,正是因为有了 Lifecycle 的存在,使得如今开发者搭建依赖于生命周期变化的业务逻辑变得简单且高效了许多,且大大减少了业务代码发生内存泄漏和 NPE 的风险。本文的内容就是对 Lifecycle 进行了一次全面的源码讲解,希望对你有所帮助!本文所讲的的源代码基
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

如果App运行时大图监控,你又应该怎么做呢?

1、背景最近看滴滴开源的Dokit框架中有一个大图监控的功能,可以对图片的文件大小和所占用的内存大小设置一个阈值,当图片超过该值的时候进行提示。这个功能对于我们在做APK体积压缩,内存管理的时候还是很有用的,比如当我们要从后台返回的连接中加载一张图片,这张图片的大小我们是不知道的,虽然现在大家都使用Glide等三方 图片加载框架,框架会自动对图片进行压缩,但是依然会出现压缩后所占内存超过预期的情况。这时候我们可以在开发、测试和预生产阶段使用大图监控来识别出那些超标的图片。2、需求在讨论如何做之前,
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

程序员必懂小技巧之Parcelable

本篇文章的目的,将分析Parcelable实现原理,一者可以明白其实现;二者可以更好地与Serializable进行比较;三者对于序列化所要到达的目的考量也会有较清晰的认识。本文将会回答以下问题,如果你不知道答案,或许有些帮助:Parcelable 如何实现为什么序列化与反序列化要保持相同的顺序能否自行实现Parcel子类是否需要实现ParcelableParcelable 真的比 Serializable 快吗
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

当一个项目创建了几百个线程,你又要去怎么优化呢?

近日,据报道,甲骨文已经与TikTok的中国所有者字节跳动进行了初步谈判,并认真考虑购买该应用在美国、加拿大、澳大利亚和新西兰的业务。知情人士还补充称,甲骨文正在与一群已经持有字节跳动股票的美国投资者合作,包括美国泛大西洋投资集团和红杉资本。1、前言当大家打开AndroidStudio的Profiler工具时,是否遇到过这种情况:哇塞好几百个线程??名字咋都是12345?怎么都在sleep或wait但就不销毁?其实,当一个项目规模越来越大时,随着开发人员变更、老代码不规范、三方sdk引入越来越多,
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

你对于LiveData真的了解吗?看完原理立马释怀!

最近一段时间,继美媒曝出TikTok美国员工计划起诉特朗普政府之后,根据美国《国会山报》最新消息,TikTok美国员工已准备好向总统特朗普针对TikTok颁布的禁令发起法律挑战。根据其代理律师方面的说法,他们将于本周晚些时候向联邦法院提起诉讼。/ 前言 /LiveData是Jetpack的基础组件之一,在很多模块中都可以看到其身影。LiveData可以和生命周期绑定,当Lifecycle(例如Activity、Fragment等)处于活跃状态时才进行数据回调,并在Lifecycle处于无效状态(DES.
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

Fragment 间通信的新方式,这些你是否又懂了呢?

1、概述就在 2020/05/07 号 Now in Android #17 更新了,发布 Android 的新特性,其中就包括 Fragment 间通信的新方式,而现在就由我来介绍介绍。今天你们将会了解到以下内容,并得到答案。一、新 Fragment 间通信的方式的使用?二、新 Fragment 间通信的源码分析?三、汇总 Fragment 之间的通信的方式?2、在 Fragment 之间传递数据Fragment 间传递数据可以通过多种方式,包括使用一、target Fragment AP.
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

Android UI 渲染机制的演进,你需要了解什么?

前言如今UI 渲染可能是诸多性能问题中最容易被察觉到的,Android 开发既要面对各式各样的手机屏幕尺寸和分辨率,还要与“凶残”的产品和 UI 设计师过招。在正确实现复杂、炫酷的 UI 设计的同时,还需要保证流程的用户体验。更加不幸的是,最近几年这个趋势似乎愈演愈烈:刘海屏、水滴屏、全面屏,还有即将推出的的柔性折叠屏,UI 适配将变得越来越复杂。UI 渲染的背景知识Android 的图形渲染框架十分复杂,不同版本的差异也比较大。但是无论怎么样,它们最终都是为了将我们代码中的 View 或者元素显示
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

Jetpack家族新成员,App Startup学习笔记。这些你又懂了吗?

近日,南昌市人民政府与新电商平台拼多多签订战略框架协议,共同启动“南昌优品”电商直播消费节、“南昌优品馆”线上大型展销专场等系列活动。/ 解决的问题 /一般需要初始化的sdk都会对外提供一个初始化方法供外界调用,如:public class App extends Application { @Override public void onCreate() { super.onCreate(); Sdk1.init(this); }}对调
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0

一篇能够帮你理清线程池的文章

近日,据消息人士透露称华为已召集两家韩国芯片制造商在华子公司的高级官员,要求后者稳定供应存储芯片。华为是三星和SK海力士的五个最大客户之一,每年花费约10万亿韩元(合81亿美元)从韩国公司购买DRAM和NAND闪存芯片。/ 什么是线程池 /线程池,顾名思义就是装线程的池子。其用途是为了帮我们重复管理线程,避免创建大量的线程增加开销,提高响应速度。/ 为什么要用线程池 /作为一个严谨的攻城狮,不会希望别人看到我们的代码就开始吐槽,new Thread().start()会让代码看起来混乱臃肿,并且不
分类: 其他 发布时间: 09-11 11:33 阅读次数: 0