原内容已过期,请访问CUPOJ开发文档查看最新版本 考虑到校内网环境的不确定性,因此把文档迁移到外面,方便查阅。后续会专门编写专用wiki。 本文使用GitHub进行版本管理,若需要访问旧版文档,请前往CUP-Online-Judge-doc查看过往commit。
原内容已过期,请访问CUPOJ开发文档查看最新版本 考虑到校内网环境的不确定性,因此把文档迁移到外面,方便查阅。后续会专门编写专用wiki。 本文使用GitHub进行版本管理,若需要访问旧版文档,请前往CUP-Online-Judge-doc查看过往commit。
在某些情况下,我们需要为一台可被外网访问但无法连接外网的服务器运行需要联网的命令行程序。部分命令行程序如yum、wget、npm可以通过软件内部的配置文件设置代理,而大多数软件并未特地针对这些问题进行设置。 为了能够在这样的环境下使我们的程序通过代理访问外网,我们需要编写脚本,使得运行的程序通过我们自己设置能够访问外网的HTTP代理连接外网。 在/usr/local/bin/文件夹下建立proxy文件,文件内容为 #!/bin/bash http_proxy=your_http_proxy https_proxy=…
[ERROR] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-000001 - Can 't create/write to file '/var/run/mysqld/mysqld.pid' (OS errn…
看到知识星球圈内有人开始做年度总结,觉得自己也需要对自己这一年的经历进行一下整理和反思,于是写下这篇流水账。 流水账 自去年双十一买下这台黑苹果主机以后,我在学习编程方面有了更大的突破。不得不说macOS更适合用来做学习和开发,而Windows除了打游戏比较强以外对我平常的帮助并不大。于是我变成了mac吹软黑,日常喷Windows。同时在开发维护Online Judge也开始写下Update log并且尝试描述每次git push增删代码的内容。 截至2018年12月30日,我的github今年累计commit 9…
#include <bits/stdc++.h> using namespace std; using ll = long long; map<char, ll> L; map<char, ll> R; string rePolish(const string &str) { string ret; stack<char> s; s.push('#'); for (ll i = 0; i < str.length(); i++) { char t = s…
题解 由于给定序列,$o$的概率一定是1,$x$的概率一定是0. $?$的期望实际上是0.5 我们要求的是$E_{x^2}$,令$dp_i$代表到第i位时$E_{x^2i}$,$l_i$为到达$i$位置时的期望长度。根据上述条件,$o$时$l_i = l_{i-1} + 1$,$x$时$l_i = 0$,而$x$的时候$l_i = 0.5 \times (l_{i-1} + 1)$ 根据$l$,观察$E_i - E_{i-1}$,可以发现$x^2 - (x - 1)^2 = 2x + 1$ 因此$dp_i = dp…
题意 给定n和 a[i] b[i], 已知FWT(a[i]) * FWT(ans[i]) = FWT(b[i]),求ans[i] (XOR) 题解 FWT板题,赛后学习了一个 AC代码 #include <iostream> using namespace std; using ll = long long; ll MOD = 1e9+7; ll inv2; int n; const int maxn = (1 << 20) + 5; ll a[maxn],b[maxn]; ll qpow(…
题意 略 题解 由于这是一个不用维护原有序列的操作,我们可以考虑维护一个ST表进行RMQ查询。 这个RMQ是用来干什么呢? 根据题目数据范围,我们知道这道题不能容忍$\mathcal O(n^2)$及以上的算法 我们必须要在$\mathcal O(nlogn)$的时间复杂度下完成所有的操作。 维护一个dp数组,$dp[cur] = dp[first_greater_than_cur] + 1$ 这个时候就需要我们用RMQ了。二分$[cur,n]$,找到第一个比当前元素大的元素的位置,这时dp值就可以加1. 贪心预处…
题解 注意 这和数独不一样,是要求子矩阵中每一行 或 每一列的字符只出现一次 这个问题坑了不少人 剩下的按照官方题解就完成 • 注意到52种字符,子矩形最多52行,52列。 • 一个5252nm的做法是显然的,可以优化到52*nm。 • 枚举上下边界(最多差52) • 当左端点确定后,右端点的范围是连续的一段,并且单调 • 扫一遍即可,可以使用位运算降低复杂度。 AC代码 #include <iostream> #include <vector> #include <algorithm…
题意 初始长度$2^n$的01序列,要从^&|中选择n个运算符。 • 序列长度:$(2^n)\to (2^{n-1})\to ... \to 16\to 8\to 4\to 2\to 1$。 • 问有多少个可能,使得运算后剩下的一个字符为1。 题解 事实上这道题暴力就是标准做法,但是dfs的过程一定是$3^n$的,会超出题目要求时间。我们必须考虑剪枝或者对小范围数据进行优化。 官方题解解答 • 暴力的复杂度是$3^n$的,只需要再优化一点点! • 如果剩下了$16$个变量,可能性只有$65536$个。 • …