AtCoder Beginner Contest 377 D题题解

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

题目传送门
可以看到题目给出的 L i L_i Li​和 R i R_i Ri​其实规定的是当 l l l小于等于 L i L_i Li​时 r r r必须小于 R i R_i Ri​。因此我们只要求出 i i i为 l l l时最大的 r r r,然后把他们的区间的数字数量加起来,可是这样的时间复杂度接近 O ( n m ) O(nm) O(nm),能不能再优化呢?当然可以,既然是小于等与 L i L_i Li​的数都被限制,那么为什么不可以设 a i a_i ai​为当 l l l小于等于 i i i时 r r r的最大取值呢:在每次输入 L i L_i Li​和 R i R_i Ri​时设置 a L i = m i n ( a i , R i − 1 ) a_{L_i}=min(a_i,R_i-1) aLi​​=min(ai​,Ri​−1),然后从后往前遍历每一个数让 a n s ans ans加上 i i i和它最大右端点的取值就可以了(如果从前往后的话会出现 a a a数组后面的元素小于前面的元素的情况,而从后往前我们只需要忽略掉前面比他大的元素就可以了)。

代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,s,ans,a[500005];
//a[i]为当l小于等于i时r的最大取值 
main(){
    cin>>m>>n; 
    memset(a,-1,sizeof a);
    a[n]=n;
    while(m--){
        int l,r;
        cin>>l>>r;
        if(a[l]==-1){
            //直接赋值 
            a[l]=r-1;
        }else{
            //找到最小的r的最大取值 
            a[l]=min(r-1,a[l]);
        }
    }
    //s是当前的最大r的最大取值 
    s=a[n];
    for(int i=n;i>=1;i--){
        //当前面的r的最大取值比当前的苛刻就更新s 
        if(s>a[i]&&a[i]!=-1){
            s=a[i];
        }
        //ans加上从l到r一共可选的总数 
        ans+=(s-i+1);
    }
    cout<<ans;
    return 0;
}
YOLOv8剪枝 l1剪枝测试精度仅掉0.8个点,速度提高10.7fps! 文章摘要: 本文提出了一种基于组归一化的重要性评分方法GroupNormImportance,用于神经网络剪枝中的通道选择。该方法支持多种变体,包括标准L1范数、组L1范数和BN缩放因子等计算方式。核心实现包括三个关键部分:1)支持p范数计算(默认为L2);2)提供7种组重要性归约方法(如均值、最大值等);3)提供8种归一化方案(包括标准化、高斯化、LAMP等)。该方法输入一个剪枝组,输出各通道的重要性分数,通过依赖图可实现结构化剪枝。实验对比图展示了剪枝前后的效果差异,验证了该方法的有效性。 阅读详情

相关推荐

告别sgmediation!Stata中介效应分析新选择:mediation包完整操作指南

本文介绍了Stata中介效应分析从传统sgmediation命令向mediation包的范式升级。重点阐述了如何使用medeff和medsens命令进行更严谨的因果推断,并执行关键的敏感性分析,以评估结果对未观测混杂的稳健性,为学术研究提供发表级的分析工具。

redis7keeper的博客 1157

AtCoder Beginner Contest 377 A-E题解

关键在于怎么判断重复的点。先把每个区间右端点能允许的最小l标记,再从小到大枚举r,如果前面的l比当前l还大,就只能顺着前面的l才能保证合法(依题意)因为从小到大,l也不会超过r。设最小的符合条件的l的下表为a,那我们只要找到每个r对应的a,再求和就是答案。我们只要算每个环长度,算算会走到哪里,就可以算出答案。,那么就没有新的约束条件,就让他等于上一个推出来的a。首先如果只有一个区间,右端点可以选的l就是在l+1 - r这个范围内。模拟,开两个bool数组,记录每行每列有没有被标记,依题意就可以解决。

Zhou_yu_cong的博客 833

推荐国内可使用的chatGPT的工具

是基于ChatGPT 3.5和ChatGPT 4开发的chatGPT应用程序版,这个应用可以直接使用而不需要魔法,如果我们有自己的APT KEY的话可以一直使用,但是如果没有的话,我们只能使用ChatGPT 3.5 版本的,次数也是有所限制,应该是20次每天,这也足够我们的使用了,响应的速度也是非常的快。

有你真好的博客 1万+

AtCoder ABC377 A-D题解

ABC377题解

seanli1008的博客 667

STM32H7 Flash擦除后数据读取异常的缓存问题解析

本文深入分析了STM32H7系列芯片在Flash擦除后数据读取异常的缓存问题,揭示了由于数据缓存(D-Cache)和指令缓存(I-Cache)导致的数据一致性问题。通过详细的解决方案,包括手动维护缓存一致性和操作期间禁用缓存,帮助开发者有效解决这一常见但棘手的嵌入式开发难题。

weixin_29158413的博客 392

Linux 设置双网卡通信,外网网卡和内网网卡

背景,Linux 主机已经安装了内网、外网 2 张网卡,目前外网网络已通,需要设置内网网卡转发通内网 内网需要通信的设备的网段,如果 10.99.0.0 代表 10.99 网段的所有 IP 表示 10.xx 网段走 10.xx.xx.xx 这个网关转发 :内网网卡设备示例 2、设置启动自动生效 打开 文件,如果没有则创建该文件,然后在文件内写入如下的内容修改上面的语句 为 即可 示例...

简简单单Onlinezuozuo 6602

AtCoder Beginner Contest 377(C题)

不需要把所有格子的状态模拟一遍,只需要模拟不能放棋子的格子即可,最后用总数去减。注意STL的使用技巧(我也是模仿B站大佬的思路写的)。

2401_84046806的博客 299

短信验证码逻辑漏洞学习——各种绕过姿势技巧

短信验证码逻辑漏洞学习——各种绕过姿势技巧

记录并分享学习安全的知识点.. 2555

AtCoder Beginner Contest 374

AtCoder Beginner Contest 374

青少年趣味编程 772

【00】虹软2023届校招专场 ,计算机类笔试攻略(笔试考试时间、考察范围、笔试难度 等说明)

虹软科技2023校招笔试攻略:三大岗位类别(算法、算法优化、开发)分别于7月24日进行。题型包括选择题、编程题和问答题,其中算法类题目降低难度,编程题改为LeetCode模式。重点考察数学基础、机器学习、编程能力(C/C++/Python)、数据结构和算法优化等。建议根据投递岗位选择问答题,算法优化类注重系统知识和SIMD优化,开发类侧重多线程等实际应用能力。笔试结果将作为校招offer的重要参考。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 276

12、知识图谱数据处理与推理全解析

本文深入解析了知识图谱中的数据处理与推理技术,涵盖SHACL的多种约束类型(如值约束、范围约束、字符串约束、逻辑约束等)及其在数据质量控制中的应用,并介绍了常用的SHACL工具与实际案例。文章对比了SPARQL与SHACL的特点,探讨了RDF(S)的局限性,引出表达能力更强的OWL和OWL2语言及其在语义网和生物医学等领域的应用。此外,还阐述了规则在知识表示中的作用,包括产生式规则和Datalog规则,并总结了知识图谱中推理的重要性与典型流程,为构建高质量、可推理的知识图谱提供了全面的技术指导。

zz67890的博客 134

AtCoder Beginner Contest 337

你需要找最少的朋友,然后给他们一些果汁喝。一瓶果汁可以给多个朋友喝,一个朋友也可以喝多瓶果汁。瓶果汁,其中有一瓶变质了,喝了变质的果汁会拉肚子,但你不知道哪瓶变质了。场比赛,给出每场比赛中高桥队和青木队的积分,问最后谁总分更高或平局。第二天,朋友们会告诉你他们是否不舒服,你需要据此找到变质的果汁。个朋友喝,如果它第二天肚子疼了,说明。问最少进行的操作数,使得网格有连续。个格子的左端点 ,然后往右的。个格子里,不能有x,然后对。的二进制下,哪些数位是1。时,如果不为-1,则令。的二维网格,格子上有。

pystraf的博客 859

基于MATLAB的Hough变换指针式仪表识别

综上所述,本文介绍了如何使用MATLAB中的Hough变换算法来实现指针式仪表的自动识别和读数。通过图像预处理、Hough变换和直线提取,我们可以准确地检测指针的位置,并进一步进行仪表读数。本文将介绍如何使用MATLAB中的Hough变换算法来实现指针式仪表的自动识别和读数。在指针式仪表识别中,我们可以利用Hough变换来检测仪表盘上的指针。以上是基于MATLAB的Hough变换指针式仪表识别的详细步骤和源代码示例。根据指针在仪表盘上的位置,我们可以进行角度计算或使用其他技术来获取准确的读数。

techDM的博客 462

AtCoder Beginner Contest 377

AtCoder Beginner Contest 377

青少年趣味编程 949

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

AtCoder Beginner Contest 406

AtCoder Beginner Contest 406

青少年趣味编程 639

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

D - Many Segments 2(AtCoder Beginner Contest 377)

D - Many Segments 2(AtCoder Beginner Contest 377)

m0_74304371的博客 772

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

小记_AtCoder Beginner Contest 337

两组数相加比大小。

HHT0618的博客 1044

TOYOTA SYSTEMS Programming Contest 2024(AtCoder Beginner Contest 377)

思路:和前几天那个cf的题太像了,一眼就是环类问题了, 那么我们首先就要找环,我们对环上的位置以及样例分析后,会发现每次都会处于环的第2^k的位置,那么直接快速幂写代码就行了。

2301_80475191的博客 334

Codeforces Round 1005

Codeforces Round 1005

青少年趣味编程 1246

Codeforces Round 1012

Codeforces Round 1012

青少年趣味编程 1062

【AtCoder】Beginner Contest 377-F. Avoid Queen Attack

AtCoder新手组377场第F题,如何米字形遍历数组,如何表示对角线和反对角线。

weixin_55818116的博客 888

【AtCoder】Beginner Contest 377-C.Avoid Knight Attack

AtCoder Beginner Contest 377 c题题解,使用集合set和日字型八连通分量求解。

weixin_55818116的博客 957

AtCoder Beginner Contest 337 A-C

【代码】AtCoder Beginner Contest 337 A-C。

weixin_46800709的博客 547

【AtCoder】Beginner Contest 377-B.Avoid Rook Attack

AtCoder Beginner Contest 377 b题题解,使用数组标记法求解。

weixin_55818116的博客 1252

算法日常・每日刷题--<动态规划>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
上一篇: 浅谈 SPFA 的堆优化
下一篇: AT_abc369_b [ABC369B] Piano 3 题解
灶龙
博客等级 码龄4年 126粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值