zoukankan      html  css  js  c++  java
  • 【UOJ 709】刷漆

    【题目描述】:

    Czy做完了所有的回答出了所有的询问,结果是,他因为脑力消耗过大而变得更虚了:)。帮助Czy恢复身材的艰巨任务落到了你的肩上。

    正巧,你的花园里有一个由N块排成一条直线的木板组成的栅栏,木板从左到右依次标号1到N。这N块木板中,有M块木板前面放着一桶油漆。油漆有不同的颜色,每种颜色可以由一个大写字母表示(A到Z)。而你要求Czy用他的油漆刷子给栅栏刷上油漆。

    已知Czy会选择一个前方放有油漆桶的木板开始他的任务。刷子蘸上油漆后,他开始随机地沿着栅栏走,他不会走出栅栏的范围。随机地走表示Czy会沿着他选择的方向一直走,然后随机在任何时候改变方向。沿着栅栏走只有两个方向,向前和向后。

    你发现Czy刷油漆的过程总是符合下列规则:

    1. 每个油漆桶里装着无限多的油漆;

    2. 刷子上每次只有一种颜色的油漆,每次蘸油漆都会完全替换刷子上的油漆颜色;

    3. 当Czy走到一个油漆桶前,他会首先用刷子蘸这个油漆桶里的油漆;

    4. Czy每走过一个木板都会将这个木板刷成当前刷子上的油漆颜色。

    已知木板可以被多次刷上油漆,每次都会完全覆盖之前的颜色。当所有木板都被刷上了油漆的时候,Czy才能停下来(当然他也可以继续刷到他想停下来为止)。你看着Czy在栅栏前来回舞动,突然想知道Czy停下来的时候栅栏有多少种可能的不同油漆方案。定义当至少有一块木板颜色不同时,两种油漆方案被视为是不同的。

    请你输出不同的油漆方案数对10^9+9取模的值。

    【输入描述】:

    输入的第一行包含两个整数N和M。

    接下来M行,每行两个整数x和y,表示第y块木板前面有一个装着颜色为x的油漆的油漆桶。

    【输出描述】:

    输出一行,包含一个整数,表示不同的油漆方案数对10^9 + 9取模的结果。

    【样例输入】:

    6 2
    A 2
    B 6

    【样例输出】:

    4

    【时间限制、数据范围及描述】:

    时间:1s 空间:128M

    对于30% 的数据,1 <= M <= N <= 100。

    对于100% 的数据, 1 <= M <= N <= 100,000。

    x是A到Z之间的大写字母;1 <= y <= N。

    题解:题目好长阿巴阿巴…但其实不难√

    #include<cstdio>
    #include<iostream>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    #include<bits/stdc++.h>
    typedef long long ll;
    using namespace std;
    const int N=100002;
    const ll mod=1000000009;
    ll ans=1;
    struct node{
        char c;
        int x;
    }a[N];
    int n,m;
    bool cmp(node p,node q) 
        { return p.x<q.x; } 
    int main(){
        freopen("paint.in","r",stdin);
        freopen("paint.out","w",stdout);
        scanf("%d %d
    ",&n,&m);
        for(int i=1;i<=m;i++)
            scanf("%c %d
    ",&a[i].c,&a[i].x);
        sort(a+1,a+m+1,cmp);
        for(int i=1;i<m;i++){
            if(a[i].c==a[i+1].c) continue;
            ans=(ans*(a[i+1].x-a[i].x))%mod;
        }
        cout<<ans%mod; 
        return 0;
    }
  • 相关阅读:
    【软件工程】学期总结
    【操作系统】实验四 主存空间的分配和回收
    学术诚信与职业道德
    【软件工程】《构建之法》八、九、十章读后感
    【操作系统】实验三 进程调度模拟程序
    【软件工程】《构建之法》6-7章读后感
    【操作系统】实验二 作业调度模拟程序
    【软件工程】复利计算器--结对编程3.0评论博客
    复利计算器--结对编程2.0
    学习进度条
  • 原文地址:https://www.cnblogs.com/wuhu-JJJ/p/14062861.html
Copyright © 2011-2022 走看看