CodeChef WPROB(数组辅助+暴力求解)

chef-helpers:在 Opscode Chef 食谱中使用的辅助方法集合 厨师助手 这个 gem 包括用于 Opscode Chef 的各种附加辅助方法。 安装 要在您的 Chef 食谱中使用辅助方法,请在您的食谱中使用以下代码: chef_gem 'chef-helpers' require 'chef-helpers' 要在 Knife knife exec脚本或 Knife 插件中本地使用助手,只需将chef-helpers gem 添加到您的依赖项并require 'chef-helpers' 。 用法 辅助方法的详细文档可以在看到 查找现有模板和说明书文件 配方 DSL 使用ChefHelpers::HasSource模块进行了扩展, ChefHelpers::HasSource模块提供了用于检查 Chef 服务器上存在哪些模板和食谱文件的方法。 详细文档可在 厨师::节点#盟友 node.allies方法返回一个节点的allies数组。 它们是 立即下载

这边有中文的题目:
https://codechef_shared.s3.amazonaws.com/download/translated/LTIME21/mandarin/WPROB.pdf

解析:

因为每次移动木块,只有该木块移动其他的木块的相应位置不会发生改变,利用贪心的思想,移动的次数为当前位置前面不同颜色木块的次数。
因为最终的情况只可能有6种。所以枚举这6种情况,计算出最小的移动步数。
那么移动步数怎么计算呢?
比如说我要变成rgb
r移动的次数 = 在 第一个 r前面有多少个 gb + 第二个 r前面 有多少个 gb …..
第二次 找 b
b移动的次数 = 第一个 g前面有多少 b + 第二个 g前面有多少 b…..
移动成rgb的次数 = r移动的次数+b移动的次数

注意:这题的答案超过了int要用long long初始化最小值是要开成很大的数字,long long范围的最大值。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdlib>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int N = 1e5 + 10;
char s[N];
ll dp[N][3];
int color[3], hash[256];
int len;
void init() {
    for(int i = 0; i < 3; i++)
        color[i] = i;
}
ll solve() {
    ll cnt = 0;
    for(int i = 1; i <= len; i++) {
        if(color[0] == hash[s[i]]) {
            cnt += (dp[i][color[1]] + dp[i][color[2]]);
        }
    }
    for(int i = 1; i <= len; i++) {
        if(color[1] == hash[s[i]]) {
            cnt += dp[i][color[2]];
        }
    }
    return cnt;
}
int main() {
    hash['r'] = 0; hash['g'] = 1; hash['b'] = 2;

    int T;
    scanf("%d", &T);
    while(T--) {
        init();

        scanf("%s", s+1);
        len = strlen(s+1);

        for(int j = 0; j < 3; j++) dp[0][j] = 0;
        for(int i = 1; i <= len; i++) {
            for(int j = 0; j < 3; j++)
                dp[i][j] = dp[i-1][j];
            if(s[i] == 'r') dp[i][0]++;
            else if(s[i] == 'g') dp[i][1]++;
            else if(s[i] == 'b') dp[i][2]++;
        }
        ll MIN = solve();
        while(next_permutation(color, color + 3)) {
            MIN = min(MIN, solve());
        }
        printf("%lld\n", MIN);
    }
    return 0;
}
68页|大型车企集团数字化转型汽车数字化信息系统平台规划方案 这份PPT文档提供了一个全面的汽车集团数字化转型规划方案,涵盖了项目目标、规划思路、实施关注点、解决方案建议以及合作优势等多个方面。 阅读详情

相关推荐

MT6816角度传感器SPI通信避坑指南:从数据手册到稳定读取的3个关键步骤

本文详细解析了MT6816角度传感器SPI通信中的常见问题与解决方案,包括寄存器地址计算、SPI时序配置和数据校验等关键步骤。通过实测波形和代码示例,帮助工程师避开数据手册中的隐藏陷阱,实现稳定可靠的角度数据读取,特别适用于高精度电机控制场景。

weixin_42520573的博客 517

朴素贝叶斯分类的简单解释

I am finding it hard to understand the process of Naive Bayes, and I was wondering if someone could

w36680130的博客 1577

MTK Sensor驱动调试实战:从AP到SCP的完整流程解析

本文详细解析了MTK平台Sensor驱动从AP侧到SCP侧的完整调试流程。内容涵盖AP侧驱动集成、DTS配置、内核编译与验证,以及SCP侧Tinysys框架下的代码集成、Overlay配置与I2C设置等核心步骤,并分享了中断唤醒、功耗优化及传感器数据校准等实战经验与常见问题排查方法,为硬件驱动工程师提供了一份全面的实战指南。

weixin_29175469的博客 353

Codechef Maximum Weight Difference题解

Maximum Weight Difference Chef has gone shopping with his 5-year old son. They have bought N items so far. The items are numbered from 1 to N, and the item i weighs Wi grams. Chef's son insist

靖空间 1160

深度学习暑期科研项目(两个月发EI论文)

对本科生而言,越早接触系统的科研训练开始上手科研项目,就越能在未来的升学求职中占据很大的优势。暑假是提升个人简历、丰富科研经历的最佳时期!哈尔滨工业大学博士师兄也会在8月1日开始带大家上手科研项目,并撰写发表EI会议论文。

Magnolia_He的博客 1443

Ubuntu终端一键安装英伟达驱动:无需手动下载的完整指南

本文提供了一份在Ubuntu系统上通过终端命令一键安装英伟达显卡驱动的完整指南。该方法利用官方PPA源,无需手动下载驱动文件,可自动检测硬件并安装最佳版本,极大简化了流程,适合深度学习环境搭建等场景,有效提升安装效率与稳定性。

weixin_29232121的博客 180

【BZOJ4260】Codechef REBXOR

                              4260: Codechef REBXOR                                             Time Limit: 10 Sec  Memory Limit: 256 MB                                                        Submit:...

ETO的博客 317

二维码扫描与页面跳转的完整流程解析

本文详细解析了二维码扫描与页面跳转的完整流程,从核心原理到前后端实现,涵盖了二维码生成、扫码事件处理、后端验证机制及跳转逻辑等关键环节。特别介绍了如何使用qrcode.js生成二维码、WebSocket处理扫码状态以及JWT令牌验证设计,帮助开发者构建安全高效的扫码跳转系统。

cicd6pipeline的博客 1089

CodeChef CHAPD

个人赛的题 出不来 还是没有想清楚! #include using namespace std; typedef long long ll; ll gcd(ll a,ll b){ return b==0?a:gcd(b,a%b); } int main() { int t; scanf("%d",&t); while(t--){ ll a,b;

Dosth_Magic 841

四非人的保研之路,2024(2025届)四非计算机的保研经验分享(西南交通、苏大nlp、西电、北邮、山软、山计、电科、厦大等)

本身我就是福建人,xmu 3小时就能到家,然后导这边毕业要求容易,不想读博,达到要求就能放实习,每周打卡35h,比较自由,遂考虑。北邮弱com,联系了蛮多老师,几乎都给了考核机会,面试的老师好几位都考核人工智能基础,会问你卷积的计算,问的还是蛮细的。当时结果是暂定,以为是稳了,遂没联系其他老师,但是之后询问发现只是候补,懒得联系其他老师,928候补到,放弃。东北大学,2000人大机试,入营点送,全国巡回面试,每个人就面不到10分钟,我就被问了3个问题就结束了,候补。科研组,导师有人脉,想读博出成果可以去。

专注于AI领域前沿知识,业余爱好开发软件 4352

YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026

YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026 (以YOLO26最新目标检测模型为基础,利用C2PSA_FSD创新模块进行改进)

2502_91881744的博客 315

CodeChef SEGSUMQ Yet Another SubSegment Sum Problem(思路来自他人)

题目:点击打开链接 题意:给你A,B两个数组,然后给你M次询问,问你从L到R所有的max(0,Ai*c-Bi*d,0)的最大值。 思路:利用线段树维护各区间斜率以及各区间A,B的总和。 详解: 根据本题,直接暴力是怎么样的呢?就是对于每一个查询,在区间L~R之中单独计算,最坏的情况复杂度是o((m+1)*n),很显然,超时。 那怎么减少复杂度呢? 这时你

对着天说晚安 347

Arduino ESP32 Web服务器从microSD卡读取

Arduino ESP32 Web服务器从microSD卡读取 将网页内容放到SD卡中,当有客户端数据请求时,从SD卡读取信息进行发送,比起SPIFFS文件系统,更节约板上的硬件资源。 SD卡接线说明 ESP32----- SD D5(GPIO 5)-----CS D18(GPIO 18)-----SCK D19(GPIO 19)-----MISO D23()GPIO 23-----MOSI 文件放置 需要把文件放置到SD卡的根目录下。注意SD卡的格式FAT32格式。 实例代码 /*

perseverance51博客 1434

【codechef】 Chef and Piano Scales (简单题)

Recently, Chef got obsessed with piano. He is a just a rookie in this stuff and can not move his fingers from one key to other fast enough. He discovered that the best way to train finger speed is to

芒果街上的小屋(此博客暂时停用) 782

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

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

UVA - 11059 Maximum Product (简单枚举)

Problem D - Maximum Product Time Limit: 1 second Given a sequence of integers S = {S1, S2, ..., Sn}, you should determine what is the value of the maximum positive product involving consecutive term

小G的ACM之路 1527

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

CodeForces - 63C Bulls and Cows(暴力求解)

Bulls and Cows Time Limit: 2000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Description The "Bulls and Cows" game needs two people to play. The thinker thi

小G的ACM之路 1345

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

UVA - 11218 KTV(暴力求解)

Problem K KTV One song is extremely popular recently, so you and your friends decided to sing it in KTV. The song has 3 characters, so exactly 3 people should sing together each time (yes, there

小G的ACM之路 1240

hdu 5374 Tetris(模拟俄罗斯方块)

题意: 俄罗斯方块想必大家都玩过,现在题目给出了3种俄罗斯方块。 O形,I形,L形 以及5种操作,w选择,a左移一位,d右移以为,w下移一位,p什么都不做。然后又给出了方块出现的序列,要求按所给出的操作能消除多少行。 解析: DRAW数组表示已(x,y)(x,y)为左下角,能在图上画出的形状。 然后模拟每个每个方块,直到当前方块不能动位置,在二维数组中标记方块,然后接下来选

小G的ACM之路 1199

HDU 5175 Misaki's Kiss again(暴力枚举+异或运算)

题意 找到满足gcd(N,M)==NxorM的M值(1<=M<=N) 解析: 令M = N xor K,原式:gcd(N,N xor K) == N xor (N xor K) == K 由此我们可以发现K是N的约数,找到所有N的约数,判断是不是满足那个等式即可,因为是异或运算,结果可能比约数本身大,如1xor2==3,还有异或出来结果等于0的舍掉,gcd(n,n) != n xor

小G的ACM之路 1127

HDU - 2474 Process scheduling (模拟银行家算法)

题目大意: 给你两个数字n和m,n代表进程的个数,m代表资源的个数。 现在题目要求你输入4个部分: 1.n和m 2.当前每个进程所含有的资源数,注意这里行为资源,列为进程 3.每个进程每次执行所需要的资源数 4.当前操作系统所拥有的资源 现在要你模拟银行家算法,分析是否能把所有的进程跑完,如果能就Yes,否则No 解析: 银行家算法的步骤: 每次查找所需要没有用过的进程,并

小G的ACM之路 1086

UVA - 131 The Psychic Poker Player (暴力枚举+模拟)

The Psychic Poker Player  In 5-card draw poker, a player is dealt a hand of five cards (which may be looked at). The player may then discard between zero and five of his or her cards and ha

小G的ACM之路 1086

UVA - 11205 The broken pedometer(子集枚举+增量构造法)

The Broken Pedometer  The Problem A marathon runner uses a pedometer with which he is having problems. In the pedometer the symbols are represented by seven segments (or LEDs):

小G的ACM之路 1076

Uva 10167 - Birthday Cake

题意:给你一系列的点,让你找出一条直线AX+BY=0,使直线把这一系列的点分为两个部分。 由于A,B的范围在-500~500之间,所以直接枚举就可以了。

小G的ACM之路 976

UVA - 725 Division (暴力枚举)

Division  Write a program that finds and displays all pairs of 5-digit numbers thatbetween them use the digits 0 through 9 once each, such that thefirst number divided by the second is equ

小G的ACM之路 952

UVA - 10098 Generating Fast (全排列)

Generating Fast, Sorted Permutation Input: Standard Input Output: Standard Output   Generating permutation has always been an important problem in computer science. In this problem you will hav

小G的ACM之路 943

UVA - 146 ID Codes (枚举排列)

ID Codes  It is 2084 and the year of Big Brother has finally arrived, albeit a century late. In order to exercise greater control over its citizens and thereby to counter a chronic breakd

小G的ACM之路 908
上一篇: CodeChef CDMU02(数组辅助查询)
下一篇: UVa 10723 Cyborg Genes(LCS变种)
HelloWorld10086
博客等级 码龄12年 88粉丝 614原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值