iOS
sed的&操作符+复盘和把经验转化为能力+sed替换关联环境变量+SystemC+C++的struct和class+C语言嵌入多行汇编+Makefile定义命令包+dump fsdb波形
sed的&操作符 sed一般是按行操作,如果匹配到,那么匹配到的内容被表示为&。 以下是在单行操作中,想要实现在某行数据特定字符前后插入字符的方法。 复盘和把经验转化为能力 https://www.163.com/dy/article/GEI2Q9EN05429MRP.html 通过寻找和尝试新的做事方式,你才能提高自己的能力。这需要努力和专注,没有这两种成分,任何技能都很难提
一本通金牌导航 分治法 E.工程划分 / P5290 [十二省联考 2019] 春节十二响(启发式合并)
题目传送门 题意简述:将树上 (n) 个点划分为若干个集合,使得集合中的点两两没有祖孙关系。一个集合的权值是集合内点的权值的最大值,求所有集合的权值之和的最小值。 首先这题有个非常显然的贪心:将几个权值大的点尽可能的合并到一个集合中是更优的。 集合中的点两两没有祖孙关系,说明集合中的点是在几个不同的子树中取到的。考虑从树上底部往顶部合并。在每个节点上维护一个 堆/set 表示该子树内已经形成的集合
1.21寒假每日总结12
思路&&Code 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 29 30 31 32 33 34 35 36 37 /* 高桥 和 青木 N 场比赛 x y 得分情况分别为 x1 y1
CF-915-F-并查集
915-F 题目大意 给定一棵(n)个节点的树,节点带权,设函数(I(x,y))等于点(x)到点(y)的路径上最大的点权与最小的点权之差。求: [sum_{i=1}^{n}sum_{j=i}^{n}I(i,j) ] Solution 令函数(F(i,j))等于点(x)到点(y)的路径上最大的点权,函数(G(i,j))等于点(x)到点(y)的路径上最小的点权。所求的式子可转换为: [sum_{i=1
P7192 [COCI2007-2008#6] GEORGE 题解
题目简述 给定一张 $n$ 个点 $m$ 条边的无向图,从 $u_i rightarrow v_i$ 需要用时 $w_i$ 分钟。有一位 T 先生从 $0$ 时刻按有 $g$ 个点的序列顺序移动,即 $v_1 rightarrow v_2 rightarrow cdots rightarrow v_g$。还有一位卡车司机 Luka 从 $k$ 时刻开始从 $a$ 点出发,Luka 不能与 T 先生
Codeforces Round 920 (Div. 3) D、E题解
Codeforces Round 920 (Div. 3) D、E题解 原文链接 D. Very Different Array E. Eat the Chip D. Very Different Array 题解 解题思路 在这个问题中,我们使用了贪心算法来最大化Vasya数组和Petya数组之间的总差异$D$。 1. 排序 首先对Petya的数组$a_i$和Vasya可选的数字集合$b_i$进
C++ ——vector数组笔记
vector 是 C++ 标准库中的一个动态数组容器(Sequence Container),它可以自动管理内存大小,可以在运行时根据需要动态增长或缩小。它是一个非常常用且强大的容器,用于存储一系列元素。可以简单的认为,vector是一个能够放任意类型的动态数组。 下面详细介绍 vector 的使用方法,并提供相应的代码案例。 1,基本函数实现 1.1&nb
读元宇宙改变一切笔记11_区块链
1. 区块链 1.1. 由一个去中心化的“验证者”网络所管理的数据库 1.2. 一些观察者认为区块链是在结构上实现元宇宙的必要条件,而其他人则认为这种说法是荒谬的 1.3. 与集中式数据库不同,区块链记录不存储在单个位置,也不由单方管理 1.3.1. 这些记录是由一群可识别的个人或多家公司共同管理的 1.3.2. 区块链“分类账”(le
Solution Set【2024.1.21】
[MtOI2018] 情侣?给我烧了! 设 (f_{k, n}) 表示在有 (n) 对情侣的情况下钦定 (k) 对情侣是和睦的方案数,(g_{k, n}) 表示在有 (n) 对情侣的情况下恰好有 (k) 对情侣是和睦的方案数。考察二者之间的关系,我们有: [f_{k, n} = sumlimits_{m = k}^{n} dbinom{m}{k} g_{m, n} ]根据二项式反演,我们有: [g
(坚持每天写算法)算法复习与学习part1基础算法part1-11——差分
差分和前缀和是有联系的。 首先给定一个原数组a:a[1], a[2], a[3],,,,,, a[n]; 然后我们构造一个数组b : b[1] ,b[2] , b[3],,,,,, b[i]; 使得 a[i] = b[1] + b[2 ]+ b[3] +,,,,,, + b[i] 也就是说,a数组是b数组的前缀和数组,反过来我们把b数组叫做a数组的差分数组。换句话说,每一个a[
二维动态规划+子集和
题目: 查看代码 #include<bits/stdc++.h> using namespace std; using ll = long long; const int N = 1e3+7; const ll mod = 1e5+7; int n, s; int dp[N][N], a[N]; int main() { ios::sync_with_stdio(0),
「杂题乱刷」AT_abc337_e
题目链接 题目传送门(at) 题目传送门(luogu) 题意简述 有 (n) 瓶饮料,其中有一瓶坏的,你需要使用最少的小白鼠使得这些小白鼠能找出已经变质的饮料的编号,对于每只小白鼠,你可以给他们喝任意瓶的饮料,每瓶饮料可以被平均分。 解题思路 妙妙构造题。 思路一: 拿 (n) 个小白鼠,每个小白鼠喝编号不同的饮料,这也是最简单的思路,但无法通过此题。 思路二: 拿 (n-1) 个小白鼠,每只小白
【docker-compose】Redis安装教程
仅供学习参考 ,请勿轻易在生产环境使用 0. 文件目录 下面的文件按照这个目录层级放置,首先创建 /docker/redis 文件夹,/docker/redis 对应下边图中 REDIS。 1. 创建目录 2. 编写配置文件,基于 Redis 7.0.2 文件名:redis.config 以后需要对 redis 进行什么配置,都会在这里修改 eg. 持久化配置 save 60 1000
CF-240-F-线段树
240-F 题目大意 给定一个长为(n)的字符串,由小写字母组成。由(m)次操作,每次操作给定一个区间([l,r]),要求你把区间中的字符进行重新排列,要求重排后的子串是字典序最小的回文串,如果无法得到回文串则忽略这次操作。 输出(m)次操作之后的字符串。 Solution 涉及区间操作,考虑用线段树来处理。建(26)棵线段树,每棵线段树维护其对应字符在各个位置上的出现情况。 对于每次操作的区间
2098:【23CSPJ普及组】小苹果(apple)
#include<iostream> using namespace std; int main(){ int n,a,b=0,d; cin>>n; int c=n; while(c!=0){ a=0; for(int i=1;i<=c;i+=3){ if(i==c && b==0){ b=d+1; } a
CF1552B Running for Gold
CF1552B Running for Gold 题目传送门 题面 奥运比赛刚刚开始,Federico 便十分渴望观看比赛。 有 (n) 个选手参加了马拉松比赛,从 (1) 到 (n) 依次编号。她们都参加了 (5) 项比赛,比赛从 (1) 到 (5) 编号。 现在有一个二维的数组 (r_{i,j}(1 leq i leq n,1 leq j leq 5)),表示选手 (i) 在比赛 (j) 中排
CF1562C Rings
CF1526C Rings 题目传送门 题目大意 从一个长度为(n)的二进制数中截取两个长度大于等于(lfloor frac{n}{2} rfloor)的二进制数,使两个数存在倍数(正整数倍)关系 思路 不要想太复杂,这题真的没那么难(虽然我最开始也想复杂了 可以在(0)上做文章 举个例子,假如我有一个二进制数(10010),那么如果在他的后面添加几个(0),新的数和他一定存在倍数关系(其实就相当
C++多重返回值:引用参数、结构体和元组实例详解
在 C++ 中,函数通常只能返回一个值。但是,可以通过引用参数、结构体、元组(C++11 及以后版本支持)等方式实现函数具有多个返回值的效果。以下是其中几种方法的实例: 1. 通过引用参数: #include <iostream> // 通过引用参数实现多个返回值 void multipleReturns(int a, int b, int& sum, in
CF1542B Plus and Multiply
CF1542B Plus and Multiply 题目传送门 题意 有一个集合,最开始集合中只有(1),又有(a),(b),如果集合中存在(k),那么将(ka)和(k+b)加入集合 试求,(n)是否尊在于集合之中 思路 稍加枚举(或者瞪眼大法)可得,该集合中的任何数都可被表示为(k=ax+by)((a,b)为非负整数) 分个类更直观一些 设已有(k)为(ax+by),则会有新的两个数(ak)和(
CF526F Pudding Monsters 题解
题目链接:CF 或者 洛谷 析合树真是连续段问题的降智神器 先看下题目的一些特殊性,每行每列恰好有一个棋子。考虑特殊性,(n times n) 的棋盘,那么就该判断是否有 (n) 个棋子,容易观察到,也就是相当于每一行并且每一列都有一个棋子。而容易知道,这些棋子所在的行或者列拿出来应当是“连续的”。 容易知道一个事实,如果你的行是连续的,并且列是连续的,那么一定能够组成答案,但如果只满足其中一个
二维dp--选数异或
题目: 查看代码 #include <iostream> using namespace std; int a[100006]; int dp[100006][64];//到第i个数为止异或和 int main() { int n,x; cin>>n>>x; for(int i=1;i<=n;i++)cin>>a[i]; dp
P8661 [蓝桥杯 2018 省 B] 日志统计
这道题可以用类似单调队列的思路实现,因为其本质上是一个滑动窗口,虽然有两重循环,但是因为i和j是总的N被分摊之后的数字,所以真实的时间复杂度依然是O(N)