# CF #807 Div.2(A - D)

5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

A - Mark the Photographer

Description:

​ 给定2n个数和k,请问是否存在n对(i, j) abs(ai - aj) >= k

Solution:

​ 先排序 然后对1和n + 1, 2和n + 2连续比对。

​ 赛时拖了节奏 因为看成了 == k 下次注意读题

Code:

void solve()
{
	int n, x;
	cin >> n >> x;
	vector<int> a(2 * n);
	rep(i, 0, 2 * n)
		cin >> a[i];
	sort(a.begin(), a.end());
	
	bool ok = true;
	for(int i = 0; i < n; i ++)
		if(a[i] + x > a[i + n])
			ok = false;

	if(ok)
		cout << "YES\n";
	else
		cout << "NO\n";
}





B - Mark the Dust Sweeper(思维)

Description:

​ 每次操作可以选择(i,j)使ai - 1,aj + 1,前提条件是(ai … a_j-1)必须都大于0

​ 使a1到a_n-1全部为0,求最小的操作次数

Solution:

​ 先把中间所有的0都填上,填充的过程是o1的,也就是操作次数等于0的个数,然后从左到右,将1逐个放到最后一位上,也就是a1到a_n-1的和

Code:

const int N = 200005;
int n;
LL a[N];
 
void solve()
{
	cin >> n;
	for(int i = 1; i <= n; i ++)
		cin >> a[i];
 
	LL res = 0, sum = 0;
	for(int i = 1; i <= n - 1; i ++)
	{
		if(a[i] == 0 && sum > 0) //从第一个非0开始计算有多少个0
			res ++;
		sum += a[i];
	}
	cout << sum + res << '\n';
}





C - Mark and His Unfinished Essay(字符串复制+映射)

Description:

​ 给定一个字符串s,进行c次操作,每次选择当前字符串的一段(给出左右端点)加到后面,最后询问q次,第idx位的字符是什么。

Solution:

​ 显然暴力求解不可取 复杂度过高

​ 我们需要模拟切割字符串并接在后面的过程,通过映射来找回在原串中的位置

​ 在模拟的过程中,需要记录当前接在后面的复制串的左右端点,和上一次被复制子串的左端点。

​ 右端点是为了得到下一个复制串接在后面的左端点。

​ 映射关系为 接在后面的复制串的第k位等于在原串的l + k位

​ 通过映射关系,可以倒过来重复递推回到最初始的串,查询p次,每次O©递推

Code:

int n, c, q;
 
void solve()
{
	string s;
	cin >> n >> c >> q;
	cin >> s;
 
	vector<LL> vl(c + 1), vr(c + 1), last(c + 1); 
	vl[0] = 0; //s.begin()
	vr[0] = n; //s.end()
	for(int i = 1; i <= c; i ++)
	{
		LL l, r;
		cin >> l >> r;
		l --, r --;
		vl[i] = vr[i - 1]; //当前复制得到的字符串的左端点
		vr[i] = vl[i] + (r - l + 1); //当前复制得到的字符串的右端点的下一位
		last[i] = vl[i] - l; //和上一个字符串的映射关系:长度
	}
 
	while(q --)
	{
		LL x;
		cin >> x;
		x --;
		for(int i = c; i >= 1; i --)
		{
			if(x < vl[i])	continue; //如果不在当前扩展串内,一直continue
			else x -= last[i]; //减去映射关系
		}
		cout << s[x] << '\n';
	}
}





D - Mark and Lightbulbs(思维+构造)

Description:

​ 给出两个01串a,b,问是否能通过操作使a变成b,若可以,输出最小操作次数

​ 可以选择i (2 <= i <= n - 1) 且 s_i-1 != s_i+1 然后使si位反转(1->0, 0->1)

Solution:

​ 根据定义,我们可以知道头尾不相同的必然不成立

​ 观察可得,111 000 111 000 --> 1 00000 1 000 或 11111 0 11111 0

​ 不难发现,连续相同段最多被削减成一个,但不能完全删去,所以两个串的01段是不变的

​ 得出结论,当两个字符串的01段相同且头尾相同的情况下,存在答案

​ 现在考虑如何将连续但长度更小的一段扩展成目标段,如图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tpzmYxcb-1658028661410)(C:\Users\86137\Pictures\Typora_picture\v2-53d36afc9717cffe12e12fe710f81719_r.jpg)]

对于该区间需要的操作次数就是 max(0, 上区间的左端点-下区间的左端点) + max(0, 下取件右端点-上区间右端点),这是对于扩展考虑的情况;同时我们不需要考虑缩短的情况,因为一段的缩短就是他旁边两段的扩展。遍历每一段累加答案。

Code:

int n;
string a, b;
 
int segcount(string s) //去掉连续的0和连续的1 得到01段
{
	return unique(s.begin(), s.end()) - s.begin();
}
 
vector<vector<int> > get_seg(string s)
{
	vector<vector<int> > v; //将01区间分开存储
	vector<int> res;
 
	int m = s.size();
	res.pb(0);
	for(int i = 1; i < m; i ++)
	{
		if(s[i] != s[i - 1])
		{
			v.pb(res);
			res.clear();
		}
		res.pb(i);
	}
	v.pb(res); //不加就wa 别忘了
	return v;
}
 
void solve()
{
	ios;
	cin >> n >> a >> b;
	if((segcount(a) != segcount(b)) || a[0] != b[0] || a[n - 1] != b[n - 1])
	{
		cout << "-1\n";
		return;
	}
 
	vector<vector<int> > va = get_seg(a), vb = get_seg(b);
	LL res = 0;
	for(int i = 0; i < va.size(); i ++)
		res += max(0, va[i].front() - vb[i].front()) + max(0, vb[i].back() - va[i].back());	
	cout << res << '\n';
}
3. NVIDIA GPU Xid 常见错误码全解析、故障定位与标准化处理方案 摘要: Xid是NVIDIA显卡驱动记录的硬件/软件异常日志,通过dmesg等工具可获取,包含PCI总线、GPU编号、故障码等信息,是诊断显卡问题的核心依据。Xid故障分为四类:应用程序类(如代码错误,Xid13/31)、显存ECC硬件类(如显存损坏,Xid48/63)、链路/供电温控类(如PCIe故障,Xid74/79)和GSP固件类(如静电干扰,Xid119/154)。排查流程包括日志采集、软件修复(如重启进程、升级驱动)、硬件检查(如PCIe链路状态)及断电复位(针对GSP故障)。预防措施包括监控EC 阅读详情

相关推荐

光学设计进阶:Zemax中的坐标断点与离轴系统优化

本文深入解析了Zemax中坐标断点的核心原理与实战应用,它是实现离轴光学系统设计的关键。文章通过比喻和实例,详细阐述了如何利用坐标断点作为“方向盘”来精确控制光学元件的偏心和倾斜,实现“前断后接”的局部坐标系变换,从而构建并优化无中心遮拦的离轴反射系统,避免光线失控。

3a9bq4r8t2y的博客 525

codeforces807div2 D.Dynamic Problem Scoring[暴力][贪心]

D. Dynamic Problem Scoring time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Vasya and Petya take part in a C

Qer的博客 581

Android P HAL层添加HIDL实例(详细实现步骤)

Android P HAL层添加HIDL实例 本文将介绍如何在P OS上添加HIDL实例,简单增加seLinux策略使得可以在system_service调用测试,并用模拟器emulator验证。 调用过程为 APP->TestManager->TestService->ITast.hal 文章目录Android P HAL层添加HIDL实例实现过程一 、hardware部分1...

sinat_18179367的博客 1万+

【CF #807 Div2】A-D

由于最后字符串的长度最长达到1e18,所以不可能将字符串模拟出来,不能模拟字符串,就模拟每次操作之后,字符串的长度,对应的l,r区间,最后回溯到原始字符串找到原来的位置。n个数,选择i,j号两个数,使得i-1,j+1,并且操作之后,所得的数之间的数都要大于0,用最小的操作数,将前n-1个数都减小为0。因为之间的数都要大于0,所以先将从第一个不为0的数到第n-1个数之间的0填满,再将数都与最后一个数进行操作,最小操作数就是0的个数加上前n-1个不为0的数值。的值进行反转,使s等于t,求最小操作次数。...

m0_56535442的博客 173

从OAuth到DID:Web4.0身份验证协议的技术演进图谱

在数字身份体系从Web2.0向Web4.0跨越的进程中,身份验证协议正经历着从中心化授权到自主主权的范式转移。本文通过对比OAuth 2.0、OpenID Connect等传统方案与W3C DID、ION等去中心化协议的技术架构,揭示身份验证技术在性能、安全、隐私三大维度的代际差异。基于对GitHub、欧盟数字身份钱包等典型系统的实测数据分析,量化评估中心化授权服务器的单点故障风险与DID链上验证的吞吐量瓶颈。结合零知识证明、分布式密钥管理等前沿技术,为开发者提供面向Web4.0的渐进式身份架构迁移策略。

水务人 833

SGM5860x高精度ADC驱动开发与SPI接口实战指南

本文详细介绍了SGM5860x高精度ADC芯片的驱动开发与SPI接口配置实战。内容涵盖芯片特性、SPI通信设置、寄存器映射、驱动初始化、数据采集处理、校准优化及调试技巧,帮助开发者快速掌握国产24位ADC的应用,提升工业测量项目的精度与稳定性。

vvv99的博客 713

codeforces807div2 C.Success Rate[二分][数学]

C. Success Rate time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are an experienced Codeforces user. Tod

Qer的博客 590

Serial RapidIO Gen2 IP 说明(一)

概述 高速IO(RapidIO)互联架构,用来兼容当前最流行的集成通信处理器、主处理器、联网的数字信号处理器,是一种高性能、分组交换(报文交换)的互联技术。它解决了高性能嵌入式产业稳定性、高带宽以及系统内部更快的总线速率的需求。 高速IO(RapidIO)标准由三层定义:逻辑层、传输层、物理层。逻辑层定义了所有的协议内容和报文格式。这些是终端发起和完成一次传输所必需的信息。传输层提供了报文从一个端点传输到另外一个端点必要的路线信息。物理层则描述了设备级的端口声明,如报...

记录所学,分享知识,结识挚友 1497

CF409D Big Data

洛谷蓝题 题目 题意翻译 输入一个n,输出上面的第n句话是否正确。正确输出1,反之输出0 Translated by @chen_zhe 题目描述 Little Petya wanted to give an April Fools Day present to some scientists. After some hesitation he deci...

weixin_30588729的博客 204

Mamba-YOLOv8深度解析:基于状态空间模型的下一代目标检测架构(含完整代码与实战部署)文末含资料链接!

通过本文的完整指南,您将掌握从理论创新到工程落地的全流程技术细节。立即动手实践,开启目标检测的新纪元!

FJN110的博客 517

量化 insider 爆料! 散户打板必亏?(打板必看!量化资金如何“隔日砸盘”收割散户)

量化开发 insider 爆料💥 散户追的涨停板📉,可能是机构故意做的陷阱!本文从技术视角拆解“涨停陷阱”,帮你看清市场真实逻辑🧠。

XiaoqiangClub的博客 447

[CF1705E Mark and Professor Koro]

这是一个易想不易写的题。官方题解给出了bitset暴力和线段树维护010101区间两种解法。我在考场上想到了线段树和set两种维护010101区间的套路,由于set的码量、空间复杂度、时间复杂度都比线段树好,所以我果断写了set,然后就写挂了。...

L739213088的博客 633

WPF在特定领域的应用:打造一款专业的图像编辑工具

WPF在特定领域的应用:打造一款专业的图像编辑工具,在软件开发的广阔领域中,Windows Presentation Foundation(WPF)以其强大的图形渲染能力和丰富的用户界面控件,为开发者提供了构建高性能、美观应用程序的平台。图像编辑工具作为一种对图形处理要求极高的应用类型,WPF 的特性使其成为理想的选择。本文将深入探讨如何使用 WPF 打造一款专业的图像编辑工具,涵盖从基础概念到实际代码实现的各个方面。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 6万+

【CF 比赛记录】Roye_ack的艰难上分日常(35)

codeforces艰难上分之路

weixin_61639349的博客 1892

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

cf806dv4 806dv2

1

m0_62821617的博客 117

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 14

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 436

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 362

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 77

AI和大模型—从克里金算法说开去

克里金算法源于矿业勘探,通过空间自相关性实现稀疏数据下的最优预测,核心优势在于不确定性量化。在AI大模型中,其等价于高斯过程,广泛应用于超参数优化、小样本建模与推理调度。尽管面临计算复杂度高、核函数选择难等问题,通过稀疏化、分治法与低秩近似可有效优化。该方法在降低训练成本、提升泛化能力及减少幻觉方面表现突出,尤其适用于高维、高成本的智能系统优化,具有重要借鉴价值。

fpcc的专栏 602

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 176

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 302

不同的二叉搜索树

互不相同的二叉搜索树的种数,以 j (1<=j<=i)为头节点,左子树是 j-1 个数,右子树就是 i - (j - 1) -1 = i - j个数。所以dp[3] = dp[0] * dp[2] + dp[1] * dp[1] + dp[2] * dp[0]头1 = 左子树0节点 * 右子树2节点,二叉搜索树就是排序树,左子树<根节点<右子树,左右子树也满足左子树<根节点<右子树。头2 = 左子树1节点 * 右子树1节点。所以dp[i] += dp[j-1] * dp[i-j]个节点组成且节点值从。

qq_44721738的博客 150

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 381

固件开发岗算法

背景:嵌入式固件岗,偏爱手写库函数、位运算、数组基础算法。

2502_90352018的博客 109

从曲线到储层:Techlog/KAPPA 全流程算法、UltraLAB 选型与本地 AI 部署实战

以高频 CPU 保证交互,以充足内存承载多井与多任务,以 NVMe 打通项目和知识库 I/O,再按本地模型、上下文与并发配置 GPU。对 UltraLAB 用户而言,更合理的采购方式是带着真实项目做选型:一组典型井、一套完整解释模板、一个目标大模型、一次多人并发测试。用实测结果确定配置,才能把预算转化为解释效率,而不是闲置算力。软件模块、操作系统与许可条件以厂商当前正式说明为准;硬件建议需结合项目实测。AI 输出只能作为辅助证据,不能替代岩石物理与油藏工程专业审核。

wdf8088的博客 161

【Deep-OC-SORT 01】多轨迹算法Deep-OC-SORT源码分析

本工程基于Deep-OC-SORT核心模块,重构并适配了EmbeddingComputer(外观特征提取)、CMCComputer(相机运动补偿)与OCSort(主跟踪器)三类。前者实现整框/网格模式的特征提取与L2归一化;后者通过稀疏光流或SIFT匹配估计仿射变换,补偿相机运动;主跟踪器融合IoU、外观相似度与方向一致性,支持模块开关与自定义组件,实现高效多目标跟踪。

Jayson 博客 330
上一篇: AtCoder ABC 131
下一篇: # CF #808 Div.2(A - C)
a simple_boy
博客等级 码龄5年 1粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值