关于Linux(Ubuntu)
之前打ICPC用的wf镜像,不适应ubuntu系统的各种操作,其实队伍里面只有我不会。本文记录一些日常使用ubuntu中遇到的一些问题,以后如果上相关的选修课也可以用用
安装软件一些软件给linux系统提供了好几种版本,比如X86,ARM,LoogArch、MIPS等,这四种版本的区别:X86(或x86_64): 适用于大多数个人计算机和服务器的标准桌面和服务器硬件,通常是Intel或AMD处理器。ARM: 适用于基于ARM架构的设备,如某些嵌入式系统、智能手机、平板电脑等。loongArch(龙芯架构): 龙芯是中国的一个处理器架构,适用于支持龙芯架构的硬件。MIPS: 适用于MIPS架构的硬件,这种架构在嵌入式系统和某些网络设备中较为常见。
1234查看ubuntu系统的版本信息lsb_release -a查看硬件架构uname -m
选了架构之后,下载的软件包又分为三种:三个不同的包格式(.rpm、.deb、AppImage)在Linux中用于软件管理,它们有一些基本的区别:.rpm(Red Hat Package Manager): 主要用于基于Red Hat的发行版,如Fe ...
2023ICPC杭州站打铁游记
由于杭州站题目将用作UCup Stage Hangzhou,博客会在24年2月之后再发题解本身就是蒟蒻,本来也没想能有多好的成绩就看能不能拿到铜牌,结果不出意外的打铁了。只能说菜就多练确实技不如人,不过也正常没打过铁都不好意思说自己参加过ICPC。day-1周五下午出发,相比回家而言杭州很快就到了唯一难受的是东站离杭师大太远了乘地铁站了半天才到定的公寓,中途还发现因为比赛用的是Ubuntu系统win下的对拍程序还用不了,晚上临时整了个简陋的linux对拍器,手抄代码准备明天热身赛测试。day0早上七点多起床,去杭师大吃早饭结果精准踩雷吃到了逆天菜包,馅是豆腐+辣椒而且馅还少吃一半实在咽不下去就倒掉了,然后感觉自己又饿又想吐。走到叔同剧场签完到领了队服拍了合照,顺便吐槽了这队服颜色感觉像送外卖的(一黄一蓝的简称美团大战饿了么)。下午2.30开热身赛,开了两题看了眼排名感觉还可以过了铜牌线(当然很多大佬熟悉比赛环境了就懒得打所以排名会靠前一些)。自我感觉明天可以手速铜因为看很多人也是第一次参赛。测试完对拍代码然后润回公寓睡觉了。回到公寓看见群里在发热身赛直播录像,然后发现自己正对着摄像头, ...
ICPC2021 Nanjing R 签到+铜牌题
补题链接:https://codeforces.com/gym/103470或https://www.luogu.com.cn/contest/143839
A.Oops, It’s Yesterday Twice Moren*m的矩阵里面每个格子都有一个袋鼠你可以通过在键盘上按下U、D、L、R按钮来控制袋鼠。袋鼠将根据您按下的按钮同时移动。具体而言,对于位于第i行和第j列的单元格,用(i,j)表示:
按钮U:如果i > 1,则它将移动到(i - 1,j)。否则,它将保持在相同的网格中。
按钮D:如果i < n,则它将移动到(i + 1,j)。否则,它将保持在相同的网格中。
按钮L:如果j > 1,则它将移动到(i,j - 1)。否则,它将保持在相同的网格中。
按钮R:如果j < n,则它将移动到(i,j + 1)。否则,它将保持在相同的网格中。
您需要构建一个仅由字符‘U’、‘D’、‘L’和‘R’组成的操作序列。应用该序列后,您必须确保每只袋鼠都聚集在特定的单元格(a,b)。操作序列的长度不能超过3(n - 1)。
签到题,想到可以在等于2(n-1)的步数 ...
19thZJCPC
补题链接
B. JB Loves Comma 给定字符串 S,在每个 “cjb” 子串后面添加一个逗号 ,就一签到题没什么难度12345678910111213141516171819202122232425262728#include <bits/stdc++.h>#define endl '\n'//#define int long long//#define N 105using namespace std;void solve() { string s ; cin >> s ; for (int i = 0 ; i < (int)s.size() ; i++) { cout << s[i] ; if (i >= 2 && s.substr(i - 2, 3) == "cjb") { cout << "," ; } }}signed main() { cin.tie( ...
缺省源
1234567891011121314151617181920212223242526272829#include <bits/stdc++.h>//#define endl '\n'//#define int long long//#define N 1003#define fi first#define se second#define si(x) (int)(x.size())#define all(x) x.begin(),x.end()#define debug cout<<"*******\n";using namespace std;typedef pair<int, int> PII;void solve() { }signed main() { cin.tie(nullptr), cout.tie(nullptr); ios::sync_with_stdio(false); cout.precision(10); cout << fixed; int ...
幽默的世界
洛谷十月月赛 幽默的世界题目描述
给定一个长为 $n$ 的序列 $a_1,a_2,\cdots,a_n$,定义 $a$ 的一个连续子序列 $a_l,a_{l+1},\cdots,a_r$ 是幽默的,当且仅当:
$\sum\limits_{i=l}^ra_i>0$;
对于所有 $l\le x\le y<r$,满足 $\sum\limits_{i=x}^y a_i\le 0$。
$q$ 次询问,每次给定两个整数 $l,r$,查询满足以下条件的数对 $(l’,r’)$ 个数:
$l\le l’\le r’\le r$;
连续子序列 $a_{l’},a_{l’+1},\cdots a_{r’}$ 是幽默的。
输入格式
第一行输入两个整数 $n,q$。
接下来一行输入 $n$ 个整数,第 $i$ 个整数代表 $a_i$。
接下来 $q$ 行,每行输入两个整数 $l,r$,代表一次询问。
输出格式
对于每组询问,输出一行一个整数,代表答案。
样例输入
123456787 6-1 2 -1 -1 -1 2 -12 54 71 75 51 32 4
样例输出
12345612402 ...
『GROI-R2』不空白的画布
洛谷九月月赛『GROI-R2』 不空白的画布你有连续的 $n$ 个方格,每个方格上有一个初始颜色 $c_i$,且保证 $1\le c_i \le k$。
你可以操作至多 $m$ 次,每个操作为改变某个方格颜色,要求改变后的颜色范围仍在 $[1,k]$ 内。
我们称一个极长相同颜色连续段为一块,要求求出经过至多 $m$ 次操作后的最多块数。
输入格式
本题有多组测试数据。
第一行输入一个正整数 $T$ 表示数据组数。
对于每组测试数据,第一行输入三个正整数 $n,m,k$,表示画布的长度,坦尼尔作画的次数上限和颜色的取值范围。
第二行输入一个长度为 $n$ 的整数序列 $c$,表示画布上每个位置的初始颜色。
输出格式
对于每组测试数据,输出一行一个正整数,表示记忆碎片最多有多少个。
样例输入
1234523 1 32 2 25 2 42 2 2 2 3
样例输出
1235
样例解释
对于第一组测试数据,坦尼尔可以将从左到右的第二个位置涂成颜色 $1$,得到 $\{c_n\}=\{2,1,2\}$,块数为 $3$。
对于第二组测试数据,坦尼尔可以将从左到右的第二个位置涂成颜色 $1$, ...
对拍器与数据生成
对拍器模板1234567891011121314151617181920212223242526272829303132333435363738#include <bits/stdc++.h>#define random(a, b) ((a)+rand()%((b)-(a)+1))using namespace std;void create_dataset() { ofstream fout("input.txt"); fout.close();}bool work() { create_dataset();//system("stand.exe < input.txt > stand.txt");//system("my.exe < input.txt > my.txt"); system("stand.exe < input.txt"); system("my.exe < input.txt"); r ...
20thZJCPC
省赛补题,顺序大致按难度(赛时通过人数)排列
CF的gym里暂时还没有今年省赛的题目上传,目前只查到了D/F/G/H/I的补题链接2023.08.22
A.Look and Say
翻译:
给一个数字序列,你需要使用以下方法“描述”它:
1.每段划分成最大的连续相同的数字;
2 . 对于每段,将其替换为段的长度加段中的数字。例如,“0” 应替换为 “10”, ”9999999999“ 应替换为“109”
3.将替换的段连接在一起并输出
输入:
第一行包含一个整数n,范围是[1,1000],表示输入序列的长度;
第二行为一个长度为n的序列,表示原始序列
输出:
输出转换后的序列
签到题,就是相同连续的数字压缩成长度+数字的组合输出
12345678910111213141516171819202122232425#include <bits/stdc++.h>using namespace std;int n, cnt = 1;char pre = '#', t;signed main() { freopen("input.tx ...
算法大赛2023-村庄
1234564 5 31 22 33 44 11 3
13
数据范围:2 <= N <= 10^51 <= K <= M <= 10^51 <= ai < bi <= N所有的村庄组合(ai, bi) 各不相同。将村庄看成点,桥看成边,显然一开始给你的一定是所有的点都可以通过某条边直接或者间接相连,那么村庄的组合就是$C_{n}^{2} = \frac{n*(n-1)}{2} $,即选出两个村庄进行组合。去除一些边后问你毁了多少个组合。所以思路就是求连通块,计算每个连通块有多少个点,用组合数的公式进行计算还剩下多少个点,计算之后再减去总的村庄组合。12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include<bits/stdc++.h>#define ll long long#define M 100005using namespace std;struct Node ...