传送门:

  [1]:AtCoder

  [2]:UPC比赛场

  [3]:UPC补题场

参考资料

  [1]:https://www.cnblogs.com/QLU-ACM/p/11191644.html

B.Reversi(记录结果再利用的DP)

•参考资料

  [1]:中国石油大学(华东), 张森

•题意

  有 n 个石子,编号为 1~n ,第 i 个石子被涂成颜色 coli

  操作:任选两个颜色相同的石子 i,j ,i 与 j 之间的所有石子涂成颜色 coli

  上述操作可以不执行,也可以执行多次;

  求最多有多少不同的颜色序列;

•题解

  定义 dp[ i ] 前 i 个石子最多的不同的颜色序列;

  对于第 i 个石子,可求出距石子 i 最近的石子 j ,并且石子 j 满足 j < i && coli = col

  那么对于位置 i , j :

  ①如果不执行操作,那么 dp[ i ]=dp[ i-1 ];

  ②如果执行操作,并且 j ≠ i-1 ,那么 dp[ i ] = dp[ j ];

  综上,对于第 i 个位置的石子,首先令 dp[ i ]=dp[ i-1 ],如果 j ≠ i-1,dp[ i ] += dp[ j ];

•Code

 #include<bits/stdc++.h>
using namespace std;
#define ll long long
const int MOD=1e9+;
const int maxn=2e5+; int n;
int col[maxn];
int pos[maxn];
ll dp[maxn]; ll Solve()
{
dp[]=;
dp[]=;
pos[col[]]=; for(int i=;i <= n;++i)
{
dp[i]=dp[i-];
int j=pos[col[i]]; if(j != i-)
{
dp[i] += dp[j];
dp[i] %= MOD;
} pos[col[i]]=i;///不管j是否为i-1,都要更新pos[col[i]];
}
return dp[n]%MOD;
}
int main()
{
scanf("%d",&n);
for(int i=;i <= n;++i)
scanf("%d",col+i); printf("%d\n",Solve()); return ;
}

 


G.轮回(待解决)

•参考资料

  [1]:wjyyy

UPC个人训练赛第十五场(AtCoder Grand Contest 031)的更多相关文章

  1. UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十五场

    传送门 A: Colorful Subsequence •题意 给一个长为n的小写字母序列,从中选出字母组成子序列 问最多能组成多少种每个字母都不相同的子序列 (不同位置的相同字母也算是不同的一种) ...

  2. 问题 J: Palindromic Password ( 2018组队训练赛第十五场) (简单模拟)

    问题 J: Palindromic Password 时间限制: 3 Sec  内存限制: 128 MB提交: 217  解决: 62[提交][状态][讨论版][命题人:admin] 题目描述 The ...

  3. 问题 C: Frosh Week(2018组队训练赛第十五场)(签到)

    问题 C: Frosh Week 时间限制: 4 Sec  内存限制: 128 MB提交: 145  解决: 63[提交][状态][讨论版][命题人:admin] 题目描述 Professor Zac ...

  4. UPC 2019年第二阶段我要变强个人训练赛第十六场

    传送门: [1]:UPC比赛场 [2]:UPC补题场 F.gu集合(数论) •题目描述 题目描述: Dew有一个长为n的集合S. 有一天,他想选k个不同的元素出来做游戏. 但是Dew只有两只手,所以他 ...

  5. 备战省赛组队训练赛第十四场(UPC)

    codeforces:传送门 upc:传送门 外来题解: [1]:https://blog.csdn.net/ccsu_cat/article/details/86707446 [2]:https:/ ...

  6. UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十四场

    A.JOIOJI •传送门 [1]:BZOJ [2]:洛谷 •思路 在一个区间(L,R]内,JOI的个数是相等的,也就是R[J]-L[J]=R[O]-L[O]=R[I]-L[I], 利用前缀和的思想, ...

  7. UPC Contest RankList – 2019年第二阶段我要变强个人训练赛第十六场

    E: 飞碟解除器 •题目描述 wjyyy在玩跑跑卡丁车的时候,获得了一个飞碟解除器,这样他就可以免受飞碟的减速干扰了.飞碟解除器每秒末都会攻击一次飞碟,但每次只有p/q的概率成功攻击飞碟.当飞碟被成功 ...

  8. 备战省赛组队训练赛第十八场(UPC)

    传送门 题解:by 青岛大学 A:https://blog.csdn.net/birdmanqin/article/details/89789424 B:https://blog.csdn.net/b ...

  9. 备战省赛组队训练赛第十六场(UPC)

    传送门 题解: by 烟台大学 (提取码:8972)

随机推荐

  1. 2019.10.22 用TCP实现服务端并发接收

    client import socket client = socket.socket() client.connect( ('127.0.0.1',8888) ) while 1: msg = in ...

  2. jenkins执行selenium自动化测试浏览器不显示解决方法

    因为jenkins是用windows installer 安装成 windows的服务了,那么jenkins是一个后台服务,所以跑selium cases 的时候不显示浏览器 解决办法:Step 1. ...

  3. vagrant up提示"Couldn't open file /path/to/base"的错误解决方法

    在vagrant使用命令vagrant up启动虚拟机时 出错: C:\Vagrant>vagrant up Bringing machine 'default' up with 'virtua ...

  4. jsp中的标签使用

    jsp中的变量作用域 表示变量的作用域,一共4种.pageScope:  表示变量只能在本页面使用.requestScope:表示变量能在本次请求中使用.sessionScope:表示变量能在本次会话 ...

  5. navicat 导入SQL文件出错

    1.新建数据库 在数据库名或者表名上右键  运行SQL语句 2.去掉对勾 F5刷新则可以发现导入的表.

  6. linux查看用户组所有成员

    1.grep 'user1' /etc/group //找出用户组的gid user1:x:1004://得出gid=1004 2. awk -F":" '{print $1&qu ...

  7. thinkphp5.0中英文切换

    首先来看下它的配置: // 是否开启多语言 'lang_switch_on' => true, //语音列表 'lang_list' => ['zh-cn','en-us'], // 获取 ...

  8. Java练习 SDUT-2733_小鑫の日常系列故事(二)——石头剪子布

    小鑫の日常系列故事(二)--石头剪子布 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小鑫在上幼儿园的时候,喜欢跟小伙 ...

  9. [软考]之软件过程模型II 标签: 软件工程 2015-11-01 11:52 1612人阅读 评论(22) 收

    上一篇博客总结了瀑布模型/V模型/增量模型这三种软件模型,然而我们还有一个很重要的问题忘了回答,那就是,什么是软件过程模型? 什么是软件过程模型? 软件过程是软件开发与维护的工作流程和工艺流程,是软件 ...

  10. Java练习 SDUT-1171_保留整数

    C语言实验--保留整数 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入一个字符串str1,把其中的连续非数字的字符 ...