Codeforces Beta Round #17 C. Balance DP

sap外币重估流程图_SAP 外币评估方法(Valuation Method,评估方法) 在FI-GL模块评估外币时(T-code:F.05),需要输入ValuationMethod。下面分解一下评估方法是如何定义的。IMG -> FI -> General LedgerAccounting ->Business Transactions ->Closing ->Valuating -> ForeignCurrency Valuation ->... 阅读详情

转自:http://www.cnblogs.com/qscqesze/p/6173531.html

C. Balance
题目链接

http://codeforces.com/contest/17/problem/C
题面

Nick likes strings very much, he likes to rotate them, sort them, rearrange characters within a string… Once he wrote a random string of characters a, b, c on a piece of paper and began to perform the following operations:

to take two adjacent characters and replace the second character with the first one,
to take two adjacent characters and replace the first character with the second one
To understand these actions better, let’s take a look at a string «abc». All of the following strings can be obtained by performing one of the described operations on «abc»: «bbc», «abb», «acc». Let’s denote the frequency of a character for each of the characters a, b and c as the number of occurrences of this character in the string. For example, for string «abc»: |a| = 1, |b| = 1, |c| = 1, and for string «bbc»: |a| = 0, |b| = 2, |c| = 1.

While performing the described operations, Nick sometimes got balanced strings. Let’s say that a string is balanced, if the frequencies of each character differ by at most 1. That is  - 1 ≤ |a| - |b| ≤ 1,  - 1 ≤ |a| - |c| ≤ 1 и  - 1 ≤ |b| - |c| ≤ 1.

Would you help Nick find the number of different balanced strings that can be obtained by performing the operations described above, perhaps multiple times, on the given string s. This number should be calculated modulo 51123987.
输入

The first line contains integer n (1 ≤ n ≤ 150) — the length of the given string s. Next line contains the given string s. The initial string can be balanced as well, in this case it should be counted too. The given string s consists only of characters a, b and c.
输出

Output the only number — the number of different balanced strings that can be obtained by performing the described operations, perhaps multiple times, on the given string s, modulo 51123987.
样例输入

4
abca
样例输出

7
题意

你可以使得一个元素变成他周围的元素的颜色,可以改变无数次,现在给你一个串,问你一共有多少种方案,使得a和b和c的个数相差不超过1
题解

dp[i][a][b][c],表示考虑到第i个位置,当前有a个a,b个b,c个c 的方案数

然后转移就好了

维护一个next[i][3]表示下一个在哪儿。

虽然是4维dp,但是却是150 50 50 50 的

#include<bits/stdc++.h>
using namespace std;
const int mod = 51123987;
int dp[152][52][52][52],n,nxt[152][3];
string s;
void add(int &a,int b){
    a = a+b;
    if(a>=mod)a%=mod;
}
int main()
{
    scanf("%d",&n);
    cin>>s;
    for(int j=0;j<3;j++)
        nxt[n][j]=n;
    for(int i=n-1;i>=0;i--){
        for(int j=0;j<3;j++)
            nxt[i][j]=nxt[i+1][j];
        nxt[i][s[i]-'a']=i;
    }
    dp[0][0][0][0]=1;
    int ans = 0;
    for(int i=0;i<n;i++){
        for(int a=0;a*3<=n+2;a++){
            for(int b=0;b*3<=n+2;b++){
                for(int c=0;c*3<=n+2&&a+b+c<=n;c++){
                    if(dp[i][a][b][c]){
                        if(a+b+c==n&&abs(b-c)<=1&&abs(a-c)<=1&&abs(b-c)<=1)
                            add(ans,dp[i][a][b][c]);
                        add(dp[nxt[i][0]][a+1][b][c],dp[i][a][b][c]);
                        add(dp[nxt[i][1]][a][b+1][c],dp[i][a][b][c]);
                        add(dp[nxt[i][2]][a][b][c+1],dp[i][a][b][c]);
                    }
                }
            }
        }
    }
    printf("%d\n",ans);
}
【Docker】Ubuntu安装Docker 1 安装Docker 安装Docker有三种方法,这里只用repository安装,更详细的安装方法可以看官方文档。 1.1 添加repository 首先更新apt: sudo apt-get update 安装一些包让apt可以通过https使用repository: sudo apt-get install \ apt-transport-https \ ca-certif... 阅读详情

相关推荐

高速接口电平标准互连设计:LVPECL、PECL与LVDS的实战解析

本文深入解析了LVPECL、PECL与LVDS三种高速接口电平标准的互连设计实战。针对信号共模电压、阻抗匹配等核心差异,详细对比了直流耦合与交流耦合两种主流方案,并提供了电阻网络计算、布局布线要点及光模块等特殊场景下的选型建议,帮助工程师解决高速信号间的“翻译”难题,确保信号完整性。

weixin_29198045的博客 535

Balanced Strings(模拟+讨论)

题意:给出字符串,问构成给出的一个主串中的所有偶数长度的连续字符串并且所有连续的字符串中元音字母个数等于辅音字母个数;问一共有多少种?其中元音有a,e,i,o,u,y,6种,辅音有20种;给出主串?上面可以填元音或者辅音; 其实这道题就是考阅读。。。当时比赛没注意这道题,结果下来补题的时候才知道这个比H简单多了,直接模拟就A了;根据题目要求,不难发现题目中说的所有偶数长度,那么最小的偶数长度就是...

qq_44555205的博客 419

【比较器仿真】

比较器tran noise、pnoise仿真、噪声仿真、MC失调仿真

pickweb的博客 1万+

Balanced Strings emo

#include<bits/stdc++.h> using namespace std; typedef long long ll; int is(char c) { if(c=='i'||c=='o'||c=='a'||c=='u'||c=='e'||c=='y') return 1; else return 0; } int main() { string s; ll l,sum=1,cnt=0,g=0,ji,f=1; cin>>s; l=s.size();

qq_52088931的博客 1302

2024年下半年软考系统架构设计师案例分析题

摘要: 本文包含两个软件系统设计案例。案例一讨论了大语言模型智能系统的质量属性需求分析,识别了功能性、性能、可靠性等需求,并对比了ping/echo和心跳两种故障检测策略。案例二探讨了购物网站的缓存设计,包括Cache-Aside策略的数据读取/更新流程,以及解决缓存一致性的多种方案(消息队列、数据库插件、锁机制等)。此外还涉及Elasticsearch分词器的特点比较和RESTful架构实现前后端分离的原理。这些案例展示了软件架构设计中的质量属性权衡、缓存策略选择及系统解耦等关键技术考量。<|end

卿着飞翔 1047

【ORB_SLAM系列4】—— 一文搞定如何在Ubuntu20.04中安装运行ORB_SLAM3(包含ROS版本和非ROS版本)

ORB-SLAM3是一款基于特征点的实时单目SLAM系统,是SLAM领域的研究热点之一。它的核心算法是结合了ORB特征点提取和描述子匹配、单目RGB相机的深度估计、运动估计和地图优化等步骤,能够在实时性和精度之间取得平衡,适用于各种环境下的定位和建图任务。在各种应用领域都有广泛的应用。本教程主要是介绍了关于在ubuntu20.04中运行ORB_SLAM3的所有依赖的库的安装过程,和所遇到的一些报错的解决方法。有什么问题,可以评论区里面交流讨论

2401_82458959的博客 5039

Codeforces Beta Round #17 C. Balance (字符串计数 dp)

C. Balance time limit per test 3 seconds memory limit per test 128 megabytes input standard input output standard output Nick likes strings very much, he...

weixin_34367845的博客 162

ESP32开发进阶:1.接入文心一言

ESP32开发进阶:接入文心一言大模型,串口对话

qq_53529450的博客 1431

Balanced String 平衡子串问题

题目: 给你一个长度为n的字符串,字符串只包含0和1,找一个最长的子串,要求这个子串的0的个数等于1的个数,输出最大长度 第一行输入字符串的长度n,1<=n<=100000.第二行输入字符串s. 输出满足条件的最大子串长度,如果不存在这样的子串,输出0 Input 8 11010111 Output 4 Input 3 111 Output 0 #include<cstdio> #include<iostream> #include<algorithm> u

qq_45651829的博客 867

骑砍Ⅱ霸主MOD开发(16)-FaceKey&BannerKey

摘要:本文介绍了FaceKey人物模型和BannerKey旗帜模型的生成流程。FaceKey通过序列化参数生成人物模型,包括头部(脸部、嘴、睫毛、眼睛)、眉毛、头发、身体和躯干等组件,每个部分通过特定标签和骨骼绑定实现。BannerKey则通过解析参数生成旗帜模型,包括模型、贴图和颜色等元素。两种模型都采用参数化设计和XML配置文件实现模型生成与定制。

骑砍战团&霸主MOD开发 2285

Python爬虫博客:如何抓取时事新闻信息 —— 从各大新闻网站获取实时新闻数据

发送请求:向目标新闻网站发送 HTTP 请求,获取网页内容。解析网页:使用解析库(如)从网页中提取新闻标题、摘要、内容、发布时间等。绕过反爬虫机制:使用代理、设置请求头、模拟浏览器行为等策略绕过反爬虫技术。数据存储与清洗:将抓取的数据保存到本地文件或数据库中,并进行清洗,确保数据的可用性。在抓取过程中,我们还会面对很多实际问题,比如反爬虫技术、分页抓取、动态加载的内容等。接下来,我们将逐步介绍如何使用不同技术抓取静态和动态网页,并对抓取的内容进行处理。Scrapy。

2201_76125261的博客 2135

CodeForces 17C Balance (DP)

题目类型  DP 题目意思 给你一个最多100字符长的字符串, 问是否满足这个格式 -> @[/resource] 其中 是一个只包含 字母或数字或下划线 的长度为 1 - 16 的字符串      是一个由 若干个以字符 '.' 进行分隔的单词 组成的长度为 1 - 32的字符串, 其中单词的限制和 一样      resource的限制与 一样  [/resource] 的

yunyouxi0's blog 7万+

Qt/C++音视频开发1-vlc解码播放

一、前言 最开始接触视频监控这块的时候,用的就是vlc作为解码的内核,主要是因为vlc使用简单方便,直接传入一个句柄即可,简单几行代码就可以实现一个视频流播放,很适合初学者使用,也推荐初学者用qt+vlc来做播放器,提供的接口还是非常友好的,而且门类特别多,想要获取媒体文件的各种信息比如宽高,设置宽高比等,直接调用接口函数传入参数就能设置。 所有用vlc做视频监控解码的人都会遇到一个问题,那就是鼠标事件被接管拦截了,不能识别鼠标事件,比如双击最大化等,这就很憋屈了,明明很好用的一个东西,怎么突然之间鼠标事件

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 4938

Codechef :Chef and Balanced Strings/CBAL(分块)

传送门 题解: 分块SB题。 #include &amp;lt;bits/stdc++.h&amp;gt; using namespace std; typedef long long LL; const int RLEN=1&amp;lt;&amp;lt;18|1; inline char nc() { static char ibuf[RLEN],*ib,*ob; (ib==ob) &amp;amp;&amp;amp;

DZYO的博客 446

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ssm框架搭建

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

【LeetCode】1221. Split a String in Balanced Strings 解题报告 (C++)

作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法统计日期 题目地址:https://leetcode.com/problems/split-a-string-in-balanced-strings/ 题目描述 Balanced strings are those who have equ...

负雪明烛 1721

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

codeforces 17C Balance(动态规划)

codeforces 17C Balance 题意 给定一个串,字符集{'a', 'b', 'c'},操作是:选定相邻的两个字符,把其中一个变成另一个。可以做0次或者多次,问最后可以生成多少种,使得任意一种字符和其他字符的个数相差都不超过1. 题解 一个生成串压缩之后必定都是初始串的子序列,那么只要能枚举所有子序列,其他的很好搞定。 对于枚举的每个子序列,如果它是由初始串最早能生成的产生,那么肯定...

weixin_30426879的博客 14万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

7637 - Balanced String----贪心

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5659 题目的意思读了我半天......意思就是说遇见左括号加一,遇见右括号减一,现在给你一个打乱了的数字序列,让你输出一个字典序最小的括号序列。 我们考虑一个贪

bless295的博客 598

CodeForces - 17C Balance(DP)

Description Nick likes strings very much, he likes to rotate them, sort them, rearrange characters within a string... Once he wrote a random string of characters a, b, c on a piece of paper and b

WZJRJ28 1万+

CSA Balanced Strings

Balanced Strings Description 对于一个仅由a,b,ca,b,ca,b,c组成的字符串SSS,我们称这个串是合法的当且仅当对于任意一个SSS的连续子串TTT,满足 |f(T,x)−f(T,y)|≤K&nbsp;,∀{x,y}⊂{′a′,′b′,′c′}|f(T,x)−f(T,y)|≤K&nbsp;,∀{x,y}⊂{′a′,′b′,′c′}|f(T,x)-f(T,...

XianHaoMing的博客 509

CodeForces 17C 平衡字符串(Balance)

CF17C 扎心的题面,考试的时候题面是”相邻字符串”花了两个小时死活没想出,回头看了cf发现tm竟然是“相邻字符”!(雾) 如果cf的题面是正确的,那么这道题就可以轻易地用四维dp完成。定义初始字符串为A,操作后为B,将两者去重(删除相邻的同一种元素)形成子串a和b。手推可得b一定是a的子串(虽然不一定是真子串)。 如上我们可以构造一个长度为n的字符串,要求a、b、c字符个数之差均不超过1...

xyc1719的博客 1万+

【dp】CF17C. Balance

http://codeforces.com/problemset/problem/17/C 题目中给出一个仅含有a,b,c的字符串,已经两种操作每次选出任意两个相邻的字符,用第一个覆盖掉第二个或者反之,最后询问不考虑操作次数,最终有多少种不同的序列其中a,b,c三种字符两两间相差不超过1个。 很有趣的动态规划,一开始一直在考虑边构造目标串边dp,考虑前i个含有多少...

weixin_30240349的博客 1138

1221. Split a String in Balanced Strings

简单题,遍历计数题 class Solution { public: int balancedStringSplit(string s) { int L_num=0; int R_num=0; int count=0; for (int ii=0;ii<s.size();ii++){ if (s[...

zeroQiaoba的博客 232

UCF 2021 Practice F.Balanced Strings (思维 组合数学)

题意: 给出一个字符串,???表示待填字母。问有多少种方式使得长度为偶数的子串都满足元音字母和辅音字母个数相同。 元音字母为a,e,i,o,u,ya,e,i,o,u,ya,e,i,o,u,y 字符串长度<=100<=100<=100 思路: 显然只需要按照元音-辅音-元音-辅音这样依次构造就好。 先排除几种不合法的情况,对于剩下的情况尝试着计算的同时,也要判断构造出的字符串是否合法。 代码: 张巨的简短代码: #include <bits/stdc++.h> using nam

我们都有光明的未来 231
上一篇: BZOJ 4300: 绝世好题 动态规划
下一篇: cf450 BCDE(待补)
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值