算法竞赛中一类有关最大公因数 gcd 的求和问题

本文原载于 Math | UESTC_Jungle

如果遇到这样一类求和

T = \sum_{A \subseteq S}{(a_1, a_2, \dots, a_n, k_1, k_2, \dots, k_m) \cdot f(A)}

其中 a_i 是集合 A 里的元素,k_j 是额外需要求 gcd 的元素. 记 K = k_1k_2\cdots{}k_m.

可以枚举 gcd,转换为

T = \sum_{d|K}{\left(d \cdot \sum_{A \subseteq S}{[d = (a_1,a_2,\dots,a_n, k_1, k_2, \dots, k_m)]\cdot{}f(A)}\right)}

继续阅读“算法竞赛中一类有关最大公因数 gcd 的求和问题”

SSH 隧道、端口转发与内网穿透

这篇文章 讲得比较详尽了,除了动态转发没讲。最主要的就是在远程转发的时候注意服务端 /etc/ssh/sshd_configGatewayPorts 选项不要为 no(默认是 no),这个网上好多博客都没有讲到。有空再来补充一些细节。

相比于网上其他人用 autossh 等一些工具来维持连接,我选择了 Docker 作为一个进程守护的角色,配合 --restart=always 使用,感觉既优雅又简洁。为此我写了一个 image abreto/ssh-tunnel.

不越狱导出 iOS 壁纸或锁屏图案

许多年后,我早已找不到当时设置 iPhone 壁纸和锁屏的原始图片了,但是既然这图像还显示为背景和锁屏图案,那么就一定在某个地方躺着。

首先使用 iTunes 将手机完整备份到电脑里,然后下载这个软件读取备份。不用购买,免费版够用了。

选取最新的备份(必要的话需要输入备份密码),点击右边的 Expert Mode,(等待一会儿,非常慢)进入 HOME/Library/Springboard 这个文件夹,你可以看到 HomeBackground.cpbitmapLockBackground.cpbitmap 这两个文件,这就是主屏幕壁纸和锁屏背景的图像了,导出他们。

可以用这个脚本.cpbitmap 转换为 PNG 格式的图片,经测试这个脚本可以成功转换 iOS 12 备份导出的 .cpbitmap 文件。应该也有在线转换的网站,你可以自己搜搜。

ubuntu 18.04 下 wine 中文无法正常显示的解决方案

这里无法正常显示有两个可能,一个是乱码(奇奇怪怪的样子),一个是显示为一个一个的方框.前者是编码问题,后者是字体问题.

捣鼓了一天终于可以正常显示中文了,进行的操作有点多,我也不知道具体是哪一步弄好的. 有些时候中文还是有些丑,不过至少能看了,以后再来解决美观的问题.

继续阅读“ubuntu 18.04 下 wine 中文无法正常显示的解决方案”

受限 sftp 用户无法连接的问题

由于业务需要,我按照 这篇文章 的提示设置了一个无 shell 权限的用户,但是却连接不上。

启用 -v 选项后有如下输出

debug1: Authentication succeeded (password).
Authenticated to xx.xx.xx.xx ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Connection to xx.xx.xx.xx closed by remote host.
Transferred: sent 2444, received 1804 bytes, in 0.0 seconds
Bytes per second: sent 13890079.9, received 10252743.1
debug1: Exit status -1
Couldn’t read packet: Connection reset by peer

很苦恼,谷歌了很久后终于发现了两篇文章:https://unix.stackexchange.com/questions/274995/sftp-ssh-couldnt-read-packet-connection-reset-by-peerhttps://ubuntuforums.org/showthread.php?t=1482005

主要意思是说,在 /etc/ssh/sshd_config 里设置的 ChrootDirectory 的所有者必须是 root,而且该目录的组和其他用户不能有写权限。

ZOJ 3806 – Incircle and Circumcircle 解题报告

这是我写的第一篇解题报告,在此有必要说明一下为什么决定写这一篇解题报告。

这道题是我在集训队 Div.2 训练赛中第一次做出的一道全场只有唯一一个人过的题,也是我过的第一道防 ak 题。就想写个解题报告纪念一下。题目很简单,希望大佬们不要嘲笑我。

题意是这样的,给出三角形的内切圆半径 r 和外接圆半径 R,判断是否存在可能的三角形三边长并输出。

这题能过也有运气成分,主要是在思考的时候突然想到了用角度来算边。

继续阅读“ZOJ 3806 – Incircle and Circumcircle 解题报告”