链接:https://codeforces.com/contest/1105/problem/C

题意:

给n,l,r。

一个n长的数组每个位置可以填区间l-r的值。

有多少种填法,使得数组每个位置相加的和是3的倍数

思路:

赛后看代码都看不懂的题。

dp,

从1个数组扩展到n个数组,

dp[i][j]是加上第i个数组后,分别余0,1,2的个数。

余0则是,i-1余0*自己余0+(i-1余1*自己余2)+(i-1余2*自己余1)

剩下同理

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAXN = 2*1e5+10;
const int MOD = 1e9+7;
LL dp[MAXN][3]; int main()
{
int n,l,r;
cin >> n >> l >> r;
dp[0][0] = 1,dp[0][1] = 0,dp[0][2] = 0;
int mod0 = r/3-(l-1)/3,mod1 = (r+2)/3-(l+1)/3,mod2 = (r+1)/3-(l)/3;
for (int i = 1;i<=n;i++)
{
dp[i][0] = (dp[i-1][0]*mod0%MOD+dp[i-1][1]*mod2%MOD+dp[i-1][2]*mod1%MOD)%MOD;
dp[i][1] = (dp[i-1][0]*mod1%MOD+dp[i-1][1]*mod0%MOD+dp[i-1][2]*mod2%MOD)%MOD;
dp[i][2] = (dp[i-1][0]*mod2%MOD+dp[i-1][1]*mod1%MOD+dp[i-1][2]*mod0%MOD)%MOD;
}
cout << dp[n][0] << endl; return 0;
}

  

Codeforces Round #533(Div. 2) C.Ayoub and Lost Array的更多相关文章

  1. 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 ...

  2. Codeforces Round #533 (Div. 2) C. Ayoub and Lost Array(递推)

    题意: 长为 n,由 l ~ r 中的数组成,其和模 3 为 0 的数组数目. 思路: dp[ i ][ j ] 为长为 i,模 3 为 j 的数组数目. #include <bits/stdc ...

  3. Codeforces Round #533 (Div. 2)题解

    link orz olinr AK Codeforces Round #533 (Div. 2) 中文水平和英文水平都太渣..翻译不准确见谅 T1.给定n<=1000个整数,你需要钦定一个值t, ...

  4. Codeforces Round #533 (Div. 2) C.思维dp D. 多源BFS

    题目链接:https://codeforces.com/contest/1105 C. Ayoub and Lost Array 题目大意:一个长度为n的数组,数组的元素都在[L,R]之间,并且数组全 ...

  5. Codeforces Round #533 (Div. 2) Solution

    A. Salem and Sticks 签. #include <bits/stdc++.h> using namespace std; #define N 1010 int n, a[N ...

  6. Codeforces Round #533 (Div. 2) B. Zuhair and Strings 【模拟】

    传送门:http://codeforces.com/contest/1105/problem/B B. Zuhair and Strings time limit per test 1 second ...

  7. Codeforces Round #533(Div. 2) D.Kilani and the Game

    链接:https://codeforces.com/contest/1105/problem/D 题意: 给n*m的地图,最多9个人,同时有每个人的扩张次数(我开始以为是直线扩张最大长度..实际是能连 ...

  8. Codeforces Round #533(Div. 2) B.Zuhair and Strings

    链接:https://codeforces.com/contest/1105/problem/B 题意: 给一个字符串和k,连续k个相同的字符,可使等级x加1, 例:8 2 aaacaabb 则有aa ...

  9. Codeforces Round #533(Div. 2) A.Salem and Sticks

    链接:https://codeforces.com/contest/1105/problem/A 题意: 给n个数,找到一个数t使i(1-n)∑|ai-t| 最小. ai-t 差距1 以内都满足 思路 ...

随机推荐

  1. 通用方法解决UITextFiled输入的时候,键盘遮挡问题

    我们在用键盘录入的时候,有可能会遮挡录入框,所以我们应调整UIView的位置,使其不被遮挡.我写了一个通用的方法可以解决这个问题:​​1. [代码][C/C++]代码         - (void) ...

  2. Mongodb 官网驱动2.2.4.26版本 增,删 改,查,mongodb2.2.4.26

    Mongodb是3.2.7版本 最近在学习mongodb数据库在网上找到的都不是2.X版本以下的,因为驱动从2.X以后修改了很多,以前不支持linq现2.X也支持了, Mongodb 启动服务就不说了 ...

  3. 【C/C++】任意大于1的整数分解成素数因子乘积的形式

    // #include<stdio.h> #include<math.h> #include<malloc.h> int isprime(long n); void ...

  4. 4.13 BJ集训

    T1 Mobitel 题目大意: 一个全是正整数的矩阵,求从左上角到右下角的简单路径有多少条路径上数的乘积$>=K$ 思路: 由于整数分块,我们设$f(i,j,k)$表示走到$(i,j)$,$k ...

  5. UOJ309 UNR #2 排兵布阵

    包含不小于$\sqrt n$列的只有不大于$\sqrt n$行,修改时这些行打标记,否则暴力更新,操作一列的时候暴力更新这些行.合并没啥影响直接搞就是了.更新需要访问位置,感觉必须用哈希表,并不是特别 ...

  6. JQ实现图片上传预览功能

    <input type="file" name="img" id="test1"> <img src="&quo ...

  7. VS2008编了个MFC对话框,编译链接都没有问题,但是运行出来的对话框完全不能点击

    误将整个对话框的属性中disable选为“True”,对话框不可用,选为false即可

  8. Interval query

    题意: 给出数轴上的N个区间,M个询问"QUERY(a, b)", 意为[a, b]之间不相交的集合的最大数量是多少. 解法: 考虑 $O(n)$ 的贪心做法,预处理出对于每一个位 ...

  9. B. Vanya and Food Processor【转】

    B. Vanya and Food Processor time limit per test 1 second memory limit per test 256 megabytes input s ...

  10. Asset Catalog Help (七)---Customizing Image Sets for Size Classes

    Customizing Image Sets for Size Classes Add images to a set that are customized for display in diffe ...