技术文章

[网络流24题]汽车加油行驶问题(分层图)

纵然是瞬间 提交于 2021-02-17 19:40:28
题意 链接 思路 假的网络流 由于无法直接储存油量这个状态,加上k很小,可以把原图分层,分为k+1层图,分别表示当前油量为0~k 连边 对于满油的第k层,连给四个方向,如果向回走了权值为B,否则为0,表示走一步 对于非满油层,如果当前点是加油站,那么它只有一条指向第k层对应点的边,权值为A,表示加一次油 对于非满油层,如果当前节点不是加油站,那么它可以连给下一层对应的四个方向,同1;它也有一条连向第k层对应点的边,权值为A+C,表示建立加油站并且加一次油(由于网格图上的每一个点最多走一次,所以这样连边的正确性可以保证) 最后将终点所对应的k+1个点连给汇点t,边权为0 从第k层的s点出发跑最短路,dis[t],即为答案 Code: #include<bits/stdc++.h> #define N 200005 #define M 2000005 using namespace std; int n,k,A,B,C,s,t; int a[105][105]; int dis[N]; bool vis[N]; struct Node { int u,dis; bool operator < (const Node a)const { return a.dis<dis; } }; struct Edge { int next,to,dis; }edge[M];int head[N]

Android 自定义标题栏

瘦欲@ 提交于 2021-02-17 19:40:08
开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标题栏传递数据。 本文要点: 自定义标题填充不完整 自定义标题栏返回按钮的点击事件 一、代码 这里先介绍一下流程: 1. 创建一个标题栏布局文件 mytitlebar.xml 2. 在style.xml中创建 mytitlestyle 主题 3. 创建类 CustomTitleBar 4. 在需要自定义标题栏的Activity的OnCreate方法中实例化 CustomTitleBar 5. 在 AndroidManifest.xml 对使用了自定义标题栏的Activity定义主题 1.定义一个自定义的标题栏布局 mytitlebar.xml <?xml version="1.0" encoding="utf-8"?> < RelativeLayout android:id = "@+id/re_title" xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "fill_parent" android:layout_height = "50dp" //定义自定义标题栏的高度 android:background = "@color/start_background"

敏捷开发学习笔记

半世苍凉 提交于 2021-02-17 19:39:47
需求的变化时普遍存在的,人往往不知道自己需求什么。因此,要拥抱变化。提高自己代码的可扩展性。 你只能复制平庸,永远无法复制优秀。因此,在欣赏别人代码的或者使用demo的时候,要带着欣赏和批判的眼光来进行判定。 优秀的程序员,应该让优秀成为一种习惯。思考无处不在。 持续集成的过程中:之所以你不知道你为什么会出错,调不出bug,是因为你在写的时候,也不知道这些东西为什么是对的,为什么这样写。你所做的只是为了完成任务的模仿。 设计模式只是一种设计结果,你应该从中学习到的是一种解决问题的思想,同时,在自己的项目中加以利用。 软件设计:角色,职责,协作。 用代码去描述事件,而不是用文档。因此,当你的代码足够优秀,别人读你的代码,就会知道你在做什么,怎么做了? 用简单直观的方式来处理某件事情。 要尽力去掌握别人所不能掌握的稀缺资源。例如,一种卓越优秀的编程习惯。 SOLID:原则 程序中绝对不能出现else if。 if很多时候的重构: 首先:进行关注点分离,找到不变和可变的部分。(分离) 然后:将不同的关注点进行分离,创建新的方法。(抽离共同) 抽象,封装,多态:设计模式其实是一种封装的手段,封装是进行重构的基本。抽象:定义一种规约,一种共同遵守的预定。多态:对抽象进行实现。(重构中的面向对象三要素) 好的代码是不会恐惧单元测试,单元测试只会让你代码更加自信。

【Java】 剑指offer(62) 圆圈中最后剩下的数字

末鹿安然 提交于 2021-02-17 19:39:14
本文参考自《剑指offer》一书,代码采用Java语言。 更多: 《剑指Offer》Java实现合集 题目   0, 1, …, n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 思路    方法一 :采用链表来存放数据,每次对长度取余来实现循环   将所有数字放入LinkedList链表中(LinkedList比ArrayList更适合增删操作)。假设当前删除的结点下标为removeIndex,则下一个要删除的结点的下标为:(removeIndex+m-1)%list.size(),通过取余符号可以实现类型循环的操作。   注:没必要用循环链表,反而会更麻烦了。    方法二: 数学推导规律   n个数字的圆圈,不断删除第m个数字,我们把 最后剩下的数字 记为 f(n,m) 。   n个数字中第一个被删除的数字是(m-1)%n, 我们记作k, k=(m-1)%n 。   那么剩下的n-1个数字就变成了:0,1,……k-1,k+1,……,n-1,我们把下一轮第一个数字排在最前面,并且将这个长度为n-1的数组映射到0~n-2。   原始数字:k+1,……, n-1, 0, 1,……k-1   映射数字:0 ,……,n-k-2, n-k-1, n-k,……n-2   把映射数字记为x,原始数字记为y

lab 颜色模式的生理原因 黄色, 洋红色 刺眼。 绿色,蓝色,不刺眼。

谁都会走 提交于 2021-02-17 19:38:24
hsb 颜色模式理解了。 lab 颜色模式,都说是生理原因。没说是啥生理原因。 猜测:黄色, 洋红色 刺眼。 绿色,蓝色,不刺眼。 https://blog.csdn.net/self_mind/article/details/50679836 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/self_mind/article/details/50679836 RGB颜色空间 RGB颜色是红色(Red)、绿色(Green)和蓝色(Blue)三基色的字母缩写。RGB色彩模式是通过三种基本颜色的不同程度的迭加来产生各种各样的不同颜色。这个标准能够涵盖人类视力所能感知的所有颜色,是目前运用广泛的颜色系统之一。 RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同 的扫描仪扫描同一幅图像,会得到不同色彩的图像数据

漫画:什么是公有云、私有云和混合云?

与世无争的帅哥 提交于 2021-02-17 19:37:37
在上一篇《 什么是云计算 》发表之后,很多小伙伴表示终于知道到底什么是云计算了,能够帮到大家真的很开心。 上一篇文章的评论中,有几个朋友希望我们可以介绍下什么是公有云、私有云和混合云。那么这一篇,就给大家介绍下这几个概念。 为了方便大家理解,我们尽量用通俗的语言和举例子的方式讲解,并且文中还配备了漫画供大家参考学习。 随着最近几年的云计算技术的主键发展和普及,越来越多的企业通过采用云服务的方式来搭建网站及服务器。 为了方便不同需求的用户,很多云计算服务商都会提供很多形式的云服务,这里面比较常见的就是公有云、私有云以及混合云,还有些服务商会提供社群云(社区云)等。 那么这些云计算的形式有什么区别呢?用户又该如何选择呢? 公有云 公有云是为广大用户、个人或企业提供的云基础设施。公有云就是第三方的公有云供应商为用户提供可通过互联网访问的虚拟环境中的服务器空间。然后,用户可以通过购买云服务器、数据存储和其他与云相关的服务等公有云服务来访问这些服务器。 在公有云中,所有硬件、软件和其他支持性基础结构均为云提供商所拥有和管理。 在公有云中,你与其他组织或云“租户”共享相同的硬件、存储和网络设备。你可以使用 Web 浏览器访问服务和管理帐户。 公有云部署通常用于提供基于 Web 的电子邮件、网上办公应用、存储以及测试和开发环境。 如果拿租房子来举例,公有云就像是合租公寓,设施都是共用的

自定义日器选择器Dialog控件

眉间皱痕 提交于 2021-02-17 19:37:17
allprojects { repositories { google() jcenter() //新添加的 maven { url 'https://jitpack.io' } } } 导入依赖 implementation 'com.github.prolificinteractive:material-calendarview:1.4.3' xml文件中添加 < com.prolificinteractive.materialcalendarview.MaterialCalendarView xmlns:app = "http://schemas.android.com/apk/res-auto" android:id = "@+id/calendarView" android:layout_width = "match_parent" android:layout_height = "wrap_content" app:mcv_showOtherDates = "defaults" app:mcv_selectionColor = "#d862e2e4" /> 运行就会出现基本的日历 下面来将日期做成dialog的形式 , 最终效果如下 新建 dialog_calendar_view.xml 布局文件 <?xml version="1.0" encoding="utf-8"

洛谷P1421 小玉买文具

旧城冷巷雨未停 提交于 2021-02-17 19:36:24
这道题其实就是编程最基础的逻辑,没什么好讲的输入,输出就完了,非常简单! code: #include<cstdio> #include <iostream> using namespace std; int main() { int a,b,c; scanf( " %d %d " ,&a,& b); c =a* 10 + b; printf( " %d " ,c/ 19 ); return 0 ; } 来源: oschina 链接: https://my.oschina.net/u/4257455/blog/3829807

Python中的mixin模式

旧巷老猫 提交于 2021-02-17 19:35:35
转载注明,本文链接: http://www.bianbingdang.com/article_detail/167.html MixIn和继承的关系 面向对象三大特征,继承、封装、多态。第一次看到MixIn的时候,弄不懂这个和继承有什么关系/区别。首先,继承是父亲和儿子的关系,而python minxin是混入的意思。虽然,MinIn子类可以使用,父类的方法,但这并不是一种继承的关系,而是父类为子类提供了一种可用的方法。 继承的诟病 子类、父类继承关系过多,会导致思维上的混乱,比如我们的父类派生出很多个子类,我们会一直考虑继承了XXX,如果父类没有这个方法,则子类再创造一个方法,那么子类这个方法多个地方用到,我们又得把它加入到父类才行,这样下来并不是很合适。 MixIn MixIn的方式则没有那么得拘束,例如有个Persion类 class Person(): pass 这个人需要修电脑,但是我不会修怎么办。那我写个修电脑的方法给他,那显然不合适。那怎么办,刚好这个人有个朋友,过来帮帮忙吧。 class FriendMixIn(): def repair_compute: return True class Person(FriendMixIn): pass 那么很快就明白,MixIn相当于在原来的基础上,锦上添花。他是包含的意思,而不是继承的关系。

智慧路灯杆来了:蛰伏两年,乘5G东风带来千亿市场

霸气de小男生 提交于 2021-02-17 19:34:56
北京东城、海淀、通州等多地区试点的智慧路灯杆,杭州西湖边146套智慧路灯杆正式亮相……在这个假期,似乎路灯杆也在使出浑身解数为共和国献礼。 除了形态优美,这些智慧路灯杆还汇集灯光控制、LED屏幕显示、5G基站、智慧报警等多种功能于一身,并通过“多杆合一”使道路变得更加整洁,成为城市中一道靓丽的风景线。 1.jpg 其实,智慧路灯杆早在2016年就被多地试点,但一直未成气候。 今年,随着5G基站的建设推进和各地30多项政策的推出,北京、广东、上海、浙江等多地的智慧路灯杆如雨后春笋般出现在街道路口。 8月8日,广东省推出智慧路灯产业的第一个省级产业标准,这对利益交织、落地艰难的智慧路灯杆产业来说,无疑是一件改变命运的大事。 相关预测称,我国智慧路灯杆市场预计在今年达到300多亿,在2022年这一数字将达到1000亿。 智慧路灯杆产业在失落的2017-2018年里遭遇了什么挫折?又是什么“神丹妙药”令它在2019年复苏? 面对2022年可能达到1,000亿的巨大市场,通信巨头、传统灯商及安防企业等跨领域新玩家各自如何抢占市场? 这次,智慧路灯杆——智慧交通的毛细血管能否快速健康顺畅生长,进而联接其整个智慧城市的动脉?本文通过调查和走访,试图对这些问题进行解读。 01 2017-2018:技术已成熟,落地却受阻 从煤油灯到LED灯,路灯经历了漫长的进化史。而随着物联网技术的发展