UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十五场
A: Colorful Subsequence
•题意
给一个长为n的小写字母序列,从中选出字母组成子序列
问最多能组成多少种每个字母都不相同的子序列
(不同位置的相同字母也算是不同的一种)
•思路
对于每种字母有选与不选两种情况,
①如果选的话,j假设这种字母有xi种,那就有xi种选法
②如果不选的话,有不选这一种方法
那总和起来就有(xi+1)中方法
设num[i]为每种字母的个数
对于所有的字母,总的种类数就是
但是要注意全不选的这种情况,对于上述种类数-1
即
•代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const long long mod=1e9+;
char s[];
int Count[];
int main()
{
int n;
cin>>n;
ll ans=;
for(int i=;i<n;i++)
{
cin>>s[i];
Count[s[i]-'a']++;
}
for(int i=;i<;i++)
ans=(ans%mod*(Count[i]+)%mod)%mod;
cout<<ans-<<endl;
}
B: Reversi
•题意
有n块石头,从左往右第i块颜色为ci
现有一操作,可以进行0次或多次
选择颜色相同的两块石头,可以把这两块石头之间的石头全部变为此种颜色
问经过所有可能的操作后,最多有多少种不同的颜色序列
•思路
对于一个石头颜色序列,从左往右一次添加石头,在右边加一块石头,位置为x,颜色为xi
① 首先不挑选x,也就是x不是区间右端点,
把x放在(x-1)块石头后面,相当于前(x-1)块石头变化有ans[x-1]种,再在末尾加上第x块石头,形成ans[x-1]种序列
②挑选x,也就是x为某个区间的右端点,
如果x想成为某个区间的右端点,那就要找他前面与他颜色相同的石头,
第x块石头和他前面距离他最近的第一块石头组合形成序列,即ans[pos[x]]种。pos[x]为第x块石头前面距离他最近的第一块石头
为什么是第一块石头呢?
因为我们是从左往右一次添加的石头,加入一个颜色为col的石头,再加入其它颜色的石头,再加入col的石头,那第一块col和第二块col可以组成,
...再加入第三块col,那第三块col可以根据第二块形成的col,再形成若干种,
为什么不根据第一块col变化呢?因为在根据第二块变化时已经包括根据第一块变化了!(第二块是根据第一块变化的!)
•代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+;
const long long mod=1e9+;
#define ll long long
ll s[maxn];
ll pos[maxn];//记录每种颜色的位置,用来得到②的种数
ll ans[maxn];//第i块石头的答案 int main()
{
int n;
cin>>n;
s[]=;
for(int i=;i<=n;i++)
{
cin>>s[i];
if(i==)//加第一块的时候肯定为1
ans[i]=,pos[s[i]]=i;//记录答案和位置
else if(s[i]==s[i-])//如果相邻颜色相同的话就只有①的种类数
ans[i]=ans[i-];//因为两块之间没有石头不能变化
else
{
ans[i]=(ans[i-]+ans[flag[s[i]]]%mod)%mod;//①的种类数+②的种类数
flag[s[i]]=i;//记录位置
}
}
cout<<ans[n]<<endl;
}
UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十五场的更多相关文章
- UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十四场
A.JOIOJI •传送门 [1]:BZOJ [2]:洛谷 •思路 在一个区间(L,R]内,JOI的个数是相等的,也就是R[J]-L[J]=R[O]-L[O]=R[I]-L[I], 利用前缀和的思想, ...
- UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十六场
E: 飞碟解除器 •题目描述 wjyyy在玩跑跑卡丁车的时候,获得了一个飞碟解除器,这样他就可以免受飞碟的减速干扰了.飞碟解除器每秒末都会攻击一次飞碟,但每次只有p/q的概率成功攻击飞碟.当飞碟被成功 ...
- UPC 2019年第二阶段我要变强个人训练赛第十六场
传送门: [1]:UPC比赛场 [2]:UPC补题场 F.gu集合(数论) •题目描述 题目描述: Dew有一个长为n的集合S. 有一天,他想选k个不同的元素出来做游戏. 但是Dew只有两只手,所以他 ...
- UPC 2019年第二阶段我要变强个人训练赛第六场
传送门 A.上学路线 题目描述 小D从家到学校的道路结构是这样的:由n条东西走向和m条南北走向的道路构成了一个n*m的网格,每条道路都是单向通行的(只能从北向南,从西向东走). 已知小D的家在网格的左 ...
- 2019年第二阶段我要变强个人训练赛第八场 B.序列(seq)
传送门 B.序列(seq) •题目描述 给出一个长度为n的序列a,每次对序列进行一下的某一个操作. •输入 第一行两个整数n,q表示序列长度和操作个数. 接下来一行n个数,表示序列a. 接下来q行表示 ...
- UPC个人训练赛第十五场(AtCoder Grand Contest 031)
传送门: [1]:AtCoder [2]:UPC比赛场 [3]:UPC补题场 参考资料 [1]:https://www.cnblogs.com/QLU-ACM/p/11191644.html B.Re ...
- 备战省赛组队训练赛第十四场(UPC)
codeforces:传送门 upc:传送门 外来题解: [1]:https://blog.csdn.net/ccsu_cat/article/details/86707446 [2]:https:/ ...
- 备战省赛组队训练赛第十八场(UPC)
传送门 题解:by 青岛大学 A:https://blog.csdn.net/birdmanqin/article/details/89789424 B:https://blog.csdn.net/b ...
- 备战省赛组队训练赛第十六场(UPC)
传送门 题解: by 烟台大学 (提取码:8972)
随机推荐
- MYSQL的全局变量和会话变量
系统变量又分为全局变量与会话变量. 全局变量在MYSQL启动的时候由服务器自动将它们初始化为默认值,这些默认值可以通过更改my.ini这个文件来更改. 会话变量在每次建立一个新的连接的时候,由MYSQ ...
- 点菜网---Java开源生鲜电商平台-技术选型(源码可下载)
点菜网---Java开源生鲜电商平台-技术选型(源码可下载) 1.内容简介 点菜网目前选用的是最流行的微服务架构模式,采用前后端分离的开发模式,具备高可用,高负载,支持千万级别的数据量的请求. 2. ...
- VUE单页面的应用优缺点
1.优 分离前后端关注点,前端负责界面显示,后端负责数据存储和计算. 减轻服务器压力,服务器只用出数据就可以: 同一套后端程序代码,不用修改就可以用于多种设备客户端: 2019-06-19用户体验好. ...
- 基于STM32F429和Cube的主从定时器多通道输出固定个数的PWM波形
主从定时器的原理已在上篇博文: 基于STM32F429+HAL库编写的定时器主从门控模式级联输出固定个数PWM脉冲的程序 讲解了,这篇重点就讲如何实现多通道的PWM级联输出. 1.软件环境 Keil5 ...
- PATB 1019. 数字黑洞 (20)
一个神奇的数字. 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位正整数,如果我 ...
- SQL Server温故系列(3):SQL 子查询 & 公用表表达式 CTE
1.子查询 Subqueries 1.1.单行子查询 1.2.多行子查询 1.3.相关子查询 1.4.嵌套子查询 1.5.子查询小结及性能问题 2.公用表表达式 CTE 2.1.普通公用表表达式 2. ...
- 【朝花夕拾】Android自定义View篇之(九)多点触控(下)实践出真知
前言 在上一篇文章中,已经总结了MotionEvent以及多点触控相关的基础理论知识和常用的函数.本篇将通过实现单指拖动图片,多指拖动图片的实际案例来进行练习并实现一些效果,来理解前面的理论知识.要理 ...
- 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题
问题 一个用Spring建的java项目,在Eclipse或idea中运行正常,为什么打包后运行出现如下错误呢? 2019/07/10/19:04:07 WARN [main] org.springf ...
- redis源码笔记-内存管理zmalloc.c
redis的内存分配主要就是对malloc和free进行了一层简单的封装.具体的实现在zmalloc.h和zmalloc.c中.本文将对redis的内存管理相关几个比较重要的函数做逐一的介绍 参考: ...
- curl推送示例:熊掌号,百度站长的链接推送(系统环境变量配置)
curl推送示例:熊掌号,百度站长的链接推送(需要用户系统环境变量配置)这篇文章主要讲解curl推送,熊掌号,百度站长的链接推送,我们很多seo朋友都搞不定curl的推送链接,而且还要配置系统的环境变 ...