STICP-002_编程挑战系列赛第二场(从现在开始,这里叫涛涛广场!)_D.涛涛的罚坐时刻

原题链接:STIPC-002_D.涛涛的罚坐时刻

D.涛涛的罚坐时刻

题目背景

出题人有话说:本题难度简单,考察了一个小知识点(注意看数据范围哦)

题目描述

众所周知, A C M − I C P C ACM-ICPC ACMICPC 是难度极大的编程赛事,涛涛和队友一起参加比赛时做出签到题就开始挂机罚坐了。由于涛涛平常热衷于填色游戏,他就把手上的纸条分割成了 n n n 个线性的竖格(如下图所示),并在每个格子中填入黑色或者白色。由于涛涛非常讨厌在黑色格子后面填上白色,所以整张纸条都不会出现这样结构的填色结构。那么,涛涛一共可以有多少种不同的填色方法呢,还请聪明的你帮忙计算一下。
由于答案可能非常大,请对 20011003 20011003 20011003 取模。

输入格式

输入共一行,一个整数 n n n,表示分割的格子数。

输出格式

输出一个整数,表示方案数。

输入输出样例

样例一:
输入:
1 1 1
输出:
2 2 2

说明/提示

对于 50 % 50\% 50% 的测试数据, 0 ≤ n ≤ 1 0 9 0≤n≤10^9 0n109
对于 100 % 100\% 100% 的测试数据, 0 ≤ n ≤ 1 0 18 0≤n≤10^{18} 0n1018

题目解析:

本题为简单的思维题,由于黑色的后面不可以填入白色,因此我们选择将纸条全部格子涂白色,然后从尾部开始依次填入黑色达到不同的填色方法故有 ( n + 1 ) (n+1) (n+1) 种填色方式。为了方便理解:设白色为 0 0 0 ,黑色为 1 1 1 ,当 n n n 5 5 5 时,则有以下 6 6 6 种填色方式:
00000 ; 00001 ; 00011 ; 00111 ; 01111 ; 11111 ; 00000;00001;00011;00111;01111;11111; 000000000100011001110111111111
当然,本题设置了坑点,因此我们还需要注意数据范围需要开到 l o n g long long l o n g long long,并进行对 20011003 20011003 20011003 取模,当然还有一个坑点!!数据范围包括了 n n n 0 0 0 的情况,因此对 n n n 0 0 0 进行特判,输出 0 0 0 即可。

AC代码(C++):
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 20011003;
int main()
{
    ll n;
    ll ans = 0;
    cin >> n;
    if(n == 0)
    {
	cout<<0;
        return 0;
     }
    cout << (n+1)%mod;
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Grape_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值