可以使用Recevier启动透明Activity来实现
Recevier 实现
网络上很多
具体Receiver的实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.example.myapplication;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))...
Thursday, November 22, 2018
Wednesday, November 21, 2018
算法题-推荐潜在好友
admin
November 21, 2018
No comments
昨天写的一道算法题
图算法:推荐潜在好友 by Hongzhi Shi
时间限制: 2000 ms 内存限制: 6000 KB
但是跟图算法没半毛钱关系
关键是过内存上的限制
问题描述
社交网络可以用一个图来描述。假定有N个使用者,每个使用者可以用一个节点表示,如果使用者m和使用者n已经是线上朋友,表示两个节点已经连接,即图中包含连接m和n的边。在这个练习中,我们将为使用者推荐可能的朋友。
给定表示一个社交网络的图,包含N个节点和M条边。如果节点m和n不直接相连,但与K个以上(包括K个)的相同节点连接,我们可以认为他们可能认识,请给出指定用户的潜在好友(暂时还未直接连接的节点)。对于给定用户,请将其所有潜在好友按照他们共同好友数量由多到少排列输出,对于共同好友数量相同的情况,请按照序号从小到大排列输出。
输入格式
输入的第一行是三个整数N,K,U。其中N表示社交网络中用户的个数,即网络节点的个数。K表示共同好友数不少于K的两个用户才互相算作潜在好友。U表示需要输出标号为U的用户的潜在好友,对应矩阵行/列标号为U的节点,U从0开始计。
输入的第二行到第N+1行是用户之间的图的邻接矩阵:0代表不是好友,1代表是好友。
输出格式
输入的第一行是三个整数N,K,U。其中N表示社交网络中用户的个数,即网络节点的个数。K表示共同好友数不少于K的两个用户才互相算作潜在好友。U表示需要输出标号为U的用户的潜在好友,对应矩阵行/列标号为U的节点,U从0开始计。
输入的第二行到第N+1行是用户之间的图的邻接矩阵:0代表不是好友,1代表是好友。
输入样例
1
2
3
4
5
6
7
6...
Saturday, November 17, 2018
V2Ray + iptables 实现全局代理
admin
November 17, 2018
No comments
设置全局代理的目的懒得烦那堵破墙
ALL_PROXY有一定的局限性, 所以还是需要全局代理舒服点
由于V2Ray迭代速度太快, 写上我现在使用的版本号 V2Ray 4.5.0 (Po) 20181116
V2Ray
思路是使用
iptables 将流量转发到 V2Ray 的透明代理上
具体如何实现参考V2Ray Dokodemo-door
iptables
没有了解过iptables请Google了解下
重点知道iptables中nat的是干啥的, 还有iptables的常用命令即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh
# 删除设置
# iptables -t nat -F
# iptables -t nat -X...
Tuesday, November 13, 2018
MacOS 默认群组之间的区别
admin
November 13, 2018
No comments
本文讲解MacOS默认群组wheel admin staff everyone
wheel 是系统管理员组, 默认有用户root, 此组中的用户拥有系统最高权限, 100%的控制系统, wheel源于BSD UNIX, 而 wheel又有掌舵意思, 意味这掌控着系统方向
admin 是用户管理员组, 在此组中的成员可以通过sudo命令暂时升级为root去执行命令, 和wheel同样身为管理员, 但是在平时, 如果不使用sudo的话就和普通用户没什么区别, 安全性更好
staff 本机的用户都会在此组中, 注意, 并不包括用户guest
everyone 直译过来就是任何人, 包括任何用户, 比如guest或者是远程连接过来的用户
reference
https://superuser.c...
Wednesday, November 7, 2018
Vim 替换基本命令讲解
admin
November 07, 2018
No comments
使用Vim很长时间了, 我对于替换命令的印象还是最基本的这样:%s/pattern/string/g
所以写下本文是为了好好梳理一下, 本文只总结最常用的方法对于不常用或比较复杂的不进行介绍
本文基于Vim Docs, 想看官方文档的请在Vim中运行:h :s
基本格式
替换命令的基本格式是:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
我们可以分成
[range]
s[ubstitute]
{pattern}
{string}
[flags]
[count]来进行讲解
[range]
range太强大, 很多地方都可以用的到, 所以我单独写了一篇: Vim range详解
s[ubstitute]
这里的s[ubstitute]代表动作为替换, 由于substitute太长, 一般简写s即可
{pattern}
用来匹配的正则表达式
{string}
用来替换的内容
支持正则表达式的子匹配
\0 匹配到的字符串
\1 第一个子匹配
\2 第二个子匹配…以此类推
\r 换行
\b backspace
\t table
\\ \
[flags]
Options
c confirm,...
Subscribe to:
Posts (Atom)