牛客-模拟、枚举与贪心-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;
}

【代码审计】RuoYi定时任务漏洞:从SQL注入到RCE的攻防演变 本文深入剖析了RuoYi框架定时任务模块从早期版本无校验到引入黑白名单机制,再到被组合利用实现RCE的完整漏洞演变过程。文章详细分析了SQL注入与定时任务功能结合导致的远程代码执行漏洞,并总结了代码审计与安全开发的核心要点,为开发者提供了重要的安全参考。 阅读详情

相关推荐

openlayers6【十九】vue HeatmapLayer热力图层实现热力图效果详解

文章目录1. 写在前面2. Heatmap 类实现热力图2.1 Heatmap 参数2.2 实现热力图3. 完整代码4. 添加删除map图层的方法5. 热力图自身的get,set方法 1. 写在前面 我们主要看热力图的效果,区域绘制效怎么设置详细内容可以访问 openlayers6【十七】vue VectorLayer矢量图层画地图省市区,多省市区(粤港澳大湾区)效果详解 在 openlayers 中,图层是使用 layer 对象表示的,主要有 WebGLPoints Layer、热度图(HeatMap L

@必意玲 1万+

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

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

Elena's Blog 607

如何加载交易策略EA到MT4/MT5

1、打开MT4/MT5软件 2、首先,必须有一个EA,而且必须是mq4/ex4为扩展名。点击左上角“文件”—“打开数据文件夹”,找到安装路径 3、将EA的ex4或mq4文件放到MT4目录\MQL4\Experts里面(本文以名为Demo的EA为例) 4、如果有DLL库文件,复制到experts目录下的libraries子目录中 5、如果有tpl模板文件,复制到templates目录中 6、添加完成后重启MT4,点击允许EA运行图标 7、在导航中找到刚才安装的EA,拖拽到...

weixin_41364817的博客 7359

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

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

Ls_attack的博客 286

数字IC设计实现之hierarchical flow系列(一)

数字IC设计实现之hierarchical flow系列(一) 最近这段时间小编又比较忙起来了,今天抽空来咖啡厅码字来了,刚到时脑子一片空白,不知道要分享些什么(项目结束后将会在知识星球上分享数字 IC 设计实现 Tapeout 前要review的那些 checklist)。突然间想起来有个星友希望小编分享些数字 IC 设计实现 hierarchical flow 的相关内容。考虑到现在大都采用这种方式来做 design 和实现,那就选这个 topic 了。限于篇幅和时间限制,今天只分享逻辑综合部分和布局布

weixin_37584728的博客 5999

MOSFET热失效机理与保护电路设计:实战案例

深入解析MOSFET工作原理及其在高温下的失效机制,结合实际案例探讨有效保护电路设计,提升系统可靠性与安全性。

weixin_28713083的博客 850

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

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

Ls_attack的博客 1152

宝塔面板添加站点及运营商SSL免费证书的申请与使用

本文详细介绍在宝塔面板下如何正确添加站点、配置站点,及在运营商如何申请免费SSL证书,将其配置到宝塔站点里。 给你的网站加一把锁,教你免费SSL证书申请,配置到自己的网站中。 环境:Ubuntu server 18 工具:宝塔控制面板 平台:阿里云 Web服务器:Nginx 宝塔:https://www.bt.cn/ 阿里云:https://www.aliyun.com/ 腾讯云:https://cloud.tencent.com/ 要求: 1.宝塔控制面板搭建完毕。 2掌握域名解析的原理。 3.了解ht

贺兰山长老 5058

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

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

Ls_attack的博客 565

SpringCloud 2025王炸更新!GraalVM原生镜像启动速度提升90%实战

在当今云原生和Serverless架构盛行的时代,应用的启动速度已成为衡量技术栈竞争力的关键指标。传统SpringCloud应用由于依赖JVM的动态类加载、反射等机制,启动时间通常超过30秒,在Kubernetes滚动更新和函数计算场景下成为显著性能瓶颈。2025年,SpringCloud迎来里程碑式更新,通过深度集成GraalVM原生镜像技术,实现了启动速度提升90%的惊人突破,让SpringCloud应用正式进入"秒级启动"时代。

小筱在线博客 1099

addBumpConnectTargetConstraint 命令详解

本文介绍了Cadence Innovus中用于倒装芯片设计的addBumpConnectTargetConstraint命令的核心功能和使用方法。该命令主要用于为凸点(Bump)添加连接目标约束,通过绑定实例、引脚/网络和端口号等属性,实现凸点与电源/信号网络的精准映射。文章详细解析了命令语法结构、参数说明及使用场景,包括必选参数(指定凸点方式)、分支选择(实例连接或电源连接类型)以及互斥参数(引脚名与网络名)等重要注意事项,并提供了典型应用示例。该命令特别适用于倒装芯片设计中凸点与PG网络、IO实例的连接

u013620135的博客 394

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

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

Ls_attack的博客 469

【QCA6174】QCA6174 DFS认证的时候会有概率信道不会跳转的情况,通常跳转成功概率只有25%问题分析及解决方案

Master设备需要测试的项目。

wgl307293845的博客 752

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

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

Ls_attack的博客 462

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

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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

Ls_attack的博客 392

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

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

牛客-栈、队列和stl 2022.10.12

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

Ls_attack的博客 383

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

牛客-函数与递归 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的博客 210

【算法拾光】链表 哈希表|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、付费专栏及课程。

余额充值