2020-2021 ACM-ICPC, Asia Seoul Regional Contest

B. Commemorative Dice简单题。要你求出摇色子获胜的最大概率是多少。两个色子的点数和都为212121,若摇出的色子点数大于对方,则算获胜。观察可得无论挑哪个色子获胜的概率都是相同的。利用mapmapmap会自动排序的特性O(N2)O(N^2)O(N2)遍历即可。利用了概率论的基础知识。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int&gt
分类: 其他 发布时间: 03-21 10:21 阅读次数: 0

Northern Eurasia Finals Online 2020 队内训练

A. Almost Balanced Tree考虑一种做法,先分配权值为2的点,每次都将权值为2的点数二等分,若是偶数就往下分,否则自身先占用一个再往下分权值为2的点分配完后,对整一棵树的空位分配权值为1的点若不够分,则无解若多出来了,同样将1的个数二分往下#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int> pii;const int N
分类: 其他 发布时间: 03-21 10:21 阅读次数: 0

2020-2021 ACM-ICPC Brazil Subregional Programming Contest

A. Sticker Album很显然的一道概率dp题,状态转移方程如下:dp[i]=(dp[i+A]+dp[i+A+1]+...+dp[i+B])/(B−A+1)+1dp[i]=(dp[i+A]+dp[i+A+1]+...+dp[i+B])/(B-A+1)+1dp[i]=(dp[i+A]+dp[i+A+1]+...+dp[i+B])/(B−A+1)+1要留意一下当 A=0A=0A=0 时候的特判:dp[i]=(dp[i+A+1]+...+dp[i+B]+B−A+1)/(B−A)dp[i]= (dp
分类: 其他 发布时间: 03-21 10:21 阅读次数: 0

2020-2021 ICPC - Gran Premio de Mexico - Repechaje

A. Atsa’s Checkers Board给定一个n∗mn * mn∗m大小的矩阵,在该矩阵内放置黑色白色的石头,要保证每个2∗22 * 22∗2的矩阵都有两个黑石头和两个白石头,问有多少种摆放方式可以发现当有两块颜色相同的石头摆放在一起的时候,整个矩阵的摆放方式就确定了可以发现第一行至少有一对颜色相同石子相连的方案数是1<<m−21 << m - 21<<m−2,而第一列至少有一对颜色相同石子相连的方案数是1<<n−21 << n
分类: 其他 发布时间: 03-21 10:21 阅读次数: 0

《第一行代码》中的Git学习笔记

这是我的第一篇博客,我想开通博客的主要目的是帮助自己记录学习历程以及一些填坑操作的.第一篇就记录一下我之前的Git学习笔记吧,主要是学习的郭霖大神的《第一行代码》中Git时间的部分.也适合一些零基础的童鞋入门一下.《第一行代码》中Git时间分布在5.6、7.5、11.5、14.2等4个章节里.1、Git是一个开源的分布式版本控制工具.2、Git获取网址: http://gitforwindows....
分类: 其他 发布时间: 03-21 10:20 阅读次数: 0

Android框架之MVC模式(以登录为例)

Android框架现在常见的有MVC模式、MVP模式、MVVM模式。我们首先先明确一个概念:模式是指组织代码的结构方式,模式并不能提高代码的执行效率。模式是为了后续功能的扩展方便和代码的结构清晰而使用的。刚开始做Android开发时我们把代码都写在Activity里,这样代码的扩展性和结构清晰并不好。由此演化出Android的MVC模式,本篇文章也主要描述怎么将原来的写法抽取成...
分类: 其他 发布时间: 03-21 10:20 阅读次数: 0

Android框架之MVP模式(以登录为例)

    Android框架现在常见的有MVC模式、MVP模式、MVVM模式。我们首先先明确一个概念:模式是指组织代码的结构方式,模式并不能提高代码的执行效率。模式是为了后续功能的扩展方便和代码的结构清晰而使用的。    在上一篇文章中,由刚开始的把代码都写在Activity里演化出Android的MVC模式,但是在最后,我们可能还是感觉Activity中的代码有些繁杂,这是因为V层和C层的角色...
分类: 其他 发布时间: 03-21 10:20 阅读次数: 0

设计模式之观察者设计模式(回调)

观察者设计模式就是我们常说的回调。回调的本质就是一个对象的引用传递。1、找出被观察者;2、定义一个观察者接口,接口中的方法就是观察者感兴趣的事件;3、在被观察者中保存观察者的引用;4、在事件发生的时候,通知观察者,调用观察者中的方法。 写回调的思想:要暴露哪个类的数据,就在哪个类写接口;要暴露哪个参数就写什么方法;调方法是为了传参数。   A类   ...
分类: 其他 发布时间: 03-21 10:20 阅读次数: 0

Android自定义控件(View)

Android系统为我们提供了许多的原生控件,但是在某些情况系统原生控件并不能很好的满足我们的需求,这时就需要用到自定义控件了,并且自定义控件还可以实现很多炫酷的效果。 按类型来划分的话,自定义控件的实现方式基本可以分为三种,自绘控件、组合控件、继承控件。自绘控件:这个控件上所展现的内容全部都是自己绘制出来的,自己绘制不同于系统原生的控件,许多炫酷的自定义控件效...
分类: 其他 发布时间: 03-21 10:20 阅读次数: 0

Android事件传递机制(一)流程梳理

事件传递或者称之为事件分发是Android中非常重要和核心的知识点,我们在手机上的任何一次点击或者触摸都会涉及到事件传递,所以非常有必要好好了解一下相关知识。当一个Touch事件发生后,首先是当前的Activity拿到该事件,然后Activity会将事件传递给Window,然后Window再将事件传递给当前界面的根布局(顶级父View),即按照Activity -> Window -&g...
分类: 其他 发布时间: 03-21 10:20 阅读次数: 0

Android事件传递机制(二)情景分析

在上一篇文章Android事件传递机制(一)流程梳理中我们梳理了事件传递的流程,前文的分析我们好像是将一个事件作为一个整体来分析的,其实不然。前文中我们也提到了当onTouchEvent()方法返回true表示处理事件时,日志流程会打印多次,这是因为TouchEvent事件包含ACTION_DOWN、ACTION_MOVE、ACTION_UP等事件,当onTouchEvent()方法返回tru...
分类: 其他 发布时间: 03-21 10:20 阅读次数: 0

Android Studio3.4使用Gradle打包apk后重命名apk文件名称

Android Studio除了可以使用可视化工具来打包带有正式签名的apk文件,也可以使用Gradle构建工具来进行打包。1、Gradle打包配置在app\build.gradle文件中的android闭包中添加:signingConfigs { debug { storeFile file(KEY_PATH)//签名文件路径 ...
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0

Android : RecyclerView 最简单优雅的添加分割线 ItemDecoration

1、自定义分割线private class SpaceItemDecoration extends RecyclerView.ItemDecoration { private int mSpace; public SpaceItemDecoration() { float density = getResources().getDis...
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0

Intent传递数据大小限制问题:android.os.TransactionTooLargeException: data parcel size xxxxxxx bytes

两个Activity跳转,我们一般会用Intent传递数据,但如果传递数据太大会出现如下异常:2020-10-23 09:52:22.142 5506-5506 E/AndroidRuntime: FATAL EXCEPTION: main Process: jdlf_scgl_zp_android.ui.m990_system, PID: 5506 java.lang.RuntimeException: Failure from system at android.a
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0

RecyclerView中CheckBox选中错乱问题

onBindViewHolder中如下代码holder.checkBox.setChecked(model.IsCheck);//CheckBox事件监听holder.checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> model.IsCheck = isChecked);会造成状态错乱,看到很多博主的文章,感觉都没说到点子上。因为这个model是用方法返回的position获取的,但是滑动的时候条目会重用,.
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0

Database-0:数据库基础

〇、前言一直做Android开发,学习的数据库知识都生疏了,此次复习就将数据库知识做一个完整记录,以期温故而知新。一、数据库的概述数据库是用来存储和管理(增删改查)数据的仓库。二、常见的数据库管理系统数据库分为关系型数据库(Relational Database)和非关系型数据库(NOSQL:Not Only SQL)。其中非关系型数据库主要是用来在内存中存储缓存数据,代表作有MongoDb、Redis等;关系型数据库是用来存储具有关系的数据,常见的关系型数据库管理系统(RDBMS:Re
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0

Database-1:SQL语句介绍及其DDL

一、SQL的概念SQL:Structured Query Language是“结构化查询语言”,它是对关系型数据库的操作语言,就是定义了一些操作关系型数据库的统一规范。而每一种数据库管理系统之间又存在一些不同之处,这些不同之处称之为"方言"。二、SQL的分类SQL语句分为以下四类:DCL(Data Control Language):数据控制语言,用来操作用户,完成用户权限的相关控制(开发几乎用不到); DDL(Data Definition Language):数据定义语言,用来操作库、
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0

Database-2:SQL语句之DML及约束

〇、前言 DML(Data Manipulation Language):数据操作语言,用来操作表中存储的数据,但是只能完成增、 删 、改;一、增加数据 insert into [表名] (字段列名集合)values (值的集合) ; 多个列名之间‘,’分割,多个值之间‘,’分割,值的顺序和列名顺序一一对应。 如:insert into stu (sid, name, sal) values (1, "ZhangSan", 45.67) ; ...
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0

Database-3:SQL语句之DQL

〇、前言 DQL(Data Query Language):数据查询语言,用来操作表中存储的数据,但是只能完成查。一、MySQL查询语句 SELECT selection_list /*要查询的列名称,多个字段名称使用‘,’隔开,‘*’表示查询所有列*/FROM table_list /*要查询的表名称*/WHERE condition /*行条件*/GROUP BY grouping_columns /*对结果分组*/...
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0

Kotlin语言学习笔记

一、前言在2017年的Google开发者大会上Google引入了新的Android开发语言Kotlin,2019年的开发者大会上Google更进一步,宣布KotlinFrist。伴随的Google的推动,这几年越来越多的Android开发从Java转为Kotlin,一些著名的三方库也在采用Kotlin重写。所以是时候总结一下Kotlin的学习笔记了,以期温故而知新。...
分类: 其他 发布时间: 03-21 10:19 阅读次数: 0