USACO 6.3.2 Cryptcowgraphy 剪枝

Linux故障排查和性能优化面试题及参考答案 在 Linux 系统中,负载(Load Average)是衡量系统繁忙程度的一个重要指标,它表示系统在特定时间间隔内运行队列中的平均进程数。负载值反映了系统当前的工作压力,主要包括 CPU 等待运行的进程数量和处于不可中断睡眠状态(通常是等待 I/O 操作完成)的进程数量。负载平均值通常有三个数值,分别代表过去 1 分钟、5 分钟和 15 分钟内的系统平均负载。例如,在使用uptime命令或查看文件时,会看到类似这样的输出,这三个数值依次表示过去 1 分钟、5 分钟和 15 分钟的负载平均值。 阅读详情

http://train.usaco.org/usacoprob2?a=Bc6YOT0fW9R&S=cryptcow

题目大意:字符串解码,字符串中分布有(C,O,W),每一步交换C-O, O-W中的子串,看能否最后达到目标字符串,如可以输出步数(目标字符串给出,且不含C,O,W)




字符串处理+搜索剪枝

①最直观的剪枝就是当前字符串中不含COW的前后缀必须要和目标串匹配,但仅仅如此肯定是过不了的

②上一条思想的升级版就是每个不含COW的小子串必须包含在目标串中

③在搜索的过程中很可能会出现相同解,所以要将字符串哈希查重

※此处的哈希我没有使用以前的map方法,而是学到了新技巧叫做ELFhash(),所采用的大质数是从别人的博客里看来的

搜索技巧:这道题还有一个特别的小tips就是搜索COW的时候要先搜索O,再从头尾两端分别向中心搜索CW,讲不清楚为什么,但是感觉上肯定在第一个字符(或C或O)确定的种种情况下,先搜O的后续搜索使用的时间要更平均(第一字符在头或尾的情况下),那么在总体复杂度差不多的情况下,平均即高效


我的额外处理:我在每次递归的时候传递了当前不含COW的前后缀结束的位置,这样一来在进行前两次剪枝和COW搜索的时候需要操作的范围就能更小,可以更快一点,而且反正这种向中心逼近的工作在第一条剪枝方法中也是肯定要做一次的


/*
ID: frontie1
TASK: cryptcow
LANG: C++
*/
#include <iostream>
#include <cstdio>
#include <string.h>

using namespace std;

string model_str = "Begin the Escape execution at the Break of Dawn";
char model[80] = "Begin the Escape execution at the Break of Dawn";
int modellen;
char ori[80];
bool hash_table[140000];
bool found = false;

int ELFhash(char *key){

    unsigned long h=0;
    unsigned long x=0;

    while(*key)
    {
        h=(h<<4)+(*key++);
        if( (x=h & 0xF0000000L)!=0){
          h^=(x>>24);
          h&=~x;
        }
    }
    return h % 131071;
}

void DFS(char str[], int dep, int lo, int hi)
{
    if(found) return;

    if(strcmp(str, model) == 0){
        found = true;
        printf("%d %d\n", 1, dep);
        return;
    }

    int num = ELFhash(str);
    if(hash_table[num]) return;
    else hash_table[num] = true;

    int length = strlen(str);
    int st = lo, ed = hi;
    for(;st < modellen && str[st] != 'C'; ++st){
        if(str[st] != model[st]) return;
    }
    for(int i = modellen-length+ed; i >= 0 && str[ed] != 'W'; --i, --ed){
        if(str[ed] != model[i]) return;
    }

    char segment[80];
    segment[0] = '\0';
    for(int i = st+1; i <= ed; ++i){
        if(str[i] == 'C' || str[i] == 'O' || str[i] == 'W'){
            if(model_str.find(segment) == -1) return;
            segment[0] = '\0';
        }
        else{
            strncat(segment, str+i, 1);
        }
    }

    for(int i = st; i <= ed; ++i){
        if(str[i] == 'O'){
            for(int j = st; j < i; ++j){
                if(str[j] == 'C'){
                    for(int k = ed; k > i; --k){
                        if(str[k] == 'W'){
                            char tem[80];
                            tem[0] = '\0';
                            strncat(tem, str, j);
                            strncat(tem, str+i+1, k-i-1);
                            strncat(tem, str+j+1, i-j-1);
                            strcat(tem, str+k+1);
                            DFS(tem, dep+1, st, ed);
                        }
                    }
                }
            }
        }
    }
}

int main()
{
    freopen("cryptcow.in", "r", stdin);
    freopen("cryptcow.out", "w", stdout);

    cin.getline(ori,80);
    modellen = strlen(model);

    DFS(ori, 0, 0, strlen(ori)-1);

    if(!found) printf("0 0\n");
    return 0;
}

YOLO26改进 - SPPF模块 | 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!! 本文介绍了Large Separable Kernel Attention (LSKA)模块及其在YOLO26中的结合应用。LSKA旨在解决Visual Attention Networks (VAN)使用大内核卷积时的计算效率问题,通过将2D深度卷积层的卷积核分解为级联的水平和垂直1-D卷积核,降低了计算复杂度和内存占用,且使VAN更关注物体形状。我们将集成LSKA的SPPF_LSKA模块引入YOLO26,大量实验表明,改进后的模型在对象识别、检测、分割和稳健性测试上表现出色。 阅读详情

相关推荐

Cadence Virtuoso里搞定斩波运放AC仿真:PSS+PAC保姆级设置避坑指南

然而,当工程师们尝试在Cadence Virtuoso环境中对这种特殊结构进行AC特性分析时,往往会遇到传统AC仿真方法失效的困境——这正是PSS(Periodic Steady-State)与PAC(Periodic AC)仿真组合大显身手的场景。实际项目中我们常采用"先快后精"的两步法:先用快速设置确认大体趋势,再针对关键频段进行精细仿真。例如某次设计迭代中,将harmonics从10增加到20后,发现在1MHz处的相位裕度估算误差达15°,这解释了之前样机测试时的振荡问题。

weixin_33508411的博客 450

【CodeVS 2083】Cryptcowgraphy 解密牛语

http://codevs.cn/problem/2083/ 奶牛搜索题。我加了如下剪枝: 1.用字符串hash判重。注意判重时也要对字符串长度判重,否则会出现两个字符串长度不同但hash值相同的情况,非常容易被卡hash。 2.先枚举O,再枚举C,W。枚举W时从后往前枚举。从网上的题解里看到的,具体为什么我也不知道(捂脸)。 3.对于所有的C,O,W字母可以将字符串切成好几段,...

as2886089的博客 304

别再乱点U盘里的.exe了!手把手教你清除‘Usb Disk.exe’病毒并恢复隐藏文件

本文详细介绍了如何识别和清除U盘病毒(如Usb Disk.exe),并提供从终止病毒进程到恢复隐藏文件的完整步骤。通过禁用自动播放、清理注册表和使用命令行工具,帮助用户彻底清除病毒并预防未来感染,确保数据安全。

weixin_42530732的博客 590

usaco 4.1 Cryptcowgraphy(DFS+hash+剪枝)

Cryptcowgraphy Brian Dean The cows of Farmer Brown and Farmer John are planning a coordinated escape from their respective farms and have devised a method of encryption to protect their written co

志当存高远 847

2025年GESP3月认证C++五级真题解析

小 A 有 2n 件物品,小 B 和小 C 想从小 A 手上买走这些物品。对于第 i 件物品,小 B 会以 bi 的价格购买,而小 C 会以 ci 的价格购买。对于所有测试点,保证 1 <= T <= 100, 2 <= g < p <= 10^9, g, p 为整数, p 为质数。对于所有测试点,保证 1 <= n <= 10^5, 0 <= bi, ci <= 10^9, bi, ci 为整数。对于另外 50 % 的测试点,保证 n <= 100000, 0 <= bi, ci <= 10^9。

lan_in的博客 1035

红薯游客小眼睛接口分析与Python脚本实现

小眼睛接口与请求流程分析,使用Python实现小眼睛+1

吴秋霖的博客 2613

USACO: Cryptcowgraphy

Cryptcowgraphy<br />Brian Dean<br />The cows of Farmer Brown and Farmer John are planning a coordinated escape from their respective farms and have devised a method of encryption to protect their written communications. <br />Specifically, if one cow has a

489

YOLO26改进策略【多YAML融合】| UNetV2 + BiFormer + WIoU

Wise-IoU是一种基于IoU的损失函数,旨在解决目标检测中边界框回归损失函数在处理低质量训练数据时的问题。

Limiiiing的博客 218

USACO Training Section 4.1 Cryptcowgraphy 奶牛密码

英文原题 中文题译   大意:   奶牛们要从农场逃跑,约定了一组密码通讯系统:在字符串中插入COW,并将CO与OW之间的字符交换,例如: aabbccdc变成aaCccObbWdd。奶牛会在同一字串上多次运用该方法加密以提高解密难度。现知原始字符串为 Begin the Escape execution at the Break of Dawn ,给定一个字符串,问是否是由该原始串加密...

山中竹笋 415

深度强化学习调参技巧:以DQN、DDPG、TD3、PPO、SAC等算法为例

深度强化学习调参技巧:以D3QN、DDPG、TD3、PPO、SAC算法为例

丨汀、的博客 3443

【数字孪生工业应用实战】第2篇:数字孪生系统架构设计与技术选型——从“作秀”到“实干”的骨架构建

本文系统剖析了数字孪生系统从“作秀”到“实干”的架构设计关键。针对多数项目在POC转生产时因架构混乱、选型盲目而失败的问题,深入阐述了四层分层架构(感知层、传输层、模型层、应用层)的设计原则,重点解析了感知层的异构适配与边缘预处理、传输层的异步解耦与多模式通信等工程细节。结合OPC UA、MQTT、EdgeX Foundry等主流技术选型对比,以及汽车焊装车间边缘智能网关的实战代码,提供了从零搭建微型孪生系统的完整指导。旨在帮助工程师建立清晰的选型决策逻辑,构建稳定、可演进的数字孪生“骨架”。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 266

USACO 4.1 Cryptcowgraphy dfs+剪枝

http://ace.delos.com/usacoprob2?a=2SgXjKYaF1c&S=cryptcow 一道bt的剪枝题,做了一下午,最后还是看了别人的解题报告过的,才菜了。。 。 剪枝1:C,O,W出现的次数要相同,除了C,O,W之外的其他字符串的个数和类型和目标串相同。 剪枝2:通过ELFHash对串进行判重.( HASHSIZE可以大点) 剪枝3:对于任意串, 任意相邻的'

Chris_Home 827

2026.7.9:2026.7.9最新的Ubuntu26.04安装docker-ce

本文介绍了在Ubuntu 26.04系统上安装Docker CE的完整步骤。首先需要卸载旧版本的Docker组件,然后通过设置官方仓库进行安装。具体步骤包括:更新系统、安装必要依赖、添加Docker GPG密钥、配置稳定版仓库源、安装Docker Engine及containerd。文章还提供了安装特定版本Docker的方法,并说明了如何将用户加入docker组以获取权限,最后设置Docker开机自启。整个过程详细清晰,适合在Ubuntu系统上部署Docker环境的用户参考。

拥抱具身智能,昇腾Ascend C 516

USACO 6.3 章节 你对搜索和剪枝一无所知QAQ

emmm........很久很久以前 把6.2过了 所以emmmmmm 直接跳过 ,从6.1到6.3吧 Fence Rails 题目大意 N<=50个数A1,A2... 1023个数,每个数数值<=128,B 问 A 们能拆分成多少个B,求最多的个数 样例 解释 A: 30=30 40=18+19+3 50=15+16+17+2 25=24 B: 15 (ok) 16 (ok) 17 ...

weixin_30577801的博客 252

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

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

jre9下载 jdk9

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

usaco 4.1.4 Cryptcowgraphy 搜索剪枝

<br />又是一道搞得我头晕的题,也是看解题报告才会做的。<br />刚开始还是用宽搜,超内存了,我还以为这道题宽搜和深搜都一样。<br />题目的大意:给你一串字符让你判断能否通过交换COW中的CO和OW之间的字符然后去掉COW 这种变换变成原来的那串字符;<br />剪枝:<br />1  字符串哈希函数,判断是否已经出现过这种字符串。我刚开始是用STL中的SET去判断的,到了第9组数据就不行了。看书对字符串HASH也不熟,都是网上找的代码的。<br />2  判断在COW这些字母之间的字符串是不是在

mnlm1991的专栏 798

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

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

usaco6.3.2 Cryptcowgraphy

一 原题 Cryptcowgraphy Brian Dean The cows of Farmer Brown and Farmer John are planning a coordinated escape from their respective farms and have devised a method of encryption to protect their writ

max_kibble的博客 381

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

usaco 4.1 Cryptcowgraphy 剪枝

 这道题目需要大量优化,要用到ELFhash字符串哈希,空间不能开太大,否则会很慢,但是在我的机器上试,空间不影响速度,有可能是因为usaco服务器的问题总结一下错误的地方1)下标错误:把c,o,w搞混了2)边界错误:对于字符数组,需要判断0 优化措施总结如下1)字符串的字符个数应该等于(目标字符串的长度)+3*k。如果不满足就可直接判断无解。 2)除了COW三个字符外,其他的字符的个

Ben的专栏 1162

USACO Section 4.1 Cryptcowgraphy - BT的DFS剪枝..

开始做的时候就想到是搜索...写完了样例就跑过了..然后提交就超时..后来再一想..裸搜时间复杂度高得惊人阿..做了几个优化..还是N久跑不出结果...我以为搜索是搜不过的...就想用其他方法来解决..但纠结了很久也没有个明确方向..    写了一天..实在是没辙了..就去网上搜了下解题报告..发现其实是搜索~~关键还是在于剪枝~~~我原来的搜索剪枝真是弱爆了..           1.C.

zzyzzy12 1181

[USACO 6.3.2] Cryptcowgraphy

题目大意   现在知道一个字符串"Begin the Escape execution at the Break of Dawn",在其中按顺序插入'C','O','W'.'C'和'O'之间的部分会和'O''W'之间的部分调换.   给一个字符串,问此字符串是不是又上述变换形成的并输出经历多少次变换. 题解   这是黑书<<算法艺术与信息学竞赛>>中的一道搜索题. ...

weixin_30751947的博客 191

USACO 6.3 Cryptcowgraphy

CryptcowgraphyBrian Dean The cows of Farmer Brown and Farmer John are planning a coordinated escape from their respective farms and have devised a method of encryption to protect their written c...

weixin_30888027的博客 110

usaco4.1.4 Cryptcowgraphy

最后的总结,最终没有看题解,自己想出来四个剪枝,刚开始四个剪枝加上一直无法ac,正在抓狂的时候发现有个地方写错了,导致许多新的枝条,改一下,ac了,这一题也没想象中的那么难,加油。 后记:看了题解后搜索顺序改了一下,直接导致剪枝四没有用上,发现慢的出奇,15s左右才能出解,看来剪枝四效率很高呢。 一看就是搜索,写一下裸的过了5个点 {ID:zhengha3 PROG:cryp...

weixin_30325971的博客 164

Cryptcowgraphy USACO 4.1(dfs搜索+剪枝)

题目越来越难了,我已经不抱希望自己能完全做出来了,先好好学习下大牛的题解吧。 这题我按照题解提示搜索+剪枝的,全部都用上了,还是在case 9 tle了,对比下大牛的代码,感觉自己的写还是太繁琐, 好多判断不需要或者完全可以归并到一种情况。 最后是跟着改改勉强过了 贴两个对比下。 1 /* 2 3 ID: hubiao cave 4 5 PROG: c...

weixin_30871293的博客 220

[USACO4.1.4 Cryptcowgraphy]

[关键字]:搜索 剪枝 [题目大意]:有一种加密方式:在一个字符串中加入‘C’‘O’‘W’,并把‘C’和‘O’中间的字符和‘O’和‘W’之间的字符交换,给出一个字符串,看是否是“Begin the Escape execution at the Break of Dawn ”经过加密(有可能多次加密)。 //===========================================...

weixin_30895603的博客 241

Cryptcowgraphy[需重做]

题意:有N段木板(各段长度给定—),以及R段需要切出来的木板(各段长度给定),求用一把完美的锯子(也就是切割无损失)最多能切出R段中的多少段? 解题思路: 基本完全参考SHFACM这篇博客上的思想和代码(http://www.cppblog.com/SHFACM/articles/72711.html?opt=admin) 代码: /* ID: zc.rene1 LANG: C P

原味 736

Cryptcowgraphy [USACO]

擦,公司上不了USACO了,怀疑公司用了一个牛X的防火墙,通过机器学习把我给禁掉了,实在恶心。我还以为USACO挂掉了,还好今天灵机一动,用“在线代理”这个有点sexy的网站可以突破天际。   这道题太恶心。。。我开始用的set<string> 妥妥的,bad_alloc啥的,可能是内存不足吧(USACO有16M内存的限制??),后来自己实现了个hash表,自己来,擦的,用了1...

weixin_30709061的博客 269

USACO SECTION 4.1 Cryptcowgraphy

Cryptcowgraphy Brian Dean The cows of Farmer Brown and Farmer John are planning a coordinated escape from their respective farms and have devised a method of encryption to protect their written com

206
上一篇: USACO 6.3.1 Fence Rails 01多背包问题(BS+IDDFS)
下一篇: USACO 6.3.3 Cowcycles 暴力
Frontier_Setter
博客等级 码龄10年 2粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值