牛客-模拟、枚举与贪心-2022.10.18

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

昨天和今天写的题都比较简单,本来都不想挂,但是还是觉得浅浅记录一下

Captcha Cracker

简单模拟输出即可

#include <bits/stdc++.h>
using namespace std;
int main() {
    int t;
    cin >> t;
    while(t--) {
        string s;
        cin >> s;
        for(int i = 0; i < s.size(); i++) {
            if(s[i] == '0' || s[i] == '2' || s[i] == '4' || s[i] == '6' || s[i] == '9') {
                cout << s[i];
            } else if(s[i] == 'z' && i + 3 < s.size()) {
                if(s[i] == 'z' && s[i + 1] == 'e' && s[i + 2] == 'r' && s[i + 3] == 'o')
                    cout << 0, i += 3;
            } else if(s[i] == 't' && i + 2 < s.size()) {
                if(s[i] == 't' && s[i + 1] == 'w' && s[i + 2] == 'o')
                    cout << 2, i += 2;
            } else if(s[i] == 'f' && i + 3 < s.size()) {
                if(s[i] == 'f' && s[i + 1] == 'o' && s[i + 2] == 'u' && s[i + 3] == 'r')
                    cout << 4, i += 3;
            } else if(s[i] == 's' && i + 2 < s.size()) {
                if(s[i] == 's' && s[i + 1] == 'i' && s[i + 2] == 'x')
                    cout << 6, i += 2;
            } else if(s[i] == 'n' && i + 3 < s.size()) {
                if(s[i] == 'n' && s[i + 1] == 'i' && s[i + 2] == 'n' && s[i + 3] == 'e')
                    cout << 9, i += 3;
            }
        }
        cout << endl;
    }
    return 0;
}

回文数

输出第一个最小的非零的数字,如果存在零,只输出一个,然后输出零个数的一半,之后继续从小到大输出即可。

#include <bits/stdc++.h>
using namespace std;
int main() {
    vector<int> num(10, 0);
    int odd = 0, sumlen = 0;
    for(int i = 0; i < 10; i++) {
        cin >> num[i];
        if(num[i] % 2 == 1)
            odd += 1;
        sumlen = sumlen + num[i];
    }
    if(odd >= 2) {
        cout << -1 << endl;
        return 0;
    }
    if(sumlen == num[0]) {
        cout << 0 << endl;
        return 0;
    }
    if(odd == 1) {
        stack<int> res;
        string tar = "";
        bool flag = false;
        for(int i = 1; i <= 9; i++) {
            if(num[i] >= 2) {
                for(int j = 1; j <= num[i] / 2; j++) {
                    tar = tar + to_string(i);
                    res.push(i);
                    if(!flag) {
                        flag = true;
                        for(int j = 1; j <= num[0] / 2; j++)
                            tar = tar + "0", res.push(0);
                    }
                }
            }
        }
        for(int i = 0; i <= 9; i++) {
            if(num[i] % 2 == 1) {
                tar = tar + to_string(i);
            }
        }
        while(!res.empty()) {
            tar = tar + to_string(res.top());
            res.pop();
        }
        if(tar.size() == sumlen) {
            cout << tar << endl;
        } else
            cout << -1 << endl;
    } else if(odd == 0) {
        stack<int> res;
        bool flag = false;
        for(int i = 1; i <= 9; i++) {
            if(num[i] >= 2) {
                for(int j = 1; j <= num[i] / 2; j++) {
                    cout << i;
                    res.push(i);
                    if(!flag) {
                        flag = true;
                        for(int j = 1; j <= num[0] / 2; j++) {
                            cout << 0;
                            res.push(0);
                        }
                    }
                }
            }
        }
        while(!res.empty()) {
            cout << res.top();
            res.pop();
        }
        cout << endl;
    }
    return 0;
}

Tic-Tac-Toe

简单模拟输出即可

#include <bits/stdc++.h>
using namespace std;
int main() {
    int t;
    cin >> t;
    while(t--) {
        string s[3];
        for(int i = 0; i < 3; i++)
            cin >> s[i];
        bool winA = false, winB = false;
        if(s[0] == "AAA" || s[1] == "AAA" || s[2] == "AAA")
            winA = true;
        if(s[0] == "BBB" || s[1] == "BBB" || s[2] == "BBB")
            winB = true;
        
        if(s[0][0] == 'A' && s[1][0] == 'A' && s[2][0] == 'A')
            winA = true;
        if(s[0][1] == 'A' && s[1][1] == 'A' && s[2][1] == 'A')
            winA = true;
        if(s[0][2] == 'A' && s[1][2] == 'A' && s[2][2] == 'A')
            winA = true;
        
        if(s[0][0] == 'B' && s[1][0] == 'B' && s[2][0] == 'B')
            winB = true;
        if(s[0][1] == 'B' && s[1][1] == 'B' && s[2][1] == 'B')
            winB = true;
        if(s[0][2] == 'B' && s[1][2] == 'B' && s[2][2] == 'B')
            winB = true;
        
        if(s[0][0] == 'A' && s[1][1] == 'A' && s[2][2] == 'A')
            winA = true;
        if(s[0][2] == 'A' && s[1][1] == 'A' && s[2][0] == 'A')
            winA = true;
        
        if(s[0][0] == 'B' && s[1][1] == 'B' && s[2][2] == 'B')
            winB = true;
        if(s[0][2] == 'B' && s[1][1] == 'B' && s[2][0] == 'B')
            winB = true;
        
        if(winA && winB)
            cout << "invalid\n";
        if(winA && !winB)
            cout << "Yes\n";
        if(!winA && winB)
            cout << "No\n";
        if(!winA && !winB)
            cout << "draw\n";
    }
    return 0;
}

5分钟搞懂深度学习如何革新声源定位:从GCC-PHAT到DNN的实战对比 本文深入对比了深度学习与传统GCC-PHAT方法在声源定位领域的实战表现。通过具体实验数据,展示了DNN模型在强混响、低信噪比等复杂场景下,如何实现定位准确率的显著提升,并探讨了其数据驱动范式带来的鲁棒性优势与工程部署挑战。 阅读详情

相关推荐

ADS入门学习笔记——射频振荡器的设计

振荡器是射频系统中的基本部件之一,可以将直流功率转换为射频功率,在特定的频率点建立起稳定的正弦振荡,成为所需的射频信号源。

weixin_42126696的博客 8949

【编程题-错题集】分组(枚举 + 二分)

这道题的暴力枚举思路基本正确,也想到了如何去分组才是正确的,不过没有理清楚在什么样的情况下会输出 -1 以及如何 +1 个分组的写法。虽然这道题目的暴力解法可以通过,但还是需要掌握二分优化的写法,发现自己虽然会写二分,但是对于二分的运用还是没有什么思路上的框架,下次遇到需要 check 的题目就往二分上想一想,看看能不能找出其中的二段性。从小到大枚举所有可能的最大值,找到第⼀个符合要求的最大值。利用二段性,⼆分出符合要求的最大值。

Elena's Blog 607

【ceph】OSD-基本存储单元

OSD 是 Ceph 的基本存储单元,负责对象的存储、检索和数据副本的管理。每个 OSD 进程通常对应于存储集群中的一个物理或虚拟存储设备(如硬盘或 SSD)。OSD 是 Ceph 的关键组成部分,负责对象的存储、管理和复制。通过多个 OSD 共同协作,Ceph 能够提供高可用性、可扩展性和容错能力,适用于各种存储需求。

qq_42853133的博客 1998

牛客-模拟、枚举、贪心 2022.11.18

从样例可以发现,首先可以假设所有的奶牛都为最高值,然后对于每一对给出的奶牛的区间,在这区间之间编号的奶牛需要高度减去一(区间为左开右开)。经过一番操作之后,即可得到所有奶牛可能的最高值。(当然可能重复出现的区间,对于重复出现的区间不需要进行重复操作即可)从高位到低位依次枚举,优先考虑从0变为1,就是说尽可能的让这个数小一点。可以考虑最开始每一位为 0/1,然后到最后是否可以变回 1。贪心排序花和道路所需时间即可。

Ls_attack的博客 286

桌面云架构讲解(VDI、IDV、VOI/TCI、RDS)

什么是云桌面桌面云是虚拟化技术成熟后发展起来的一种应用,桌面云通常也称为云桌面、VDI等桌面云中的云一般指的是企业的数据中心,通过在数据中心的服务器上安装若干个虚拟机,这个虚拟机就是桌面;但是终端无法直接连接到这个虚拟机(云桌面),因此就需要通过技术将就虚拟机变为桌面云发放出来;发放出来之后只需要瘦客户端(PC、手机、瘦客户机等)连接到数据中心的云桌面服务器平台,最终就可以连接到桌面来进行使用云桌面的优势终端与数据信息分离,数据在后台集中处理和存储 ,数据实现统一管理。

m0_49864110的博客 3万+

矿石生成(1)

这个提供了标准化的矿石放置配置模板简化了常见和稀有矿石的配置过程遵循了Minecraft原版的世界生成模式提高了代码的可读性和可维护性通过使用这个类,模组开发者可以更轻松地配置矿石的生成规则,而不需要每次都手动编写完整的放置修饰符列表。这种设计模式在原版Minecraft和其他大型模组中也很常见,是一种良好的编程实践。// 导入语句...// 字段和方法...包声明表明这个类位于luckymod模组的WorldGen包中,专门处理世界生成相关配置。导入语句。

qq_24992377的博客 136

牛客算法竞赛入门课第一节习题 2022.10.3

01串,即通过二进制位表示当前要选择的行或者列的状态。这样可以等价于进行深度优先搜索的返回结果,但是相较于深度优先搜索写法更加简单,同时对于状态记录更加容易去除一些重复记录的值。对于行或者列,先进行行选取,选择某些行的权值求和,之后再对列进行选取,记录相应的状态并求和。之后对于求和记录最大值。每次对数组中的数据进行操作后,之后都要记得恢复。

Ls_attack的博客 1152

【深度学习新浪潮】Nano Banana(Gemini 2.5 Flash Image)技术解析与开发者实操指南

重新定义了 AI 图像生成的产业标准。它不仅是“平民化的视觉工厂”,更是推动内容生产从“创意试错”转向“精准制造”的关键工具。未来,随着视频生成能力的加入(谷歌计划支持“文字指令 - 动态场景 - 多平台适配”全流程),Nano Banana 有望进一步颠覆影视、广告等领域的创作范式。:批量生成多场景图,模特姿态自然,服装褶皱和材质细节高度一致,节省 90% 拍摄成本。模型的非正式代号,是一款革命性的 AI 图像生成与编辑工具,主打。:生成细节丰富的厨师特写,光影自然,皮肤纹理和刀具反光逼真。

专注:太空算力、AI infra、异构调度、大模型成本工程 889

牛客-模拟、枚举与贪心 2022.10.19

递推 用res[i]表示iloveyou匹配了前i个的字符的子序列数,当遇到第i个字符,则之前匹配了前i-1个的字符的子序列都可以变为匹配了前i个的字符的子序列,即res[i]=res[i]+res[i-1]递推+高精度(所以python)

Ls_attack的博客 565

YOLO11改进 - 卷积Conv | DEGConv(方向引导边缘门控卷积) : 空间分块、方向先验、轻量边缘增强

本文介绍了方向引导边缘门控卷积(DEGConv),一种专为增强边缘敏感度与方向感知能力设计的轻量级模块。该方法通过 Sobel 算子生成方向嵌入,结合条纹卷积提取水平与垂直边缘特征,并利用门控机制动态抑制背景噪声,从而精准捕捉细粒度结构。我们将 DEGConv 成功集成进 YOLO11,在 Backbone 的 SPPF 后及 Neck 的 P3、P4 分支中引入该模块以优化特征提取。实验证明,集成 DEGConv 的 YOLO11 在检测任务中表现优异,有效提升了模型对复杂边缘与方向特征的建模能力。

魔改工程师的博客 676

GaussDB本地安装手册(主备模式)

如果实例状态是Normal,则安装成功。三节点集中式配置文件。

Sebastien23的博客 2633

牛客-模拟、枚举与贪心 2022.11.16

分成三类,稳定值增加,不变,减少。考虑从后往前遍历减少的情况,可以发现最后一个要符号条件,需要当前值大于消耗值,而恢复值是不需要看的,因为消耗完就结束了,所以恢复值不是那么重要。看到异或操作其实第一反应就是将数据改写成二进制形式,之后再观察样例的输出结果,可以发现如果当前二进制位零的个数超过了数据个数的一半,就讲结果这一位二进制写为零,否则写为一(因为需要多组可行解的情况下,数值尽可能小)(零的个数正好为一半时可以为零,也可以为一,但是为了数值尽可能小,所以选择为零)但是直接遍历只能过60%,还需要优化。

Ls_attack的博客 469

YOLOv11改进策略【卷积层】| CVPR 2024 可变形卷积 v4(DCNv4)无界权重提表达 + 线程合并降冗余,强化模型收敛速度

DCNv4(Deformable Convolution v4)是一种专为广泛视觉应用设计的高效算子,它对DCNv3进行了关键改进,有效解决了DCNv3存在的速度慢和表达能力受限等问题。

Limiiiing的博客 925

牛客-模拟、枚举与贪心 2022.10.23

先对数组按照从小打到排序,第一次,先让第一个数和第二个数大小相等,即相加的n-1个数只除了第二个数字,第二次,让第一第二个数和第三个数大小相等,即相加的n-1个数只除了第三个数字,之后每次相加同理,相加n-1次,即可得到答案,最后的结果就是最大的数字加上每次两个数字的差值,做一个前缀和相加。简单模拟输出,一眼可知,凳子消除最贵的商品,所以比较凳子和购物车两者的最小值,即可以得到最终的结果。一开始的想法是从前往后相加相同的数字,然后删除,但是会导致之后的数字也相同,导致并不是最少的次数。

Ls_attack的博客 462

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

牛客-模拟、枚举、贪心 2022.11.15

之后对于每个名字的查询,从名字的第一个字母出现的第一个位置开始,二分查找之后每个字母的位置是否大于当前的位置,如果大于,更新当前位置,直至名字数组结束,说明存在子序列,否则不存在。如果二者最高位相同,则比较下一位,直到出现不同的二进制位置,那么从这一位置开始往后到二进制的最低位,存在全为一的最大值,之前的高位置都相同,异或结果为0。对于药剂的数值,按照从大到小排序,对于奶牛的区间,按照区间最小值从大到小排序,之后遍历奶牛,对于每头奶牛,遍历药剂看是否存在符合条件的药剂,记录结果即可。模拟遍历01串即可。

Ls_attack的博客 392

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

牛客-栈、队列和stl 2022.10.12

一开始的想法是寻找从n开始到1的序列,但是只能过7.51%,题解区的做法是:贪心思想,记录一个后缀的最大值数组,每次将数组元素入栈,然后比较栈顶元素和当前最大值,如果栈顶元素大于当前最大值,则出栈,直到小于为止。(还是没想明白为何一开始做法不对,明后几天继续想想)昨天面试和笔试有点多,没时间刷了,写了两道水题感觉没必要记录,所以没有写。今天面了两家,笔了三家,抽空写了这么一道可以记录的题。

Ls_attack的博客 383

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

牛客-函数与递归 2022.10.10

其实就是简单的根据字符串序列,每次使用前半段构建左子树,后半段构建右子树,当前字符串判定是I,B,F串然后按照后序遍历的顺序输出。每次截取可以使用开始下标和结束下标进行标记,在这个范围内判断字符串输出什么即可。

Ls_attack的博客 352

牛客算法竞赛入门课第一节习题 2022.10.1

先求取一个前缀和数组,通过前缀和数组求取各个k个数序列的大小。之后先从前往后更新记录k个数序列的最大值,再从后往前更新记录k个数序列的最小值,最后从前往后或者从后往前遍历一次所有序列,对每次能取到的最大值求和,更新,得到最后的结果。通过每次对当前数值n的大小进行更新,从而能够逐步缩小范围从而规避第三种情况。对输入数字进行分解质因数。

Ls_attack的博客 343

牛客-模拟、枚举与贪心 2022.10.20

可以看到,当将第一行的答案放在第一列的时候,剩下的就是求的答题卡规模为(n - 1) * (n - 1) 的所有方案,当第一行的答案放在第二列的时候,剩下的就是求答题卡规模为(n - 2) * (n - 2) 的所有方案(因为此时根据答案横竖相同要求的对称性,确定了一行的同时也就确定了一列,所以此时有两行和两列都不能进行选择),同理将第一行的答案放在第三列也是一样的。所以横答题卡某一行的答案确定之后,对应的竖答题卡的某一列的答案也就确定了,并且交于这两个答案的行和列也已经确定了。在棋盘规模为 的情况下,

Ls_attack的博客 339

牛客-语法入门-循环结构程序设计 2022.10.5

负数进制转换规则:如果余数mod为负数,余数mod减去除数base进制基数,之后数字n减去余数mod再除以进制基数base,循环往复即可。记录上下限求取差值,还需要前缀和进行差值累加。

Ls_attack的博客 302

牛客算法竞赛入门课第一节习题 2020.10.2

由于坐标的范围是固定的,所以可以根据固定的坐标范围进行二维前缀和求取在边长R的范围内,能够取到的价值最大值。贪心思想,按照结尾排序,每趟记录开始点和结束点,每趟将已切分开的序列进行标记。在序列的头和尾结点切分不能算切分,不能算。贪心思想,按照结束时间排序,然后统计个数即可。

Ls_attack的博客 294

牛客-语法入门-顺序结构程序设计 2022.10.4

赛瓦维斯特定理:a,b > 1 gcd(a, b) == 1 使得ax + by = c的最大无整数解C的取值为 a * b - a - b。数学题,比较繁琐的是误差和精度。

Ls_attack的博客 291

牛客-模拟、枚举与贪心 2022.10.31

当我们希望对原数组的某一个区间[l,r]施加一个增量inc时,差分数组d对应的变化是:d[l]增加inc,d[r+1]减少inc,并且这种操作是可以叠加的。这道题目中,每次增量的数目为1。之后对于每个位置的不同货物的种数,进行一个前缀和,即可得到每个位置的不同货物的数目。当我们需要对原数组的不同区间施加不同的增量,我们只要按规则修改差分数组即可。(新学了差分数组这一数据结构,初次接触,之后好好复习)

Ls_attack的博客 264

牛客-模拟、枚举、贪心 2022.10.27

【代码】牛客-模拟、枚举、贪心 2022.10.27。

Ls_attack的博客 259

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

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

Mysssone的博客 212

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

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

wuqingyigexiaoba的博客 313
上一篇: 牛客-栈、队列和stl 2022.10.16
下一篇: 牛客-模拟、枚举与贪心 2022.10.19
Ls_attack
博客等级 码龄10年 25粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值