- 博客(495)
- 收藏
- 关注
原创 RecycleView的adpter简单用法
整体代码class Curr_allinfor_adpter (var list: List<curriculum>, val context: Context, var viewmodel: Curr_viewmodel,var flag : Boolean) : RecyclerView.Adapter<Curr_allinfor_adpter.MyViewHolder>() {//继承adpter inner class MyViewHolder(var it
2020-11-11 09:38:04
386
原创 Fargment/navigation 简单使用 kotlin
先用一下Kotlin的优点,直接使用id访问界面控件gradle中添加这句话apply plugin: 'kotlin-android-extensions'在文件中导入库import kotlinx.android.synthetic.main.fragment_detail.*创建Fargment创建Navigation选中res文件夹添加fragment到navigation添加navigation到activityNavController的获取在activi
2020-10-26 16:33:17
425
原创 edittext addTextChangedListener方法 kotlin
具体代码 editTextTextPersonName?.addTextChangedListener(object :TextWatcher{ override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { Log.d("DASD","1") } override fun onTextChanged(p0:
2020-10-26 16:31:38
4480
1
原创 ViewModel和MutableLiveData的简单使用
MyViewModel简介ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。注意:要将 ViewModel 导入 Android 项目,请参阅 Lifecycle 版本说明中关于声明依赖项的说明。Android 框架可以管理界面控制器(如 Activity 和 Fragment)的生命周期。Android 框架可能会决定销毁或重新创建界面控制器,以响应完全不受您控制的某些用户操作或设备事件。如果系统销毁或重新创
2020-10-24 10:35:45
2766
2
原创 约数之和/最大公约数模板
#include <iostream>#include <algorithm>#include <unordered_map>#include <vector>using namespace std;typedef long long LL;const int N = 110, mod = 1e9 + 7;int main(){ int n; cin >> n; unordered_map<i
2020-10-23 09:24:31
143
原创 试除法求约数模板/约数个数
vector<int> get_divisors(int x){ vector<int> res; for (int i = 1; i <= x / i; i ++ ) if (x % i == 0) { res.push_back(i); if (i != x / i) res.push_back(x / i); } sort(res.begin(), r
2020-10-23 09:14:45
178
原创 分解质因数模板
void divide(int x){ for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) { int s = 0; while (x % i == 0) x /= i, s ++ ; cout << i << ' ' << s << endl; } if (x >
2020-10-23 09:12:16
106
原创 AcWing 222. 青蛙的约会
题目两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。我们把这两只青蛙分别叫做青蛙
2020-10-23 09:08:46
111
原创 android studio 屏幕翻转
android:screenOrientation属性unspecified,默认值,由系统决定,不同手机可能不一致landscape,强制横屏显示portrait,强制竖屏显behind,与前一个activity方向相同sensor,根据物理传感器方向转动,用户90度、180度、270度旋转手机方向,activity都更着变化sensorLandscape,横屏旋转,一般横屏游戏会这样设置sensorPortrait,竖屏旋转nosensor,旋转设备时候,界面不会跟着旋转。初始化界面方
2020-10-22 14:28:42
1696
原创 在Android Studio中使用Translations Editor
点击string.xml文件并点击下图open editor或者点击以下任意一个字符,左边黄色的灯泡提示点一下,下面有open editor之后进入编辑页面点击一下图标,选着需要的语言之后会出现红色方框的部分,在里面填上对应的key的某种语言即可如果要删除某种语言,就删除对应的以下string.xml文件即可...
2020-10-22 14:13:01
1337
原创 拓展欧几里得算法模板
int exgcd(int a, int b, int &x, int &y){ if (!b) { x = 1, y = 0; return a; } int d = exgcd(b, a % b, y, x); y -= a / b * x; return d;}
2020-10-22 13:44:15
106
原创 AcWing 203. 同余方程
题目求关于x的同余方程 ax ≡ 1(mod b) 的最小正整数解。输入格式输入只有一行,包含两个正整数a,b,用一个空格隔开。输出格式输出只有一行,包含一个正整数x,表示最小正整数解。输入数据保证一定有解。数据范围2≤a,b≤2∗109输入样例:3 10输出样例:7思路本题求线性同余方程,那么只要用扩展欧几里得算法求出特解,之后用(x % b + b) % b 求最小解即可代码#include <cstring>#include <iostream&
2020-10-22 13:39:24
182
原创 AcWing 220. 最大公约数
题目给定整数N,求1<=x,y<=N且GCD(x,y)为素数的数对(x,y)有多少对。GCD(x,y)即求x,y的最大公约数。输入格式输入一个整数N输出格式输出一个整数,表示满足条件的数对数量。数据范围1≤N≤107输入样例:4输出样例:4思路题目要求x和y最大公约数是素数,转化gcd(x,y)为素数,设置p=gcd(x,y),即有gcd(x/p,y/p)=1,即求N/p以内所有互质的数字的对数,用线性筛欧拉函数的方法求以下前缀和即可代码#include &l
2020-10-22 13:30:19
204
1
原创 线性筛欧拉函数模板
const int N = 1010;int primes[N], cnt;bool st[N];int phi[N];void init(int n){ phi[1] = 1; for (int i = 2; i <= n; i ++ ) { if (!st[i]) { primes[cnt ++ ] = i; phi[i] = i - 1; } ..
2020-10-22 09:10:57
158
1
原创 AcWing 201. 可见的点(欧拉函数)
题目在一个平面直角坐标系的第一象限内,如果一个点(x,y)与原点(0,0)的连线中没有通过其他任何点,则称该点在原点处是可见的。例如,点(4,2)就是不可见的,因为它与原点的连线会通过点(2,1)。部分可见点与原点的连线如下图所示:编写一个程序,计算给定整数N的情况下,满足0≤x,y≤N的可见点(x,y)的数量(可见点不包括原点)。输入格式第一行包含整数C,表示共有C组测试数据。每组测试数据占一行,包含一个整数N。输出格式每组测试数据的输出占据一行。应包括:测试数据的编号(从1开始),
2020-10-22 09:10:02
311
1
原创 Android seekbar的监听器创建 Kotlin
seekBar.setOnSeekBarChangeListener(object :SeekBar.OnSeekBarChangeListener{ override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {//如果插件的值变了 //p0 表示是哪个seekbar(以下同理) p1是当前值 p2表示是否是用户改变的值 } overrid.
2020-10-21 14:21:11
1081
1
原创 Android改变imageview的图片(kotlin)
imageView3.setImageResource(R.drawable.ic_baseline_add_location_24)//里面用drawable中的文件即可
2020-10-21 13:52:14
2695
原创 关于Android Studio中添加图片进入drawable但是无法使用的问题
将文件复制进入drawable文件夹没有办法使用可能是因为图片的名称不规范,一定要小写字母和下划线,不能数字开头
2020-10-20 09:05:49
4901
1
原创 AcWing 198. 反素数(dfs求约数最多并且是其中最小的数)
题目对于任何正整数x,其约数的个数记作g(x),例如g(1)=1、g(6)=4。如果某个正整数x满足:对于任意的小于x的正整数 i,都有g(x)>g(i) ,则称x为反素数。例如,整数1,2,4,6等都是反素数。现在给定一个数N,请求出不超过N的最大的反素数。输入格式一个正整数N。输出格式一个整数,表示不超过N的最大反素数。数据范围1≤N≤2∗109输入样例:1000输出样例:840思路题目其实要求的是约数最多并且是其中最小的数由于2∗3∗5∗7∗11∗13∗17∗
2020-10-11 11:18:13
240
原创 AcWing 1294. 樱花(阶层分解质因数)
题目给定一个整数 n,求有多少正整数数对 (x,y) 满足 1x+1y=1n!。输入格式一个整数 n。输出格式一个整数,表示满足条件的数对数量。答案对 109+7 取模。数据范围1≤n≤106输入样例:2输出样例:3样例解释共有三个数对 (x,y) 满足条件,分别是 (3,6),(4,4),(6,3)。推导代码#include <cstring>#include <iostream>#include <algorithm>usin
2020-10-11 11:11:21
263
原创 AcWing 1290. 越狱
题目监狱有连续编号为 1 到 n 的 n 个房间,每个房间关押一个犯人。有 m 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱。输入格式共一行,包含两个整数 m 和 n。输出格式可能越狱的状态数,对 100003 取余。数据范围1≤m≤108,1≤n≤1012输入样例:2 3输出样例:6样例解释所有可能的 6 种状态为:(000)(001)(011)(100)(110)(111)。思路正着不行那就反向思考
2020-10-10 14:23:08
139
原创 快速幂模板
代码int qmi(int a, int k){ int res = 1; while (k) { if (k & 1) res = (LL)res * a % mod; a = (LL)a * a % mod; k >>= 1; } return res;}
2020-10-10 14:04:05
107
原创 阶乘分解模板
就是线性筛后不断分解即可代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 1000010;int primes[N], cnt;bool st[N];void init(int n){ for (int i = 2; i <= n; i ++ ).
2020-10-10 13:53:30
92
原创 AcWing 196. 质数距离(区间筛质数)
题目给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对。同时,你还需要找到距离最远的两个相邻质数D1和D2(即D1-D2是最大的),如果存在相同距离的其他相邻质数对,则输出第一对。输入格式每行输入两个整数L和U,其中L和U的差值不会超过1000000。输出格式对于每个L和U ,输出一个结果,结果占一行。结果包括距离最近的相邻质数对和距离最远的相邻质数对。(具体格式参照样例)如果L和U之间
2020-10-10 13:48:18
198
原创 AcWing 1293. 夏洛克和他的女朋友(二分图染色+素数判断)
题目夏洛克有了一个新女友(这太不像他了!)。情人节到了,他想送给女友一些珠宝当做礼物。他买了 n 件珠宝,第 i 件的价值是 i+1,也就是说,珠宝的价值分别为 2,3,…,n+1。华生挑战夏洛克,让他给这些珠宝染色,使得一件珠宝的价格是另一件珠宝的价格的质因子时,两件珠宝的颜色不同。并且,华生要求他使用的颜色数尽可能少。请帮助夏洛克完成这个简单的任务。输入格式只有一行一个整数 n,表示珠宝件数。输出格式第一行一个整数 k,表示所使用的颜色数;第二行 n 个整数,表示第 1 到第 n
2020-10-09 09:35:36
247
原创 线性筛模板
int primes[N], cnt;//primes记录下所有素数bool st[N];//用于判断某个数是不是素数void init(int n){ for (int i = 2; i <= n; i ++ ) { if (!st[i]) primes[cnt ++ ] = i; for (int j = 0; primes[j] * i <= n; j ++ ) { st[primes[j] *
2020-10-09 09:22:40
121
1
原创 AcWing 1292. 哥德巴赫猜想(判断素数)
题目哥德巴赫猜想的内容如下:任意一个大于 4 的偶数都可以拆成两个奇素数之和。例如:8=3+520=3+17=7+1342=5+37=11+31=13+29=19+23现在,你的任务是验证所有小于一百万的偶数能否满足哥德巴赫猜想。输入格式输入包含多组数据。每组数据占一行,包含一个偶数 n。读入以 0 结束。输出格式对于每组数据,输出形如 n = a + b,其中 a,b 是奇素数。若有多组满足条件的 a,b,输出 b−a 最大的一组。若无解,输出 Goldbach’s conj
2020-10-09 09:20:04
374
原创 AcWing 164. 可达性统计(每个点能到达的点的个数=拓扑排序+dp)
题目给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。输入格式第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边。输出格式输出共N行,表示每个点能够到达的点的数量。数据范围1≤N,M≤30000输入样例:10 103 82 32 55 95 92 33 94 82 104 9输出样例:1633211111思路题目求每一个点能到达点的个数,由于是有向无环图,那么可以用拓扑排序求出点与点之间的依赖
2020-09-28 13:27:28
672
原创 Awcing1192. 奖金(差分约束/拓扑排序)
题目由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。于是Mr.Z下令召开 方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工 的奖金应该比 高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元,且必须是整数。输入格式第一行包含整数 ,分别表示公司内员工数以及参会代表数。接下来 行,每行
2020-09-28 13:16:32
357
原创 AcWing 1185. 单词游戏(欧拉回路+边点互换)
题目有 N 个盘子,每个盘子上写着一个仅由小写字母组成的英文单词。你需要给这些盘子安排一个合适的顺序,使得相邻两个盘子中,前一个盘子上单词的末字母等于后一个盘子上单词的首字母。请你编写一个程序,判断是否能达到这一要求。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含整数 N,表示盘子数量。接下来 N 行,每行包含一个小写字母字符串,表示一个盘子上的单词。一个单词可能出现多次。输出格式如果存在合法解,则输出”Ordering is possible.”,否则输出”T
2020-09-27 10:22:28
395
原创 欧拉回路求字典序最小路径模板
#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 510;int n = 500, m;int g[N][N];int ans[1100], cnt;int d[N];void dfs(int u){ for (int i = 1; i <= n; i ++ ) if (g[u][i]
2020-09-27 10:01:28
293
原创 AcWing 1124. 骑马修栅栏(欧拉回路字典序最小路径)
题目农民John每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。John是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个栅栏。你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。John能从任何一个顶点(即两个栅栏的交点)开始骑马,在任意一个顶点结束。每一个栅栏连接两个顶点,顶点用 1 到 500 标号(虽然有的农场并没有 500 个顶点)。一个顶点上可连接任意多( ≥1 )个栅栏。所有栅栏都是连通的(也就是你可以从
2020-09-27 10:00:56
280
原创 AcWing 1184. 欧拉回路
题目给定一张图,请你找出欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次。输入格式第一行包含一个整数 t,t∈{1,2},如果 t=1,表示所给图为无向图,如果 t=2,表示所给图为有向图。第二行包含两个整数 n,m,表示图的结点数和边数。接下来 m 行中,第 i 行两个整数 vi,ui,表示第 i 条边(从 1 开始编号)。如果 t=1 则表示 vi 到 ui 有一条无向边。如果 t=2 则表示 vi 到 ui 有一条有向边。图中可能有重边也可能有自环。点的编号从 1 到 n。
2020-09-27 09:31:42
234
原创 Acwing1123. 铲雪车(欧拉回路)
题目随着白天越来越短夜晚越来越长,我们不得不考虑铲雪问题了。整个城市所有的道路都是双向车道,道路的两个方向均需要铲雪。因为城市预算的削减,整个城市只有 1 辆铲雪车。铲雪车只能把它开过的地方(车道)的雪铲干净,无论哪儿有雪,铲雪车都得从停放的地方出发,游历整个城市的街道。现在的问题是:最少要花多少时间去铲掉所有道路上的雪呢?输入格式输入数据的第 1 行表示铲雪车的停放坐标 (x,y),x,y 为整数,单位为米。下面最多有4000行,每行给出了一条街道的起点坐标和终点坐标,坐标均为整数,所有街道
2020-09-27 08:56:54
431
原创 AcWing 378. 骑士放置(最大独立集+二分图+最大匹配)
题目给定一个 N*M 的棋盘,有一些格子禁止放棋子。问棋盘上最多能放多少个不能互相攻击的骑士(国际象棋的“骑士”,类似于中国象棋的“马”,按照“日”字攻击,但没有中国象棋“别马腿”的规则)。输入格式第一行包含三个整数N,M,T,其中T表示禁止放置的格子的数量。接下来T行每行包含两个整数x和y,表示位于第x行第y列的格子禁止放置,行列数从1开始。输出格式输出一个整数表示结果。数据范围1≤N,M≤100输入样例:2 3 0输出样例:4思路题目要求一个棋盘里最多能放多少个互不攻击的
2020-09-24 15:28:40
227
原创 AcWing 376. 机器任务(最小覆盖点+二分图最大匹配)
题目有两台机器 A,B 以及 K 个任务。机器 A 有 N 种不同的模式(模式0~N-1),机器 B 有 M 种不同的模式(模式0~M-1)。两台机器最开始都处于模式0。每个任务既可以在A上执行,也可以在B上执行。对于每个任务 i,给定两个整数 a[i] 和 b[i],表示如果该任务在 A 上执行,需要设置模式为 a[i],如果在 B 上执行,需要模式为 b[i]。任务可以以任意顺序被执行,但每台机器转换一次模式就要重启一次。求怎样分配任务并合理安排顺序,能使机器重启次数最少。输入格式输入
2020-09-24 14:41:05
173
原创 AcWing 372. 棋盘覆盖(二分图最大匹配)
题目给定一个N行N列的棋盘,已知某些格子禁止放置。求最多能往棋盘上放多少块的长度为2、宽度为1的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。输入格式第一行包含两个整数N和t,其中t为禁止放置的格子的数量。接下来t行每行包含两个整数x和y,表示位于第x行第y列的格子禁止放置,行列数从1开始。输出格式输出一个整数,表示结果。数据范围1≤N≤100输出样例:8 0输出样例:32思路题目要求一个矩阵内最多能放入多少个12的小方块,这题先要看出来是个二分图
2020-09-24 14:11:45
180
原创 匈牙利算法:二分图最大匹配
#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 510, M = 100010;int n1, n2, m;int h[N], e[M], ne[M], idx;int match[N];bool st[N];void add(int a, int b){ e[idx] = b, ne[idx] = h[
2020-09-24 14:03:48
75
原创 染色法模板
#include <iostream>#include <queue>#include <cstring>#include <algorithm>using namespace std;const int N = 1e5 + 5;int h[N]; int ne[N * 2]; int e[N * 2];int idx;int n, m;int colour[N];void add(int a, int b) { e[idx] = b;
2020-09-24 13:31:14
168
原创 Acwing257. 关押罪犯(染色法+二分)
题目S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 c 的冲突事件。每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到 S 城 Z 市长那里。公务繁忙的 Z 市长只会去
2020-09-24 13:29:24
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人