Codeforces 1105C Ayoub and Lost Array (计数DP)
<题目链接>
题目大意:
有一个长度为 n 的数列的未知数列,数列的每一个数的值都在区间 [l,r] 的范围内。现在问你能够构成多少个这样的数组,使得数组内的所有数的和能够被 3 整除。
解题分析:
类似于这种数据量大的计数问题,要不就是数学推公式,要不就是dp。
根据所有数之和能被3整除的性质,我们将所有数用%3的余数表示,推出状态转移方程:$$ dp[i][j+k]=dp[i-1][j]*num[k] $$
$dp[i][j]$表示:前$i$项之和余$j$的方案数。
这篇博客讲解的比较详细 >>>
#include <bits/stdc++.h>
using namespace std; typedef long long ll;
#define N int(2e5+7)
const int mod = 1e9+;
ll dp[N][]; int main(){
int n,l,r;
scanf("%d%d%d",&n,&l,&r);
int num0,num1,num2; //得到余数分别为0,1,2的数的个数
num0=r/-(l-)/;
num1=(r-+)/-(l-+)/;
num2=r-l+-num0-num1;
dp[][]=num0; //初始化dp第一项
dp[][]=num1;
dp[][]=num2;
for(int i=;i<=n;i++){
dp[i][]=((dp[i-][]*num0)%mod+(dp[i-][]*num1)%mod+(dp[i-][]*num2)%mod)%mod;
dp[i][]=((dp[i-][]*num0)%mod+(dp[i-][]*num1)%mod+(dp[i-][]*num2)%mod)%mod;
dp[i][]=((dp[i-][]*num0)%mod+(dp[i-][]*num1)%mod+(dp[i-][]*num2)%mod)%mod;
}
printf("%d\n",dp[n][]);
}
2019-02-22
Codeforces 1105C Ayoub and Lost Array (计数DP)的更多相关文章
- Codeforces Round #533 (Div. 2) C. Ayoub and Lost Array 【dp】
传送门:http://codeforces.com/contest/1105/problem/C C. Ayoub and Lost Array time limit per test 1 secon ...
- C. Ayoub and Lost Array cf dp
C. Ayoub and Lost Array time limit per test 1 second memory limit per test 256 megabytes input stand ...
- CodeForces - 1093F:Vasya and Array (DP&计数)
题意:N,K,L,以及给定长度为N的序列,表示其对应的颜色,-1表示还没有涂色,现在让你去涂色,使得最后没有大于等于L的连续的同色的情况. 思路:我们用dp[i][j]表示第i个位置颜色为j的合法方案 ...
- C. Ayoub and Lost Array(DP)
(又是被队友带着上分的一场--) 题目链接:http://codeforces.com/contest/1105/problem/C 题目大意:给你n,l,r.每一个数都是在l,r范围之内,然后问你这 ...
- codeforces 361 D. Levko and Array(dp+二分)
题目链接:http://codeforces.com/contest/361/problem/D 题意:最多可以修改K次数字,每次修改一个数字变成任意值,C=max(a[i+1]-a[i]):求操作之 ...
- Codeforces 1105C: Ayoub and Lost Array(递推)
time limit per test: 1 second memory limit per test: 256 megabytes input: standard input output: sta ...
- CodeForces 176B Word Cut (计数DP)
Word Cut Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit St ...
- 【计数dp】Array Without Local Maximums
参考博客:[CF1068D]Array Without Local Maximums(计数DP) [题意] n<=1e5 dp[i][j][k]表示当前第i个数字为j,第i-1个数字与第i个之间 ...
- Codeforces 176B【计数DP】
题意: 给你两个串s1,s2和一个K, 有一种操作是在一个串切开然后交换位置, 问s1有多少种方法经过K次这样的操作变成s2: 思路: (从来没接触过计数DP...还是太菜...参考了[大牛blog] ...
随机推荐
- centos7搭建smb服务
1 yum install samba samba-client samba-common -y 安装smb服务 2 cp -a /etc/samba/smb.conf /etc/samba/sm ...
- python的学习笔记
1逻辑运算符不理解 2 在交互模式中,最后被输出的表达式结果被赋值给变量 _ .例如: >>> tax = 12.5 / 100 >>> price = 100.5 ...
- java常见命名规则
常见命名规则: 包:类似文件夹,用于把相同的类名进行区分(小写) 单级:例如:student 多级:例如:cn.student 类或者接口: 一个单词:单词首字母大写,例如:Student 多个单词: ...
- 用sqlplus为oracle创建用户和表空间
用Oracle自带的企业管理器或PL/SQL图形化的方法创建表空间和用户以及分配权限是相对比较简单的, 本文要介绍的是另一种方法就是使用Oracle所带的命令行工具SQLPLUS来创建表空间. 打开S ...
- SQL Server 函数之日期格式化函数
SQL Server 函数之日期格式化函数 高文龙关注0人评论612人阅读2017-09-23 13:47:07 SQL Server 函数之日期格式化函数 对于一些经常写SQL Server执行语句 ...
- Confluence 6 编辑和删除用户宏
编辑一个用户宏 希望对一个用户宏进行编辑: 进入 > 基本配置(General Configuration) > 用户宏(User Macros) 在相关的宏的边上,单击 编辑(Edit ...
- ionic3 git 提交报错
npm ERR! cordova-plugin-camera@ gen-docs: `jsdoc2md --template "jsdoc2md/TEMPLATE.md" &quo ...
- spring-boot与spring-data-JPA的简单整合
如何在boot中轻松使用JPA <!--首先引入JPA依赖--><dependency> <groupId>org.springframework.boot< ...
- Variable binding depth exceeds max-specpdl-size
(setq max-specpdl-size 5) ; default is 1000, reduce the backtrace level (setq debug-on-error t) ; no ...
- 关于springboot整合配置pagehelper插件的方法
一,java代码配置法 这种方法个人感觉比较繁琐不是很推荐,而且也不怎么符合springboot的理念,但是胜在也能够用,所以就列起来,万一以后接手的代码是用这种方式的也方便自己维护. 首先引入jar ...