Codeforces Round #785 (Div. 2)(D,F)

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

D. Lost Arithmetic Progression

题意:
三个数组 A , B , C A,B,C A,B,C为等差数列,其中 C = A ⋂ B C=A \bigcap B C=A⋂B
给你 B , C B,C B,C的首项,差值,长度,问符合题意的 A A A有多少种构成方式,或者判断是否无解或者无限解
思路:
在这里插入图片描述
显然 d c = L C M ( d a , d b ) d_c=LCM(d_a,d_b) dc​=LCM(da​,db​)
首先,如果 C C C中如果有元素在 B B B中没有出现过,那么一定无解
如果全部出现过,应该:

  1. C C C的首项大于 B B B的首项, C C C的尾项小于 B B B的尾项
  2. 满足 d c = L C M ( d a , d b ) d_c=LCM(d_a,d_b) dc​=LCM(da​,db​),等价于 d c % d b = 0 d_c\%d_b=0 dc​%db​=0
  3. 确保 C C C的首项在 B B B中会出现

如果 B B B中元素长度恰好只能刚刚覆盖 C C C,也就是只要 C C C向前后任意拓展一位, B B B就无法覆盖的话,就意味着 A A A可以在这个方向上任意的变长,而不用担心会和 B B B相遇,此时答案无限
最后剩余的情况答案一定是有限的,由于 A A A的公差一定满足上述要求,于是我们可以在 O ( d c ) O(\sqrt{d_c}) O(dc​ ​)的时间内枚举出 d a d_a da​的全部可能,此时 A A A向左右各可拓展 ⌊ d c d a ⌋ \left\lfloor\dfrac{d_c}{d_a}\right\rfloor ⌊da​dc​​⌋个,总产生的新个数为 ⌊ d c d a ⌋ 2 \left\lfloor\dfrac{d_c}{d_a}\right\rfloor^2 ⌊da​dc​​⌋2

#include<bits/stdc++.h>
#define int long long
using namespace std;
int mod=1e9+7;
signed main()
{
	int T;
	scanf("%lld",&T);
	while(T--)
	{
		int bs,bd,bl,cs,cd,cl;
		scanf("%lld%lld%lld%lld%lld%lld",&bs,&bd,&bl,&cs,&cd,&cl);
		int be=bs+bd*bl-bd,ce=cs+cd*cl-cd;
		if(bs>cs || be<ce || cd%bd || (cs-bs)%bd)
		{
			puts("0");continue;
		}
		int pre=cs-cd,nex=ce+cd;
		if(pre<bs || nex>be)
		{
			puts("-1");continue;
		}
		int ans=0;
		for(int i=1;i*i<=cd;i++)
		{
			if(cd%i) continue;
			if(i*bd/__gcd(i,bd)==cd)
			{
				int num=cd/i;
				ans+=(num*num)%mod;
				ans%=mod;
			}
			if(i*i!=cd)
			{
				int num=cd/i;
				if(num*bd/__gcd(num,bd)==cd)
				ans+=(cd/num*cd/num);
				ans%=mod;
			}
		}
		printf("%lld\n",ans);
	}
}

F. Anti-Theft Road Planning

题意:
交互题,在 n ∗ m n*m n∗m的城市里,每条路都有一个长度 l l l,现在城市里有一个小偷,小偷会在城市里移动,偷窃。但是你不知道小偷如何移动。有一个记录器记录着小偷(初始为0),每当他经过一条长 l l l的边,记录器上的值就会异或 l l l,如果小偷进行了一次偷窃,记录器会将目前记录的值反馈给你,并将记录结果清零。
请你自己设计一条路线长度,每次小偷偷窃时,你都能通过记录器反馈给你的值,判断哪个地方失窃了,路线总长度小于 48000 48000 48000
思路:
假设我们给 n ∗ m n*m n∗m个城市顺序标号,然后让城市 i i i和 j j j相连的道路长度设计为 i ⊕ j i \oplus j i⊕j
这样小偷从 u u u走到 v v v,最后显示的结果为 u ⊕ v u \oplus v u⊕v
构造很合理,但是这样用的路线总长度似乎太大了,是否能通过改变点值的顺序来让设计的边尽可能的小呢,比如我们一次只会改变二进制状态下的一位
我们先将问题转化成一维的问题,最初我们有初始节点 0 , 1 0,1 0,1
0000 0001 0000\\0001 00000001
为了使变换尽可能的少,只需要将这个数组复制一遍,然后将其倒序,就可以无缝衔接
0000 0001 0001 0000 0000\\0001\\0001\\0000 0000000100010000
为了避免点重复,我们再将刚刚复制的最高位变为 1 1 1,于是我们就构造完成了,每条边的变化只有二进制上的一位
0000 0001 0011 0010 0000\\0001\\0011\\0010 0000000100110010
以此类推
0000 0001 0011 0010 0110 0111 0101 0100 . . . 0000\\0001\\0011\\0010\\0110\\0111\\0101\\0100\\... 00000001001100100110011101010100...
回到二维,只要构造好的矩阵,右边,下边,右下边分别翻转,分别加 01 , 10 , 11 01,10,11 01,10,11即可
构造如下
00000   00010   01010   01000  ... 00100   00110   01110   01100  ... 10100   10110   11110   11100  ... 10000   10010   11010   11000  ... . . . . 00000\text{ }00010\text{ }01010\text{ }01000\text{ ...}\\ 00100\text{ }00110\text{ }01110\text{ }01100\text{ ...}\\ 10100\text{ }10110\text{ }11110\text{ }11100\text{ ...}\\ 10000\text{ }10010\text{ }11010\text{ }11000\text{ ...}\\ .... 00000 00010 01010 01000 ...00100 00110 01110 01100 ...10100 10110 11110 11100 ...10000 10010 11010 11000 .......
这样的构造叫做格雷码

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
map<int,PII>vis;
int a[100][100];
int main()
{
	int n,k;
	cin>>n>>k;
	int len=1;
	vis[0]={1,1};
	for(int p=0;len<n;p+=2,len*=2)
	{
		for(int i=1;i<=len;i++)
		{
			for(int j=1;j<=len;j++)
			{
				a[i][len*2-(j-1)]=a[i][j]+(1<<p);
				vis[a[i][j]+(1<<p)]={i,len*2-(j-1)};
				a[len*2-(i-1)][j]=a[i][j]+(1<<(p+1));
				vis[a[i][j]+(1<<(p+1))]={len*2-(i-1),j};
				a[len*2-(i-1)][len*2-(j-1)]=a[i][j]+(1<<p)+(1<<(p+1));
				vis[a[i][j]+(1<<p)+(1<<(p+1))]={len*2-(i-1),len*2-(j-1)};
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<n;j++)
		{
			cout<<(a[i][j]^a[i][j+1])<<" ";
		}
		cout<<endl;
	}
	for(int i=1;i<n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cout<<(a[i][j]^a[i+1][j])<<" ";
		}
		cout<<endl;
	}
	int last=0;
	while(k--)
	{
		int x;
		cin>>x;
		x^=last;
		cout<<vis[x].first<<" "<<vis[x].second<<endl;
		last=a[vis[x].first][vis[x].second];
	}
}
SAP BASIS运维之三方SSL证书导入 事情的起因是我司SAP使用的SSL证书即将要到期了(上一个的SAP BASIS也辞职了),需要进行证书的更换。如上图所示,我司的证书有效期到2024年4月30日到期,需要提前预防并更换,防止过期后导致接口和访问出现问题。9.在弹出的框中,选择我们在第5个步骤中导出的转换结果存储地址,并选择导出的转换文件,点打开。12.最后一步也是关键的一步,不然就会无法更新证书,再点击左上角的个人安全环境,点另存为。10.在打开后的弹窗中,输入我们在第4个步骤中设置的密码。6.经过以上步骤后,我们获得了最终的证书文件。 阅读详情

相关推荐

baostock实战:如何用Python批量下载多只股票的历史数据(含常见错误排查)

本文详细介绍了如何使用Python和baostock库批量下载多只股票的历史数据。内容涵盖从环境搭建、代码标准化到构建稳健的批量下载框架的全过程,并重点提供了高级错误处理、网络重试、数据验证及内存管理等实战解决方案,帮助用户高效构建股票数据处理流水线。

nice1的博客 1081

Codeforces Round #785 (Div. 2) A-D

A. Subtle Substring Subtraction 给你一个字符串,Alice先手并取偶数长度的子串,Bob后手并取奇数长度的子串,问取完整个字符串谁的值最大,差值是多少 易知Alice一定会取最长的偶数子串,先特判一下字符串长度为1时Bob赢 然后如果是偶数长度就直接取完,否则判断一下第一个字符和最后一个字符谁大,留一个小的给Bob剩下的全部取完就行 /**************** *@description:for the Escape Project *@author: Nebul

qq_34832548的博客 397

Mujoco xml actuator

在MuJoCo中,actuator(执行器) 是用于定义外部力或力矩的机制,这些力或力矩可以作用于关节、肌腱或身体。执行器可以模拟各种类型的驱动器,如电机、液压缸、肌肉等。它们通过定义传输(transmission)和力生成机制(force generation)来实现对模型的控制。

m0_52113469的博客 2896

Codeforces Round #404 div2 (CodeForces - 785ABCD) 题解

Codeforces Round #404 div2 题解数学专场? 传送门:HustOJ 传送门:官方题解以及官方hint还是很给力的,比如我的D题CodeForces 785A Anton and Polyhedrons题意,思路太水了。。。代码#include <cstdio> #include <cstdlib> #include <iostream> #include <algori

P.H.S 424

无人驾驶小车调试笔记(六)-- 车轮校准

简介:小车的动力完全来自于两个电机带动的车轮,在理想状态下,给两个电机同样的驱动参数,两个车轮会以同样的转速带动小车直线行驶,而实际情况是每个电机可能都会有个体差异,也就是说给予同样的驱动参数,表现出的转动速度会有些许不同,两个轮子的差速会导致车辆拐弯,后果就是给了直线行驶的控制命令,但是车走着走着就偏离了原本的方向,所以在开始控制之前,我们需要先平衡两个车轮的转速,保证在同样驱动参数下,两个车轮转速大致相同,也就是可以走直线。 车轮校准分为3步,测试、调整后再测试、保存参...

aibingjin的博客 1820

Smart200 PLC实现Bool信号接通延时、关闭延时作用

解决Smart200 PLC时间继电器和脉冲扫描P或N不能重复使用的问题,用于Bool信号延时接通和延时关闭的作用,可调整时间基数

gk_121的博客 4318

Codeforces Round #785 (Div. 2) D. Lost Arithmetic Progression

Codeforces Round #785 (Div. 2) D. Lost Arithmetic Progression 题意: 给出b,cb,cb,c两个等差数列数组,输入的333个数据分别是开始位置ststst,等差数ddd和数组长度lenlenlen,数组ccc是数组a∩ba∩ba∩b部分,让我们通过数组bbb和ccc恢复数组aaa,求在满足bbb和ccc前提下aaa数组能构造的数量,如果无解输出 000 ,如果无穷多解输出 −1-1−1 。 思路: 首先我们得判断什么情况下是无解的什么情况下是无

qq_53504307的博客 347

Modelsim安装教程以及管理员身份运行patch_dll.bat时找不到文件mgls.dll的解决

Modesim安装教程 Modesim版本有很多,但是安装方式大都相同,我们以modesim.10.5为例,电脑使用的是win10 64位,讲一下安装过程中的步骤以及出现问题的解决方法 一 安装 1.首先解压安装包,在解压的安装包内选择应用程序,右键选择管理员运行。 2.稍等一会,有的电脑会弹出是否允许modesim进行更改,选择 是 即可,然后出现下面的界面,点击下一步。 3.弹出此界面选择安装路径,选择安装路径,我是在D盘新建的文件夹,直接把文件夹中的路径复制在框内。文件夹名称切记不要带中文 4.

weixin_48564372的博客 1万+

【Codeforces Round #785 (Div. 2)】【题解A-D】

2022年5月1日14:39:50 文章目录2022年5月1日14:39:50A. Subtle Substring Subtraction题目大意:测试样例:题解:B. A Perfectly Balanced String?题目大意:测试样例:题解:C. Palindrome Basis题目大意:测试样例:题解:附带题目:P1025 [NOIP2001 提高组] 数的划分D. Lost Arithmetic Progression题目大意:测试样例:题解:END:2022年5月1日17:23:38 A.

eternity_memory的博客 767

通过Jlink和PyLink读取蓝牙mac地址--Nordic&silicon labs

本文介绍在不开机的情况下读取蓝牙的mac地址,这里介绍两个平台,Nordic和Silicon Labs。 1. 通过Jlink Commander工具连接上目标板 选择当前芯片的型号 2. 使用mem命令查看mac地址 首先需要知道mac地址存储在芯片的哪个地址。 Nordic: 寄存器DEVICEADDRTYPE的第一个bit代表mac地址的类型,这里为1。DEVICEADDR[0]和DEVICEADDR[1]的低16bit代表了MAC地址,其中DEVICEADDR[1]的第15位应该或上DE

ching的专栏 1650

滑模观测器与锁相环结合应用:让电机“无感”也能精准旋转的奥秘

本文介绍了永磁同步电机无传感器控制中的滑模观测器(SMO)结合锁相环(PLL)技术。SMO通过创建虚拟电机模型,利用电流误差产生控制信号来估计反电动势;PLL则从反电动势中解码转子位置和速度信息。该组合方案兼具SMO的鲁棒性和PLL的高精度,计算量小且硬件要求低。文章详细阐述了原理、数学模型、参数整定方法及实际实现技巧,包括离散化处理、符号函数替代等优化手段,并分析了低速性能限制、抖振问题等常见挑战及解决方案。最后指出该技术未来将与人工智能、多观测器融合等方向结合发展。

汽车软件开发 193

Codeforces Round #785 (Div. 2) A~F

小细节卡的挺难受呀 A. Subtle Substring Subtraction Alice肯定一下取走尽可能多的数 /*input 5 aba abc cba n codeforces */ #include<bits/stdc++.h> using namespace std; const int N=2e5+10; char s[N]; int main() { int t; cin>>t; while(t--) { int sum=0; scanf("

Hello_wcrd的博客 619

python爬虫:采集求职者简历信息并进行人才分析

通过 Python 爬虫抓取求职者简历信息并进行人才分析,可以帮助企业快速筛选和匹配人才。但在实施过程中,必须严格遵守法律法规,确保数据来源合法合规。如果需要更复杂的分析,可以结合自然语言处理(NLP)和机器学习技术,进一步挖掘数据价值。

数据知道的博客 1万+

Codeforces Round #785 (Div. 2) D Lost Arithmetic Progression

题意:给定两个等差数列B,C 其中C是A和B的所有的公共部分 求这样的等差数列A的个数 若无限个A 输出-1 细节题 思路: 首先判断C的项是不是全部在B中 若不是 答案为0 直接输出 然后A必须有所有C的项 所以A的公差必然是C的公差的因子 记 Di 为 i 的公差 即 Dc % Da == 0 想到 A和B不能有别的相同的项 且都是等差数列 那么 C的两项之间 ,A,B的每一项没有交集 所以lcm(Da,Db)== Dc 还有无限个A的情况 C的后一项/前一项如果在B中没有出

shanshan_shui的博客 534

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Codeforces Round #785 (Div. 2) D. Lost Arithmetic Progression (类似质因分解)

传送门: link 题意: 给你两个等差数列的:首项,公差,项数。 数列BBB和数列CCC给出.要求有多少满足条件的数列AAA 数列CCC 是 数列AAA 和 数列BBB的公共项。 思路: 感觉难度在 [1800,2100][1800,2100][1800,2100]的样子。 这里为了方便说明: 令BBB的首项,公差,最后一项分别为 b,d2,bnb,d2,bnb,d2,bn 令CCC的首项,公差,最后一项分别为 c,d3,cnc,d3,cnc,d3,cn 先把边界特判了: 由于数列CCC是公共项,所

qq_45377553的博客 477

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Codeforces #Round 785(Div.2)

假的div2 C题没事写什么公式被卡精度了,掉分了gg --------------------------------------------------- A....几个每个字符串预先给好一个代表的值,给n个字符串,求和。 题解:手速题。 #include<iostream> #include<cstdio> #include<algorithm&...

weixin_30877493的博客 156

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【5.17】【VP】Codeforces Round #785 (Div. 2)

ALL:7 AC:2 补题:2 A略。 B. A Perfectly Balanced String? 题意: 题解: 对每个字符考虑,考虑所有以它为分隔符的所有子串,在这些子串中看看是否有出现次数大于等于二的字符。解一定至少出现在这些子串中,证明略。 自己想了一个解法,见 洛谷题解。 AC代码:https://codeforces.com/contest/1673/submission/157458694 C略,不想补。 D. Lost Arithmetic Progression

ZhgDgE的博客 147

Codeforces Round #404 (Div. 2) D. Anton and School - 2 数学

D. Anton and School - 2 题目连接: http://codeforces.com/contest/785/problem/D Description As you probably know, Anton goes to school. One of the school subjects that Anton studies is Bracketology. On the ...

weixin_30446197的博客 113

组合数学——Codeforces Round #404 (Div. 2) D. Anton and School - 2

题目链接:http://codeforces.com/problemset/problem/785/D 题意:给出一个只含有 ‘(’ 和 ‘)’ 的字符串,求其中含有多少个RSBS子序列。RSBS定义为:不为空,长度为偶数,前一半全是’(‘,后一半全是’)’ 分析:一个很显然的思路就是

FeBr2的博客 425

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 190

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 293

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 560

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

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

2503_92261635的博客 20

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

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

2301_81429079的博客 645

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

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

wuqingyigexiaoba的博客 367

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 170
上一篇: Codeforces Global Round 20(F,H)
下一篇: Codeforces Round #786 (Div. 3)(E,G)
不是张胖胖
博客等级 码龄6年 67粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值